Merge remote-tracking branch 'origin/develop' into whisper_models

This commit is contained in:
Marko Henning
2024-05-13 11:50:51 +02:00
9 changed files with 151 additions and 64 deletions
+112
View File
@@ -0,0 +1,112 @@
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
# on:
# workflow_dispatch:
# inputs:
# branch_name:
# description: 'Branch to build from (default is main)'
# required: false
# default: 'main'
# workflow_run:
# workflows: ["Run Tests"]
# types:
# - completed
# branches: [main, develop] # This ensures it only triggers for these branches
on:
push:
branches:
- develop
workflow_dispatch:
inputs:
branch_name:
description: 'Branch to build from (default is main)'
required: false
default: 'main'
env:
TestPyPI_URL: https://test.pypi.org/p/scraibe
PyPI_URL: https://pypi.org/p/scraibe
PyPI_DEV_URL: https://pypi.org/p/scraibe-nightly
ISRELEASED: true
jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
pip install setuptools wheel
- name: Build source distribution
run: |
python3 -c "import os; print('ISRELEASED' in os.environ)"
python3 setup.py sdist
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/
publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs: build
runs-on: ubuntu-latest
environment:
name: testpypi
url: env.TestPyPI_URL
permissions:
id-token: write
steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
test-install:
name: Test Installation from TestPyPI
needs: publish-to-testpypi
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install package
run: |
python3 -m pip install setuptools
python3 -m pip install --index-url https://test.pypi.org/simple/ scraibe
publish-to-pypi:
name: Conditional Publish to PyPI or Dev Repository
needs: [build, test-install]
runs-on: ubuntu-latest
environment:
name: pypi
url: env.PyPI_URL
permissions:
id-token: write
steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI or Dev Repository
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: ${{ github.ref == 'refs/heads/main' && 'env.PyPI_URL' || ' env.PyPI_DEV_URL' }}
password: ${{ secrets.PYPI_API_TOKEN}}
+1 -2
View File
@@ -1,11 +1,10 @@
name: Run tests name: Run Tests
on: on:
#push: #push:
pull_request: pull_request:
branches: ['main', 'develop'] branches: ['main', 'develop']
workflow_dispatch: workflow_dispatch:
jobs: jobs:
-39
View File
@@ -1,39 +0,0 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Upload Python Package
on:
release:
types: [published]
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Publish package
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
+8
View File
@@ -0,0 +1,8 @@
name: Ruff
on: [ push, pull_request ]
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: chartboost/ruff-action@v1
+2
View File
@@ -0,0 +1,2 @@
[lint.extend-per-file-ignores]
"__init__.py" = ["E402","F403"]
+2
View File
@@ -1,4 +1,6 @@
recursive-include scraibe *.py recursive-include scraibe *.py
recursive-include scraibe *.yaml recursive-include scraibe *.yaml
recursive-exclude test/*
global-include requirements.txt
global-exclude *.pyc global-exclude *.pyc
global-exclude __pycache__ global-exclude __pycache__
+2 -1
View File
@@ -4,8 +4,9 @@ import subprocess as sp
MAJOR = 0 MAJOR = 0
MINOR = 1 MINOR = 1
MICRO = 1 MICRO = 1
NANO = 2
ISRELEASED = False ISRELEASED = False
VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO) VERSION = '%d.%d.%d.%d' % (MAJOR, MINOR, MICRO, NANO)
# Return the git revision as a string # Return the git revision as a string
# taken from numpy/numpy # taken from numpy/numpy
+2 -1
View File
@@ -4,7 +4,8 @@ version = attr: scraibe.__version__
author = Jacob Schmieder author = Jacob Schmieder
author_email = Jacob.Schmieder@dbfz.de author_email = Jacob.Schmieder@dbfz.de
description = My package description description = My package description
long_description = file: README.md, LICENSE long_description = file: README.md, file: LICENSE
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
platforms = Linux platforms = Linux
keywords = transcription speech recognition whisper pyannote audio speech-to-text speech-to-text transcription speech-to-text recognition voice-to-speech keywords = transcription speech recognition whisper pyannote audio speech-to-text speech-to-text transcription speech-to-text recognition voice-to-speech
license = GPL-3.0 license = GPL-3.0
+20 -19
View File
@@ -1,5 +1,4 @@
import os import os
import re
from setuptools import setup, find_packages from setuptools import setup, find_packages
module_name = "scraibe" module_name = "scraibe"
@@ -27,30 +26,32 @@ version["ISRELEASED"] = True if "ISRELEASED" in os.environ else False
with open(os.path.join(os.path.dirname(__file__), "requirements.txt")) as f: with open(os.path.join(os.path.dirname(__file__), "requirements.txt")) as f:
requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')] requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')]
print(f"Launch Version: {version['get_version'](build_version)}")
if __name__ == "__main__": if __name__ == "__main__":
setup( setup(
name=module_name, name = module_name,
version=version["get_version"](build_version), version = version["get_version"](build_version),
packages=find_packages(), packages = find_packages(),
python_requires=">=3.8", python_requires = ">=3.8",
readme="README.md", readme = "README.md",
install_requires = requirements, install_requires = requirements,
extras_require= { extras_require = {
"app" : "scraibe-webui @ https://github.com/JSchmie/ScrAIbe-WebUI" "app" : ["scraibe-webui"],
} },
,
# dependency_links=[ # dependency_links=[
# 'https://download.pytorch.org/whl/cu113', # 'https://download.pytorch.org/whl/cu113',
# ], # ],
url= github_url, url = github_url,
license='GPL-3', license = 'GPL-3',
author='Jacob Schmieder', author = 'Jacob Schmieder',
author_email='Jacob.Schmieder@dbfz.de', author_email = 'Jacob.Schmieder@dbfz.de',
description='Transcription tool for audio files based on Whisper and Pyannote', description = 'Transcription tool for audio files based on Whisper and Pyannote',
classifiers=[ classifiers = [
'Development Status :: 3 - Alpha', 'Development Status :: 3 - Alpha',
'Environment :: GPU :: NVIDIA CUDA :: 11.2', 'Environment :: GPU :: NVIDIA CUDA :: 11.2',
'License :: OSI Approved :: Open Software License 3.0 (OSL-3.0)', 'License :: OSI Approved :: Open Software License 3.0 (OSL-3.0)',
@@ -61,8 +62,8 @@ if __name__ == "__main__":
keywords = ['transcription', 'speech recognition', 'whisper', 'pyannote', 'audio', 'ScrAIbe', 'scraibe', keywords = ['transcription', 'speech recognition', 'whisper', 'pyannote', 'audio', 'ScrAIbe', 'scraibe',
'speech-to-text', 'speech-to-text transcription', 'speech-to-text recognition', 'speech-to-text', 'speech-to-text transcription', 'speech-to-text recognition',
'voice-to-speech'], 'voice-to-speech'],
package_data={'scraibe.app' : ["*.html", "*.svg","*.yml"]}, include_package_data=True,
entry_points={'console_scripts': package_data = {'scraibe.app' : ["*.html", "*.svg","*.yml"]},
entry_points = {'console_scripts':
['scraibe = scraibe.cli:cli']} ['scraibe = scraibe.cli:cli']}
) )