@@ -15,12 +15,14 @@ def csv_date(date_str: str, now_str: str) -> str:
15
15
return f"*{ date_str } *"
16
16
return date_str
17
17
18
+
18
19
def parse_date (date_str : str ) -> dt .date :
19
20
if len (date_str ) == len ("yyyy-mm" ):
20
21
# We need a full yyyy-mm-dd, so let's approximate
21
- return dt .date .fromisoformat (date_str + ' -01' )
22
+ return dt .date .fromisoformat (date_str + " -01" )
22
23
return dt .date .fromisoformat (date_str )
23
24
25
+
24
26
class Versions :
25
27
"""For converting JSON to CSV and SVG."""
26
28
@@ -30,12 +32,12 @@ def __init__(self) -> None:
30
32
31
33
# Generate a few additional fields
32
34
for key , version in self .versions .items ():
33
- version [' key' ] = key
34
- version [' first_release_date' ] = parse_date (version [' first_release' ])
35
- version [' end_of_life_date' ] = parse_date (version [' end_of_life' ])
35
+ version [" key" ] = key
36
+ version [" first_release_date" ] = parse_date (version [" first_release" ])
37
+ version [" end_of_life_date" ] = parse_date (version [" end_of_life" ])
36
38
self .sorted_versions = sorted (
37
39
self .versions .values (),
38
- key = lambda v : [int (i ) for i in v [' key' ].split ("." )],
40
+ key = lambda v : [int (i ) for i in v [" key" ].split ("." )],
39
41
reverse = True ,
40
42
)
41
43
@@ -56,7 +58,7 @@ def write_csv(self) -> None:
56
58
}
57
59
headers = row .keys ()
58
60
cat = "end-of-life" if details ["status" ] == "end-of-life" else "branches"
59
- versions_by_category [cat ][details [' key' ]] = row
61
+ versions_by_category [cat ][details [" key" ]] = row
60
62
61
63
for cat , versions in versions_by_category .items ():
62
64
with open (f"include/{ cat } .csv" , "w" , encoding = "UTF-8" , newline = "" ) as file :
@@ -67,7 +69,7 @@ def write_csv(self) -> None:
67
69
def write_svg (self ) -> None :
68
70
"""Output SVG file."""
69
71
env = jinja2 .Environment (
70
- loader = jinja2 .FileSystemLoader (' _tools/' ),
72
+ loader = jinja2 .FileSystemLoader (" _tools/" ),
71
73
autoescape = True ,
72
74
lstrip_blocks = True ,
73
75
trim_blocks = True ,
@@ -92,12 +94,8 @@ def write_svg(self) -> None:
92
94
# some positioning numbers in the template as well.
93
95
LINE_HEIGHT = 1.5
94
96
95
- first_date = min (
96
- ver ['first_release_date' ] for ver in self .sorted_versions
97
- )
98
- last_date = max (
99
- ver ['end_of_life_date' ] for ver in self .sorted_versions
100
- )
97
+ first_date = min (ver ["first_release_date" ] for ver in self .sorted_versions )
98
+ last_date = max (ver ["end_of_life_date" ] for ver in self .sorted_versions )
101
99
102
100
def date_to_x (date : dt .date ) -> float :
103
101
"""Convert datetime.date to an SVG X coordinate"""
0 commit comments