Skip to content

Commit 53abc4e

Browse files
committed
Improve formatting of generated lkg files
Signed-off-by: Keith Battocchi <kebatt@microsoft.com>
1 parent 7093f51 commit 53abc4e

File tree

3 files changed

+272
-251
lines changed

3 files changed

+272
-251
lines changed

.github/workflows/generate_lkg.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,17 @@ def simple_constraint_map(all_combos: frozenset[Combo]) -> tuple[dict[frozenset[
7474
if i > 0:
7575
less_than = frozenset({combo for combo in all_combos if combo.py_version < py_version})
7676
constraint_map[less_than] = f"; python_version<'{py_version}'"
77+
# We want to use >= next version instead of > this version
78+
# because otherwise we have pairs like
79+
# somelib==1.2, python_version<'3.9'
80+
# somelib==1.3, python_version>'3.8'
81+
# which is correct but looks more confusing than
82+
# somelib==1.2, python_version<'3.9'
83+
# somelib==1.3, python_version>='3.9'
7784
if i < len(all_py_versions)-2:
78-
greater_than = frozenset({combo for combo in all_combos if combo.py_version > py_version})
79-
constraint_map[greater_than] = f"; python_version>'{py_version}'"
85+
next_version = sorted(all_py_versions)[i+1]
86+
greater_than = frozenset({combo for combo in all_combos if combo.py_version >= next_version})
87+
constraint_map[greater_than] = f"; python_version>='{next_version}'"
8088

8189
# if every combination is present, we don't need to add any constraint
8290
constraint_map[all_combos] = ""

lkg-notebook.txt

Lines changed: 150 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,190 +1,196 @@
1-
Babel==2.14.0
2-
Cython==3.0.10; '3.9'<=python_version
3-
Jinja2==3.1.3
4-
Keras-Applications==1.0.8; python_version<='3.8'
5-
Keras-Preprocessing==1.1.2; python_version<='3.8'
6-
Keras==2.3.1; python_version<='3.8'
7-
Markdown==3.6; python_version<='3.8'
8-
MarkupSafe==2.1.5
9-
PyYAML==6.0.1
10-
Pygments==2.17.2
11-
QtPy==2.4.1
1+
Cython==0.29.37; python_version=='3.9'
2+
Jinja2==3.1.4
3+
Keras==2.3.1; python_version<'3.9'
4+
Keras-Applications==1.0.8; python_version<'3.9'
5+
Keras-Preprocessing==1.1.2; python_version<'3.9'
6+
Markdown==3.7; python_version<'3.9'
7+
MarkupSafe==2.1.5; python_version<'3.9'
8+
MarkupSafe==3.0.2; python_version=='3.9'
9+
PyYAML==6.0.2
10+
Pygments==2.18.0
1211
Send2Trash==1.8.3
13-
Werkzeug==3.0.2; python_version<='3.8'
14-
absl-py==2.1.0; python_version<='3.8'
15-
aiosignal==1.3.1; python_version<='3.8'
16-
anyio==4.3.0
17-
argon2-cffi-bindings==21.2.0
12+
Werkzeug==3.0.6; python_version<'3.9'
13+
absl-py==2.1.0; python_version<'3.9'
14+
aiosignal==1.3.1; python_version<'3.9'
15+
anyio==4.5.2; python_version<'3.9'
16+
anyio==4.6.2.post1; python_version=='3.9'
1817
argon2-cffi==23.1.0
18+
argon2-cffi-bindings==21.2.0
1919
arrow==1.3.0
20-
asttokens==2.4.1
21-
astunparse==1.6.3; python_version<='3.8'
20+
asttokens==3.0.0
21+
astunparse==1.6.3; python_version<'3.9'
2222
async-lru==2.0.4
23-
attrs==23.2.0
24-
backcall==0.2.0; python_version<='3.8'
23+
attrs==24.2.0
24+
babel==2.16.0
25+
backcall==0.2.0; python_version<'3.9'
2526
beautifulsoup4==4.12.3
26-
bleach==6.1.0
27-
cachetools==4.2.4; python_version<='3.8'
28-
causal-learn==0.1.3.8; '3.9'<=python_version
29-
certifi==2024.2.2
30-
cffi==1.16.0
31-
charset-normalizer==3.3.2
32-
clarabel==0.7.1; '3.9'<=python_version
33-
click==8.1.7; python_version<='3.8'
34-
cloudpickle==3.0.0
27+
bleach==6.1.0; python_version<'3.9'
28+
bleach==6.2.0; python_version=='3.9'
29+
cachetools==4.2.4; python_version<'3.9'
30+
causal-learn==0.1.3.8; python_version=='3.9'
31+
certifi==2024.8.30
32+
cffi==1.17.1
33+
charset-normalizer==3.4.0
34+
clarabel==0.9.0; python_version=='3.9'
35+
click==8.1.7; python_version<'3.9'
36+
cloudpickle==3.1.0
3537
comm==0.2.2
36-
contourpy==1.1.1; python_version<='3.8'
37-
contourpy==1.2.1; '3.9'<=python_version
38-
cvxpy==1.4.3; '3.9'<=python_version
38+
contourpy==1.1.1; python_version<'3.9'
39+
contourpy==1.3.0; python_version=='3.9'
40+
cvxpy==1.6.0; python_version=='3.9'
3941
cycler==0.12.1
40-
debugpy==1.8.1
42+
debugpy==1.8.9
4143
decorator==5.1.1
4244
defusedxml==0.7.1
43-
dowhy==0.11.1; '3.9'<=python_version
44-
ecos==2.0.13; '3.9'<=python_version
45-
exceptiongroup==1.2.1
46-
executing==2.0.1
47-
fastjsonschema==2.19.1
48-
filelock==3.13.4; python_version<='3.8'
49-
fonttools==4.51.0
45+
dowhy==0.12; python_version=='3.9'
46+
exceptiongroup==1.2.2
47+
executing==2.1.0
48+
fastjsonschema==2.21.1
49+
filelock==3.16.1; python_version<'3.9'
50+
fonttools==4.55.1
5051
fqdn==1.5.1
51-
frozenlist==1.4.1; python_version<='3.8'
52-
gast==0.3.3; python_version<='3.8'
53-
google-auth-oauthlib==0.4.6; python_version<='3.8'
54-
google-auth==1.35.0; python_version<='3.8'
55-
google-pasta==0.2.0; python_version<='3.8'
52+
frozenlist==1.5.0; python_version<'3.9'
53+
gast==0.3.3; python_version<'3.9'
54+
google-auth==1.35.0; python_version<'3.9'
55+
google-auth-oauthlib==0.4.6; python_version<'3.9'
56+
google-pasta==0.2.0; python_version<'3.9'
5657
graphviz==0.20.3
57-
grpcio==1.62.2; python_version<='3.8'
58+
grpcio==1.68.1; python_version<'3.9'
5859
h11==0.14.0
59-
h5py==2.10.0; python_version<='3.8'
60-
httpcore==1.0.5
61-
httpx==0.27.0
62-
idna==3.7
63-
importlib_metadata==7.1.0
64-
importlib_resources==6.4.0
65-
ipykernel==6.29.4
66-
ipython==8.12.3; python_version<='3.8'
67-
ipython==8.18.1; '3.9'<=python_version
68-
ipywidgets==8.1.2
60+
h5py==2.10.0; python_version<'3.9'
61+
httpcore==1.0.7
62+
httpx==0.28.0
63+
idna==3.10
64+
importlib_metadata==8.5.0
65+
importlib_resources==6.4.5
66+
ipykernel==6.29.5
67+
ipython==8.12.3; python_version<'3.9'
68+
ipython==8.18.1; python_version=='3.9'
69+
ipywidgets==8.1.5
6970
isoduration==20.11.0
70-
jedi==0.19.1
71-
joblib==1.4.0
72-
json5==0.9.25
73-
jsonpointer==2.4
74-
jsonschema-specifications==2023.12.1
75-
jsonschema==4.21.1
71+
jedi==0.19.2
72+
joblib==1.4.2
73+
json5==0.10.0
74+
jsonpointer==3.0.0
75+
jsonschema==4.23.0
76+
jsonschema-specifications==2023.12.1; python_version<'3.9'
77+
jsonschema-specifications==2024.10.1; python_version=='3.9'
78+
jupyter==1.1.1
7679
jupyter-console==6.6.3
7780
jupyter-events==0.10.0
7881
jupyter-lsp==2.2.5
79-
jupyter==1.0.0
80-
jupyter_client==8.6.1
82+
jupyter_client==8.6.3
8183
jupyter_core==5.7.2
82-
jupyter_server==2.14.0
84+
jupyter_server==2.14.2
8385
jupyter_server_terminals==0.5.3
84-
jupyterlab==4.1.6
86+
jupyterlab==4.3.2
8587
jupyterlab_pygments==0.3.0
86-
jupyterlab_server==2.27.1
87-
jupyterlab_widgets==3.0.10
88-
kiwisolver==1.4.5
89-
lightgbm==4.3.0
90-
llvmlite==0.41.1; python_version<='3.8'
91-
llvmlite==0.42.0; '3.9'<=python_version
88+
jupyterlab_server==2.27.3
89+
jupyterlab_widgets==3.0.13
90+
kiwisolver==1.4.7
91+
lightgbm==4.5.0
92+
llvmlite==0.41.1; python_version<'3.9'
93+
llvmlite==0.43.0; python_version=='3.9'
94+
matplotlib==3.7.5; python_version<'3.9'
95+
matplotlib==3.9.3; python_version=='3.9'
9296
matplotlib-inline==0.1.7
93-
matplotlib==3.7.5; python_version<='3.8'
94-
matplotlib==3.8.4; '3.9'<=python_version
9597
mistune==3.0.2
96-
mpmath==1.3.0; '3.9'<=python_version
97-
msgpack==1.0.8; python_version<='3.8'
98-
nbclient==0.10.0
99-
nbconvert==7.16.3
98+
mpmath==1.3.0; python_version=='3.9'
99+
msgpack==1.1.0; python_version<'3.9'
100+
nbclient==0.10.1
101+
nbconvert==7.16.4
100102
nbformat==5.10.4
101103
nest-asyncio==1.6.0
102-
networkx==3.2.1; '3.9'<=python_version
103-
notebook==7.1.3
104+
networkx==3.2.1; python_version=='3.9'
105+
notebook==7.3.0
104106
notebook_shim==0.2.4
105-
numba==0.58.1; python_version<='3.8'
106-
numba==0.59.1; '3.9'<=python_version
107-
numpy==1.23.5; python_version<='3.8'
108-
numpy==1.26.4; '3.9'<=python_version
109-
oauthlib==3.2.2; python_version<='3.8'
110-
opt-einsum==3.3.0; python_version<='3.8'
111-
osqp==0.6.4; '3.9'<=python_version
107+
numba==0.58.1; python_version<'3.9'
108+
numba==0.60.0; python_version=='3.9'
109+
numpy==1.23.5; python_version<'3.9'
110+
numpy==1.26.4; python_version=='3.9'
111+
nvidia-nccl-cu12==2.23.4
112+
oauthlib==3.2.2; python_version<'3.9'
113+
opt_einsum==3.4.0; python_version<'3.9'
114+
osqp==0.6.7.post3; python_version=='3.9'
112115
overrides==7.7.0
113-
packaging==24.0
114-
pandas==2.0.3; python_version<='3.8'
115-
pandas==2.2.2; '3.9'<=python_version
116+
packaging==24.2
117+
pandas==2.0.3; python_version<'3.9'
118+
pandas==2.2.3; python_version=='3.9'
116119
pandocfilters==1.5.1
117120
parso==0.8.4
118-
patsy==0.5.6
121+
patsy==1.0.1
119122
pexpect==4.9.0
120-
pickleshare==0.7.5; python_version<='3.8'
121-
pillow==10.3.0
122-
pkgutil_resolve_name==1.3.10; python_version<='3.8'
123-
platformdirs==4.2.1
124-
prometheus_client==0.20.0
125-
prompt-toolkit==3.0.43
126-
protobuf==3.20.3; python_version<='3.8'
127-
psutil==5.9.8
123+
pickleshare==0.7.5; python_version<'3.9'
124+
pillow==10.4.0; python_version<'3.9'
125+
pillow==11.0.0; python_version=='3.9'
126+
pkgutil_resolve_name==1.3.10; python_version<'3.9'
127+
platformdirs==4.3.6
128+
prometheus_client==0.21.1
129+
prompt_toolkit==3.0.48
130+
protobuf==3.20.3; python_version<'3.9'
131+
psutil==6.1.0
128132
ptyprocess==0.7.0
129-
pure-eval==0.2.2
130-
pyasn1==0.6.0; python_version<='3.8'
131-
pyasn1_modules==0.4.0; python_version<='3.8'
132-
pybind11==2.12.0; '3.9'<=python_version
133+
pure_eval==0.2.3
134+
pyasn1==0.6.1; python_version<'3.9'
135+
pyasn1_modules==0.4.1; python_version<'3.9'
133136
pycparser==2.22
134-
pydot==2.0.0; '3.9'<=python_version
135-
pyparsing==3.1.2
137+
pydot==3.0.3; python_version=='3.9'
138+
pyparsing==3.1.4; python_version<'3.9'
139+
pyparsing==3.2.0; python_version=='3.9'
136140
python-dateutil==2.9.0.post0
137141
python-json-logger==2.0.7
138-
pytz==2024.1
139-
pyzmq==26.0.2
140-
qdldl==0.1.7.post2; '3.9'<=python_version
141-
qtconsole==5.5.1
142-
ray==2.10.0; python_version<='3.8'
143-
referencing==0.35.0
144-
requests-oauthlib==2.0.0; python_version<='3.8'
145-
requests==2.31.0
142+
pytz==2024.2
143+
pyzmq==26.2.0
144+
qdldl==0.1.7.post4; python_version=='3.9'
145+
ray==2.10.0; python_version<'3.9'
146+
referencing==0.35.1
147+
requests==2.32.3
148+
requests-oauthlib==2.0.0; python_version<'3.9'
146149
rfc3339-validator==0.1.4
147150
rfc3986-validator==0.1.1
148-
rpds-py==0.18.0
149-
rsa==4.9; python_version<='3.8'
150-
scikit-learn==1.2.2; python_version<='3.8'
151-
scikit-learn==1.4.2; '3.9'<=python_version
152-
scipy==1.13.0; '3.9'<=python_version
153-
scipy==1.4.1; python_version<='3.8'
154-
scs==3.2.4.post1; '3.9'<=python_version
151+
rpds-py==0.20.1; python_version<'3.9'
152+
rpds-py==0.22.3; python_version=='3.9'
153+
rsa==4.9; python_version<'3.9'
154+
scikit-learn==1.2.2; python_version<'3.9'
155+
scikit-learn==1.5.2; python_version=='3.9'
156+
scipy==1.4.1; python_version<'3.9'
157+
scipy==1.13.1; python_version=='3.9'
158+
scs==3.2.7; python_version=='3.9'
155159
seaborn==0.13.2
156160
shap==0.43.0
157161
six==1.16.0
158162
slicer==0.0.7
159163
sniffio==1.3.1
160-
soupsieve==2.5
161-
sparse==0.15.1
164+
soupsieve==2.6
165+
sparse==0.15.4
162166
stack-data==0.6.3
163-
statsmodels==0.14.1; python_version<='3.8'
164-
statsmodels==0.14.2; '3.9'<=python_version
165-
sympy==1.12; '3.9'<=python_version
166-
tensorboard-plugin-wit==1.8.1; python_version<='3.8'
167-
tensorboard==2.2.2; python_version<='3.8'
168-
tensorflow-estimator==2.2.0; python_version<='3.8'
169-
tensorflow==2.2.0; python_version<='3.8'
170-
termcolor==2.4.0; python_version<='3.8'
167+
statsmodels==0.14.1; python_version<'3.9'
168+
statsmodels==0.14.4; python_version=='3.9'
169+
sympy==1.13.3; python_version=='3.9'
170+
tensorboard==2.2.2; python_version<'3.9'
171+
tensorboard-plugin-wit==1.8.1; python_version<'3.9'
172+
tensorflow==2.2.0; python_version<'3.9'
173+
tensorflow-estimator==2.2.0; python_version<'3.9'
174+
termcolor==2.4.0; python_version<'3.9'
171175
terminado==0.18.1
172-
threadpoolctl==3.4.0
173-
tinycss2==1.3.0
174-
tomli==2.0.1
175-
tornado==6.4
176-
tqdm==4.66.2
176+
threadpoolctl==3.5.0
177+
tinycss2==1.4.0
178+
tomli==2.2.1
179+
tornado==6.4.2
180+
tqdm==4.67.1
177181
traitlets==5.14.3
178-
types-python-dateutil==2.9.0.20240316
179-
typing_extensions==4.11.0
180-
tzdata==2024.1
182+
types-python-dateutil==2.9.0.20241003
183+
typing_extensions==4.12.2
184+
tzdata==2024.2
181185
uri-template==1.3.0
182-
urllib3==2.2.1
186+
urllib3==2.2.3
183187
wcwidth==0.2.13
184-
webcolors==1.13
188+
webcolors==24.8.0; python_version<'3.9'
189+
webcolors==24.11.1; python_version=='3.9'
185190
webencodings==0.5.1
186191
websocket-client==1.8.0
187-
widgetsnbextension==4.0.10
188-
wrapt==1.16.0; python_version<='3.8'
189-
xgboost==2.0.3
190-
zipp==3.18.1
192+
widgetsnbextension==4.0.13
193+
wrapt==1.17.0; python_version<'3.9'
194+
xgboost==2.1.3
195+
zipp==3.20.2; python_version<'3.9'
196+
zipp==3.21.0; python_version=='3.9'

0 commit comments

Comments
 (0)