Skip to content

Commit

Permalink
Switch from docopt to docopt-ng
Browse files Browse the repository at this point in the history
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]: docopt/docopt#502
[release to PyPI]: https://pypi.org/project/docopt/#history
[docopt-ng]: https://github.com/jazzband/docopt-ng
[dotdrop]: https://github.com/deadc0de6/dotdrop
  • Loading branch information
maxwell-k authored and deadc0de6 committed Nov 21, 2024
1 parent f50f3ec commit 2b174bd
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Jinja2; python_version > '3.5'
docopt; python_version > '3.5'
docopt-ng; python_version > '3.5'
ruamel.yaml; python_version > '3.5'
python-magic; python_version > '3.5'
packaging; python_version > '3.5'
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def read_readme(readme_path):
keywords='dotfiles jinja2',
packages=find_packages(exclude=['tests*']),
install_requires=[
'docopt', 'Jinja2', 'ruamel.yaml',
'docopt-ng', 'Jinja2', 'ruamel.yaml',
'python-magic', 'packaging', 'requests',
'tomli; python_version < "3.11"',
'tomli_w', 'distro'],
Expand Down

0 comments on commit 2b174bd

Please sign in to comment.