summaryrefslogtreecommitdiff
blob: 9417ce91a55a72ebedb890002ffa113be9229fd0 (plain)
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
From eafdd306861f531c443885048f0abdaa6bc45f8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Thu, 27 Jun 2024 18:30:55 +0200
Subject: [PATCH] cli: Fix docstring processing with Python 3.13+

Fix docstring processing code to reindent the docstrings if using Python
3.13 or newer.  Starting with this version, all docstrings are
automatically dedented by Python, which causes the regular expression to
fail to match.

Fixes #1585
---
 tqdm/cli.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tqdm/cli.py b/tqdm/cli.py
index 7284f28..1bbce6d 100644
--- a/tqdm/cli.py
+++ b/tqdm/cli.py
@@ -4,6 +4,7 @@ Module version for monitoring CLI pipes (`... | python -m tqdm | ...`).
 import logging
 import re
 import sys
+import textwrap
 from ast import literal_eval as numeric
 
 from .std import TqdmKeyError, TqdmTypeError, tqdm
@@ -177,7 +178,11 @@ def main(fp=sys.stderr, argv=None):
     logging.basicConfig(level=getattr(logging, logLevel),
                         format="%(levelname)s:%(module)s:%(lineno)d:%(message)s")
 
-    d = tqdm.__doc__ + CLI_EXTRA_DOC
+    d = tqdm.__doc__
+    if sys.version_info >= (3, 13):
+        # Python 3.13+ automatically dedents docstrings
+        d = textwrap.indent(d, "    ")
+    d += CLI_EXTRA_DOC
 
     opt_types = dict(RE_OPTS.findall(d))
     # opt_types['delim'] = 'chr'
-- 
2.45.2