From 09ed12fc8f53291efd239f023e4bc504693acfb0 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Sat, 20 Sep 2025 10:04:15 -0700 Subject: [PATCH] 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 --- .flake8 | 4 +- .github/workflows/python-package.yml | 7 +-- pyproject.toml | 59 ++++++++++--------- {ptulsconv => src/ptulsconv}/__init__.py | 0 {ptulsconv => src/ptulsconv}/__main__.py | 7 ++- .../ptulsconv}/broadcast_timecode.py | 0 {ptulsconv => src/ptulsconv}/commands.py | 0 .../ptulsconv}/docparser/__init__.py | 0 .../ptulsconv}/docparser/adr_entity.py | 0 .../ptulsconv}/docparser/doc_entity.py | 0 .../ptulsconv}/docparser/generic_entity.py | 0 .../ptulsconv}/docparser/pt_doc_parser.py | 0 .../ptulsconv}/docparser/tag_compiler.py | 0 .../ptulsconv}/docparser/tag_mapping.py | 0 .../docparser/tagged_string_parser_visitor.py | 0 {ptulsconv => src/ptulsconv}/footage.py | 0 {ptulsconv => src/ptulsconv}/movie_export.py | 0 {ptulsconv => src/ptulsconv}/pdf/__init__.py | 0 .../ptulsconv}/pdf/continuity.py | 0 .../ptulsconv}/pdf/line_count.py | 0 .../ptulsconv}/pdf/recordist_log.py | 0 .../ptulsconv}/pdf/summary_log.py | 0 .../ptulsconv}/pdf/supervisor_1pg.py | 0 .../ptulsconv}/pdf/talent_sides.py | 0 {ptulsconv => src/ptulsconv}/reporting.py | 0 {ptulsconv => src/ptulsconv}/validations.py | 0 {ptulsconv => src/ptulsconv}/xml/common.py | 0 .../ptulsconv}/xslt/AvidMarkers.xsl | 0 {ptulsconv => src/ptulsconv}/xslt/SRT.xsl | 0 29 files changed, 40 insertions(+), 37 deletions(-) rename {ptulsconv => src/ptulsconv}/__init__.py (100%) rename {ptulsconv => src/ptulsconv}/__main__.py (96%) rename {ptulsconv => src/ptulsconv}/broadcast_timecode.py (100%) rename {ptulsconv => src/ptulsconv}/commands.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/__init__.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/adr_entity.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/doc_entity.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/generic_entity.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/pt_doc_parser.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/tag_compiler.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/tag_mapping.py (100%) rename {ptulsconv => src/ptulsconv}/docparser/tagged_string_parser_visitor.py (100%) rename {ptulsconv => src/ptulsconv}/footage.py (100%) rename {ptulsconv => src/ptulsconv}/movie_export.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/__init__.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/continuity.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/line_count.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/recordist_log.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/summary_log.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/supervisor_1pg.py (100%) rename {ptulsconv => src/ptulsconv}/pdf/talent_sides.py (100%) rename {ptulsconv => src/ptulsconv}/reporting.py (100%) rename {ptulsconv => src/ptulsconv}/validations.py (100%) rename {ptulsconv => src/ptulsconv}/xml/common.py (100%) rename {ptulsconv => src/ptulsconv}/xslt/AvidMarkers.xsl (100%) rename {ptulsconv => src/ptulsconv}/xslt/SRT.xsl (100%) diff --git a/.flake8 b/.flake8 index 4f2e750..aff2980 100644 --- a/.flake8 +++ b/.flake8 @@ -1,4 +1,4 @@ [flake8] per-file-ignores = - ptulsconv/__init__.py: F401 - ptulsconv/docparser/__init__.py: F401 + src/ptulsconv/__init__.py: F401 + src/ptulsconv/docparser/__init__.py: F401 diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 197c67e..3569e57 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -32,10 +32,9 @@ jobs: - name: Lint with flake8 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 + flake8 src/ptulsconv tests --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. + flake8 src/ptulsconv tests --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest - flake8 ptulsconv diff --git a/pyproject.toml b/pyproject.toml index d769137..e1d1cf8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,12 @@ [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 = { file = "LICENSE" } +keywords = ["text-processing", "parsers", "film", + "broadcast", "editing", "editorial"] classifiers = [ 'License :: OSI Approved :: MIT License', 'Topic :: Multimedia', @@ -13,39 +19,34 @@ 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 = "4.0.0" -description = "Read Pro Tools Text exports and generate PDF ADR Reports, JSON" -authors = ["Jamie Hardt "] -license = "MIT" -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.9" -parsimonious = "^0.10.0" -tqdm = "^4.67.1" -reportlab = "^4.4.1" -py-ptsl = "^600.0.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 = ""}] +dependencies = [ + "parsimonious>=0.10.0", + "py-ptsl>=600.0.0", + "reportlab>=4.4.4", + "tqdm>=4.67.1", +] [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 = [ + "flake8>=7.3.0", +] diff --git a/ptulsconv/__init__.py b/src/ptulsconv/__init__.py similarity index 100% rename from ptulsconv/__init__.py rename to src/ptulsconv/__init__.py diff --git a/ptulsconv/__main__.py b/src/ptulsconv/__main__.py similarity index 96% rename from ptulsconv/__main__.py rename to src/ptulsconv/__main__.py index 4ae06cb..e2b450e 100644 --- a/ptulsconv/__main__.py +++ b/src/ptulsconv/__main__.py @@ -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 @@ -82,8 +84,9 @@ def main(): 'and exit.') 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) diff --git a/ptulsconv/broadcast_timecode.py b/src/ptulsconv/broadcast_timecode.py similarity index 100% rename from ptulsconv/broadcast_timecode.py rename to src/ptulsconv/broadcast_timecode.py diff --git a/ptulsconv/commands.py b/src/ptulsconv/commands.py similarity index 100% rename from ptulsconv/commands.py rename to src/ptulsconv/commands.py diff --git a/ptulsconv/docparser/__init__.py b/src/ptulsconv/docparser/__init__.py similarity index 100% rename from ptulsconv/docparser/__init__.py rename to src/ptulsconv/docparser/__init__.py diff --git a/ptulsconv/docparser/adr_entity.py b/src/ptulsconv/docparser/adr_entity.py similarity index 100% rename from ptulsconv/docparser/adr_entity.py rename to src/ptulsconv/docparser/adr_entity.py diff --git a/ptulsconv/docparser/doc_entity.py b/src/ptulsconv/docparser/doc_entity.py similarity index 100% rename from ptulsconv/docparser/doc_entity.py rename to src/ptulsconv/docparser/doc_entity.py diff --git a/ptulsconv/docparser/generic_entity.py b/src/ptulsconv/docparser/generic_entity.py similarity index 100% rename from ptulsconv/docparser/generic_entity.py rename to src/ptulsconv/docparser/generic_entity.py diff --git a/ptulsconv/docparser/pt_doc_parser.py b/src/ptulsconv/docparser/pt_doc_parser.py similarity index 100% rename from ptulsconv/docparser/pt_doc_parser.py rename to src/ptulsconv/docparser/pt_doc_parser.py diff --git a/ptulsconv/docparser/tag_compiler.py b/src/ptulsconv/docparser/tag_compiler.py similarity index 100% rename from ptulsconv/docparser/tag_compiler.py rename to src/ptulsconv/docparser/tag_compiler.py diff --git a/ptulsconv/docparser/tag_mapping.py b/src/ptulsconv/docparser/tag_mapping.py similarity index 100% rename from ptulsconv/docparser/tag_mapping.py rename to src/ptulsconv/docparser/tag_mapping.py diff --git a/ptulsconv/docparser/tagged_string_parser_visitor.py b/src/ptulsconv/docparser/tagged_string_parser_visitor.py similarity index 100% rename from ptulsconv/docparser/tagged_string_parser_visitor.py rename to src/ptulsconv/docparser/tagged_string_parser_visitor.py diff --git a/ptulsconv/footage.py b/src/ptulsconv/footage.py similarity index 100% rename from ptulsconv/footage.py rename to src/ptulsconv/footage.py diff --git a/ptulsconv/movie_export.py b/src/ptulsconv/movie_export.py similarity index 100% rename from ptulsconv/movie_export.py rename to src/ptulsconv/movie_export.py diff --git a/ptulsconv/pdf/__init__.py b/src/ptulsconv/pdf/__init__.py similarity index 100% rename from ptulsconv/pdf/__init__.py rename to src/ptulsconv/pdf/__init__.py diff --git a/ptulsconv/pdf/continuity.py b/src/ptulsconv/pdf/continuity.py similarity index 100% rename from ptulsconv/pdf/continuity.py rename to src/ptulsconv/pdf/continuity.py diff --git a/ptulsconv/pdf/line_count.py b/src/ptulsconv/pdf/line_count.py similarity index 100% rename from ptulsconv/pdf/line_count.py rename to src/ptulsconv/pdf/line_count.py diff --git a/ptulsconv/pdf/recordist_log.py b/src/ptulsconv/pdf/recordist_log.py similarity index 100% rename from ptulsconv/pdf/recordist_log.py rename to src/ptulsconv/pdf/recordist_log.py diff --git a/ptulsconv/pdf/summary_log.py b/src/ptulsconv/pdf/summary_log.py similarity index 100% rename from ptulsconv/pdf/summary_log.py rename to src/ptulsconv/pdf/summary_log.py diff --git a/ptulsconv/pdf/supervisor_1pg.py b/src/ptulsconv/pdf/supervisor_1pg.py similarity index 100% rename from ptulsconv/pdf/supervisor_1pg.py rename to src/ptulsconv/pdf/supervisor_1pg.py diff --git a/ptulsconv/pdf/talent_sides.py b/src/ptulsconv/pdf/talent_sides.py similarity index 100% rename from ptulsconv/pdf/talent_sides.py rename to src/ptulsconv/pdf/talent_sides.py diff --git a/ptulsconv/reporting.py b/src/ptulsconv/reporting.py similarity index 100% rename from ptulsconv/reporting.py rename to src/ptulsconv/reporting.py diff --git a/ptulsconv/validations.py b/src/ptulsconv/validations.py similarity index 100% rename from ptulsconv/validations.py rename to src/ptulsconv/validations.py diff --git a/ptulsconv/xml/common.py b/src/ptulsconv/xml/common.py similarity index 100% rename from ptulsconv/xml/common.py rename to src/ptulsconv/xml/common.py diff --git a/ptulsconv/xslt/AvidMarkers.xsl b/src/ptulsconv/xslt/AvidMarkers.xsl similarity index 100% rename from ptulsconv/xslt/AvidMarkers.xsl rename to src/ptulsconv/xslt/AvidMarkers.xsl diff --git a/ptulsconv/xslt/SRT.xsl b/src/ptulsconv/xslt/SRT.xsl similarity index 100% rename from ptulsconv/xslt/SRT.xsl rename to src/ptulsconv/xslt/SRT.xsl