Repository navigation
Expand file tree
/
Copy pathsetup.py
More file actions
79 lines (74 loc) · 2.92 KB
/
Copy pathsetup.py
File metadata and controls
79 lines (74 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""
EncodeForge Setup Script
For packaging and distribution
"""
from setuptools import setup, find_packages
from pathlib import Path
# Read README
readme_path = Path(__file__).parent / "README.md"
long_description = readme_path.read_text(encoding="utf-8") if readme_path.exists() else ""
# Read requirements
requirements_path = Path(__file__).parent / "requirements.txt"
if requirements_path.exists():
with open(requirements_path, encoding="utf-8") as f:
requirements = [line.strip() for line in f
if line.strip() and not line.startswith("#")]
else:
requirements = []
# Read the version from app/__init__.py without importing the package (which
# would pull in PySide6 at build time).
version_file = Path(__file__).parent / "app" / "__init__.py"
version = "0.0.0"
for line in version_file.read_text(encoding="utf-8").splitlines():
if line.startswith("__version__"):
version = line.split("=", 1)[1].strip().strip('"').strip("'")
break
setup(
name="encodeforge",
version=version,
author="Joshua Kac",
author_email="",
description="FFmpeg GUI for batch video encoding, AI subtitles, and media file renaming",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/SirStig/EncodeForge",
project_urls={
"Bug Reports": "https://github.com/SirStig/EncodeForge/issues",
"Source": "https://github.com/SirStig/EncodeForge",
"Documentation": "https://github.com/SirStig/EncodeForge/wiki",
},
packages=find_packages(exclude=["tests*", "docs*", "EncodeForge*"]),
# main.py and cli.py are top-level modules, not packages, so find_packages()
# never ships them. Without this every console script installed below fails
# with ModuleNotFoundError on a non-source-tree install.
py_modules=["main", "cli"],
python_requires=">=3.10",
install_requires=requirements,
entry_points={
"console_scripts": [
"encodeforge=main:main",
"encodeforge-cli=cli:cli",
],
"gui_scripts": [
"encodeforge-gui=main:main",
],
},
include_package_data=True,
package_data={
"": ["resources/**/*"],
},
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: End Users/Desktop",
"Topic :: Multimedia :: Video :: Conversion",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: OS Independent",
"Environment :: X11 Applications :: Qt",
],
keywords="ffmpeg video encoding subtitles whisper ai pyside6 qt gui hardware acceleration nvenc batch processing",
license="MIT",
)