1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-04 15:39:43 +00:00
Files
dotdrop/setup.py
Keith Maxwell 2b174bd2cc Switch from docopt to docopt-ng
Running dotdrop under recent releases of Python — 3.12 and 3.13 — [outputs
syntax warnings] when from the docopt module.

[outputs syntax warnings]:
  https://docs.python.org/3/whatsnew/3.12.html#other-language-changes

<details>

<summary>Output with syntax warnings on Python 3.12 and 3.13</summary>

Command to run `dotdrop` with Python 3.12:

    rm -rf ~/.cache/uv \
    && ~/.local/bin/uv tool run --python=python3.12 dotdrop install --profile=default

Output:

```
   Built docopt==0.6.2
Installed 15 packages in 7ms
/home/maxwell-k/.cache/uv/archive-v0/IhmhuswofFs7ywBBC0kJs/lib64/python3.12/site-packages/docopt.py:165: SyntaxWarning: invalid escape sequence '\S'
  name = re.findall('(<\S*?>)', source)[0]
/home/maxwell-k/.cache/uv/archive-v0/IhmhuswofFs7ywBBC0kJs/lib64/python3.12/site-packages/docopt.py:166: SyntaxWarning: invalid escape sequence '\['
  value = re.findall('\[default: (.*)\]', source, flags=re.I)
/home/maxwell-k/.cache/uv/archive-v0/IhmhuswofFs7ywBBC0kJs/lib64/python3.12/site-packages/docopt.py:207: SyntaxWarning: invalid escape sequence '\['
  matched = re.findall('\[default: (.*)\]', description, flags=re.I)
/home/maxwell-k/.cache/uv/archive-v0/IhmhuswofFs7ywBBC0kJs/lib64/python3.12/site-packages/docopt.py:456: SyntaxWarning: invalid escape sequence '\S'
  split = re.split('\n *(<\S+?>|-\S+?)', doc)[1:]
     _       _      _
  __| | ___ | |_ __| |_ __ ___  _ __
 / _` |/ _ \| __/ _` | '__/ _ \| '_ |
 \__,_|\___/ \__\__,_|_|  \___/| .__/  v1.14.2
                               |_|

0 dotfile(s) installed.
```

The output is similar using `python3.13`.

</details>

[docopt] hasn't had a [release to PyPI] in 10 years. [No wheels] are
published to PyPI. `docopt` is used throughout the [dotdrop] code base.
Advice online suggests adopting [docopt-ng] instead.

[docopt]: https://github.com/docopt/docopt
[no wheels]: https://github.com/docopt/docopt/issues/502
[release to PyPI]: https://pypi.org/project/docopt/#history
[docopt-ng]: https://github.com/jazzband/docopt-ng
[dotdrop]: https://github.com/deadc0de6/dotdrop
2024-11-21 13:33:38 +01:00

67 lines
1.9 KiB
Python

"""setup.py"""
from os import path
from setuptools import setup, find_packages
from dotdrop.version import __version__ as VERSION
README = 'README.md'
here = path.abspath(path.dirname(__file__))
def read_readme(readme_path):
"""read readme content"""
with open(readme_path, encoding="utf-8") as file:
return file.read()
REQUIRES_PYTHON = '>=3'
URL = f'https://github.com/deadc0de6/dotdrop/archive/v{VERSION}.tar.gz'
setup(
name='dotdrop',
version=VERSION,
description='Save your dotfiles once, deploy them everywhere',
long_description=read_readme(README),
long_description_content_type="text/markdown; variant=GFM",
url='https://github.com/deadc0de6/dotdrop',
download_url=URL,
options={"bdist_wheel": {"python_tag": "py3"}},
# include anything from MANIFEST.in
include_package_data=True,
author='deadc0de6',
author_email='deadc0de6@foo.bar',
license='GPLv3',
python_requires=REQUIRES_PYTHON,
classifiers=[
'Development Status :: 5 - Production/Stable',
'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',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
],
keywords='dotfiles jinja2',
packages=find_packages(exclude=['tests*']),
install_requires=[
'docopt-ng', 'Jinja2', 'ruamel.yaml',
'python-magic', 'packaging', 'requests',
'tomli; python_version < "3.11"',
'tomli_w', 'distro'],
extras_require={
'dev': ['check-manifest'],
'test': ['coverage', 'pytest', 'pytest-cov'],
},
entry_points={
'console_scripts': [
'dotdrop=dotdrop:main',
],
},
)