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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
# ----- #
# Build #
# ----- #
[build-system]
requires = ["setuptools>=61.0.0"]
# https://setuptools.pypa.io/en/latest/history.html#v61-0-0
# Since Python 3.6 is stuck with setuptools 59.6.0, it works only for python>=3.7
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["yarsync", "yarsync.*"]
# This is the entry-point
# https://setuptools.pypa.io/en/latest/userguide/entry_point.html
[project.scripts]
yarsync = "yarsync.yarsync:main"
# -------- #
# Metadata #
# -------- #
[project]
name = "yarsync"
authors=[{name="Yaroslav Nikitenko",email="metst13@gmail.com"}]
description = "Yet Another Rsync is a file synchronization and backup tool"
keywords=["distributed", "file", "synchronization", "rsync", "backup"]
readme = "README.rst"
requires-python = ">=3.6"
license = {text = 'GPLv3'}
# these are most recent formats for license fields,
# but they are not supported by many distributions. Try again in 5 years.
# license = "GPL-3.0"
# license-files = ["LICENSE"]
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: System Administrators",
"Operating System :: POSIX :: Linux",
# remove in the future
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python :: 3 :: Only",
"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",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: System :: Archiving",
"Topic :: System :: Archiving :: Backup",
"Topic :: System :: Archiving :: Mirroring",
"Topic :: Utilities",
]
dynamic = ["version"]
dependencies = []
[project.urls]
Documentation = 'https://yarsync.readthedocs.io'
Source = 'https://github.com/ynikitenko/yarsync'
Tracker = 'https://github.com/ynikitenko/yarsync/issues'
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#dynamic-metadata
[tool.setuptools.dynamic]
version = {attr = "yarsync.version.__version__"}
# -------------------------- #
# Development / dependencies #
# -------------------------- #
[project.optional-dependencies]
documentation = [
"furo",
"myst-parser",
"sphinx",
]
[dependency-groups]
dev = [
"pip",
"coverage",
"pytest",
"pytest-cov",
"pytest-mock",
"tox",
]
# ----------------- #
# Tox configuration #
# ----------------- #
[tool.tox]
requires = ["tox>=3.28.0"]
# Python 3.6 was tested separately.
env_list = ["3.7","3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy3"]
[tool.tox.env_run_base]
description = "Run test under {base_python}"
commands = [["pytest", "{posargs}"]]
# Activate the following line in case you wish to use tox with uv
#runner = "uv-venv-lock-runner"
|