3
3
import re
4
4
from pathlib import Path
5
5
6
+ _NUMBER_RE = re .compile (r"\d+" )
7
+ _VERSION_RE = re .compile (r"(v\d+\.\d+\.\d+((?:a|b|rc).*)?)" )
6
8
7
- def pad_version (version , pad_length = 3 ):
9
+
10
+ def pad_version (version : str , pad_length : int = 3 ):
8
11
p = ""
9
12
n : str
10
- for n in re .findall (r"\d+" , version ):
11
- p += str ( n .zfill (pad_length ) )
13
+ for n in _NUMBER_RE .findall (version ):
14
+ p += n .zfill (pad_length )
12
15
if "a" not in version :
13
16
p += "9" * pad_length # stable versions before pre-releases (with `reverse=True`)
14
17
return p
15
18
16
19
17
- def write_switcher_json (* args ):
20
+ def write_switcher_json (* args : str ):
18
21
url_prefix = args [0 ] if args else "/"
19
22
if not url_prefix .startswith ("/" ):
20
23
url_prefix = f"/{ url_prefix } "
@@ -32,16 +35,13 @@ def write_switcher_json(*args):
32
35
dev_named = False
33
36
stable_named = False
34
37
for idx , vers in enumerate (all_vers ):
35
- is_dev = bool (
36
- re .search (r"(v[0-9]+\.[0-9]+\.[0-9]+((?:a|b|rc).*)?)" , vers ).groups ()[1 ]
37
- )
38
+ is_dev = bool (_VERSION_RE .search (vers ).group (1 ))
38
39
if not is_dev and not stable_named :
39
40
stable_named = True
40
41
name = f"stable ({ vers } )"
41
42
if idx == 0 :
42
- dev_named = (
43
- True # don't label dev if there is no dev version beyond stable
44
- )
43
+ dev_named = True
44
+ # don't label dev if there is no dev version beyond stable
45
45
elif is_dev and not dev_named :
46
46
dev_named = True
47
47
name = f"dev ({ vers } )"
0 commit comments