audio-transcode-watcher 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. audio_transcode_watcher-0.4.2/.github/FUNDING.yml +4 -0
  2. audio_transcode_watcher-0.4.2/.github/dependabot.yml +64 -0
  3. audio_transcode_watcher-0.4.2/.github/workflows/release.yml +95 -0
  4. audio_transcode_watcher-0.4.2/.github/workflows/tests.yml +56 -0
  5. audio_transcode_watcher-0.4.2/.gitignore +47 -0
  6. audio_transcode_watcher-0.4.2/Dockerfile +22 -0
  7. audio_transcode_watcher-0.4.2/LICENSE +674 -0
  8. audio_transcode_watcher-0.4.2/PKG-INFO +305 -0
  9. audio_transcode_watcher-0.4.2/README.md +274 -0
  10. audio_transcode_watcher-0.4.2/SECURITY.md +36 -0
  11. audio_transcode_watcher-0.4.2/config.example.yaml +100 -0
  12. audio_transcode_watcher-0.4.2/docs/ROADMAP.md +108 -0
  13. audio_transcode_watcher-0.4.2/docs/images/banner.svg +97 -0
  14. audio_transcode_watcher-0.4.2/docs/images/icon.png +0 -0
  15. audio_transcode_watcher-0.4.2/docs/images/icon.svg +31 -0
  16. audio_transcode_watcher-0.4.2/pyproject.toml +65 -0
  17. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/__init__.py +3 -0
  18. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/config.py +190 -0
  19. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/encoder.py +208 -0
  20. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/lyrics.py +193 -0
  21. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/main.py +97 -0
  22. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/sync.py +471 -0
  23. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/utils.py +150 -0
  24. audio_transcode_watcher-0.4.2/src/audio_transcode_watcher/watcher.py +109 -0
  25. audio_transcode_watcher-0.4.2/tests/__init__.py +1 -0
  26. audio_transcode_watcher-0.4.2/tests/conftest.py +114 -0
  27. audio_transcode_watcher-0.4.2/tests/test_config.py +224 -0
  28. audio_transcode_watcher-0.4.2/tests/test_encoder.py +206 -0
  29. audio_transcode_watcher-0.4.2/tests/test_lyrics.py +163 -0
  30. audio_transcode_watcher-0.4.2/tests/test_sync.py +478 -0
  31. audio_transcode_watcher-0.4.2/tests/test_utils.py +244 -0
  32. audio_transcode_watcher-0.4.2/tools/verify_sync.py +638 -0
  33. audio_transcode_watcher-0.4.2/uv.lock +817 -0
@@ -0,0 +1,4 @@
1
+ github: geiserx
2
+ patreon: geiser
3
+ buy_me_a_coffee: geiser
4
+ thanks_dev: u/gh/geiserx
@@ -0,0 +1,64 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+ day: monday
8
+ open-pull-requests-limit: 10
9
+ commit-message:
10
+ prefix: deps
11
+ labels:
12
+ - dependencies
13
+ - automated
14
+ groups:
15
+ minor-and-patch:
16
+ patterns:
17
+ - '*'
18
+ update-types:
19
+ - minor
20
+ - patch
21
+ pip_security:
22
+ applies-to: security-updates
23
+ patterns:
24
+ - '*'
25
+ ignore:
26
+ - dependency-name: '*'
27
+ update-types:
28
+ - version-update:semver-major
29
+ - package-ecosystem: docker
30
+ directory: /
31
+ schedule:
32
+ interval: weekly
33
+ day: monday
34
+ commit-message:
35
+ prefix: docker
36
+ labels:
37
+ - docker
38
+ - automated
39
+ groups:
40
+ docker_security:
41
+ applies-to: security-updates
42
+ patterns:
43
+ - '*'
44
+ - package-ecosystem: github-actions
45
+ directory: /
46
+ schedule:
47
+ interval: monthly
48
+ commit-message:
49
+ prefix: ci
50
+ labels:
51
+ - ci
52
+ - automated
53
+ groups:
54
+ github-actions:
55
+ patterns:
56
+ - '*'
57
+ github_actions_security:
58
+ applies-to: security-updates
59
+ patterns:
60
+ - '*'
61
+ ignore:
62
+ - dependency-name: '*'
63
+ update-types:
64
+ - version-update:semver-major
@@ -0,0 +1,95 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+
8
+ env:
9
+ REGISTRY: docker.io
10
+ IMAGE_NAME: drumsergio/audio-transcoder
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Python 3.14
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: '3.14'
22
+ cache: 'pip'
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install -e ".[dev]"
28
+
29
+ - name: Run tests
30
+ run: pytest
31
+
32
+ build-and-push:
33
+ needs: test
34
+ runs-on: ubuntu-latest
35
+ permissions:
36
+ contents: write
37
+ packages: write
38
+
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+
42
+ - name: Extract version from tag
43
+ id: version
44
+ run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
45
+
46
+ - name: Set up QEMU
47
+ uses: docker/setup-qemu-action@v3
48
+
49
+ - name: Set up Docker Buildx
50
+ uses: docker/setup-buildx-action@v3
51
+
52
+ - name: Log into Docker Hub
53
+ uses: docker/login-action@v3
54
+ with:
55
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
56
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
57
+
58
+ - name: Extract Docker metadata
59
+ id: meta
60
+ uses: docker/metadata-action@v5
61
+ with:
62
+ images: ${{ env.IMAGE_NAME }}
63
+ tags: |
64
+ type=semver,pattern={{version}}
65
+ type=semver,pattern={{major}}.{{minor}}
66
+ type=semver,pattern={{major}}
67
+ type=raw,value=latest,enable={{is_default_branch}}
68
+
69
+ - name: Build and push Docker image
70
+ uses: docker/build-push-action@v6
71
+ with:
72
+ context: .
73
+ push: true
74
+ platforms: linux/amd64
75
+ tags: ${{ steps.meta.outputs.tags }}
76
+ labels: ${{ steps.meta.outputs.labels }}
77
+ cache-from: type=gha
78
+ cache-to: type=gha,mode=max
79
+
80
+ - name: Create GitHub Release
81
+ uses: softprops/action-gh-release@v2
82
+ with:
83
+ generate_release_notes: true
84
+ body: |
85
+ ## Docker Image
86
+
87
+ ```bash
88
+ docker pull ${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}
89
+ ```
90
+
91
+ ## What's Changed
92
+
93
+ See the automatically generated release notes below.
94
+ env:
95
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,56 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Set up Python 3.14
16
+ uses: actions/setup-python@v5
17
+ with:
18
+ python-version: '3.14'
19
+ cache: 'pip'
20
+
21
+ - name: Install dependencies
22
+ run: |
23
+ python -m pip install --upgrade pip
24
+ pip install -e ".[dev]"
25
+
26
+ - name: Run tests with coverage
27
+ run: |
28
+ pytest --cov --cov-report=xml --cov-report=term-missing
29
+
30
+ - name: Upload coverage to Codecov
31
+ uses: codecov/codecov-action@v4
32
+ with:
33
+ token: ${{ secrets.CODECOV_TOKEN }}
34
+ files: ./coverage.xml
35
+ fail_ci_if_error: false
36
+
37
+ lint:
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+
42
+ - name: Set up Python 3.14
43
+ uses: actions/setup-python@v5
44
+ with:
45
+ python-version: '3.14'
46
+ cache: 'pip'
47
+
48
+ - name: Install package
49
+ run: |
50
+ python -m pip install --upgrade pip
51
+ pip install -e .
52
+
53
+ - name: Check imports
54
+ run: |
55
+ python -c "from audio_transcode_watcher.main import main"
56
+ python -c "from audio_transcode_watcher.config import Config, load_config"
@@ -0,0 +1,47 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual environments
24
+ .venv/
25
+ venv/
26
+ ENV/
27
+
28
+ # Testing
29
+ .coverage
30
+ .pytest_cache/
31
+ htmlcov/
32
+ .tox/
33
+ .nox/
34
+
35
+ # IDEs
36
+ .idea/
37
+ .vscode/
38
+ *.swp
39
+ *.swo
40
+
41
+ # OS
42
+ .DS_Store
43
+ Thumbs.db
44
+
45
+ # Local config (not the example)
46
+ config.yaml
47
+ !config.example.yaml
@@ -0,0 +1,22 @@
1
+ FROM python:3.14-slim
2
+
3
+ # Install FFmpeg for transcoding
4
+ RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg \
5
+ && rm -rf /var/lib/apt/lists/*
6
+
7
+ # Set working directory
8
+ WORKDIR /app
9
+
10
+ # Copy package files
11
+ COPY pyproject.toml README.md ./
12
+ COPY src/ ./src/
13
+ COPY tools/ ./tools/
14
+
15
+ # Install the package
16
+ RUN pip install --no-cache-dir .
17
+
18
+ # Environment
19
+ ENV PYTHONUNBUFFERED=1
20
+
21
+ # Default command
22
+ ENTRYPOINT ["python", "-m", "audio_transcode_watcher.main"]