Flesh out pyproject.toml to allow properly installing

Mostly because I'd like to be able to install it with uv, so it's
entirely for selfish reasons.
This commit is contained in:
James Smith 2025-08-22 21:01:53 +02:00
parent a0ce83fb72
commit 412444eb6e
2 changed files with 57 additions and 7 deletions

15
git-tidy → git_tidy.py Executable file → Normal file
View file

@ -1,21 +1,26 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Copyright 2023-2025 James Smith
# git-tidy is free software: you can redistribute it and/or modify it under the terms of the GNU # git-tidy is free software: you can redistribute it and/or modify it under the terms of the GNU
# General Public License as published by the Free Software Foundation, either version 3 of the # General Public License as published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# git-tidy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even # git-tidy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details. # Public License for more details.
# You should have received a copy of the GNU General Public License along with git-tidy. If not, see # You should have received a copy of the GNU General Public License along with git-tidy. If not, see
# <https://www.gnu.org/licenses/>. # <https://www.gnu.org/licenses/>.
"""git-tidy utility.""" """git-tidy utility."""
import argparse
import subprocess import subprocess
import sys import sys
from typing import List, Tuple, Union from typing import List, Tuple, Union
try:
from importlib.metadata import version
except ImportError:
# Python < 3.8
from importlib_metadata import version
common_default_branches = [ common_default_branches = [
"main", "main",
"master", "master",
@ -127,6 +132,10 @@ def get_default_branch() -> str:
def main(): def main():
"""Main function.""" """Main function."""
parser = argparse.ArgumentParser(description="A time-saving device for a developer using git.")
parser.add_argument("--version", action="version", version=f"git-tidy {version('git-tidy-python')}")
parser.parse_args()
default_branch = get_default_branch() default_branch = get_default_branch()
print(f"Switching to {default_branch}") print(f"Switching to {default_branch}")
run(["git", "checkout", default_branch]) run(["git", "checkout", default_branch])

View file

@ -1,6 +1,45 @@
[tool.black] [build-system]
requires = ["setuptools>=45", "setuptools-scm[toml]>=6.2", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "git-tidy-python"
dynamic = ["version"]
description = "A time-saving device for a developer using git."
authors = [
{name = "James Smith"}
]
readme = "README.md"
license = {text = "GPL-3.0-or-later"}
requires-python = ">=3.8"
dependencies = []
keywords = ["git", "cli", "developer-tools", "automation", "branch-management"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Version Control :: Git",
"Topic :: Utilities"
]
[project.scripts]
git-tidy = "git_tidy:main"
[tool.setuptools]
py-modules = ["git_tidy"]
[tool.ruff]
line-length = 120 line-length = 120
include = '\.pyi?$'
exclude =''' exclude ='''
/( /(
| \.git | \.git
@ -11,3 +50,5 @@ exclude ='''
[tool.isort] [tool.isort]
profile = "black" profile = "black"
line_length = 120 line_length = 120
[tool.setuptools_scm]