|
144 | 144 | "Topic :: Software Development :: Testing :: Traffic Generation", |
145 | 145 | "Topic :: Utilities", |
146 | 146 | ], |
147 | | - python_requires=">=3.8", |
| 147 | + python_requires=">=3.9", |
148 | 148 | install_requires=[ |
149 | | - 'pip>=25.0.1;python_version<"3.9"', |
150 | | - 'pip>=25.3;python_version>="3.9"', |
| 149 | + 'pip>=25.3', |
151 | 150 | 'packaging>=25.0', |
152 | 151 | 'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues |
153 | 152 | 'setuptools>=80.9.0;python_version>="3.10"', |
154 | 153 | 'wheel>=0.45.1', |
155 | | - 'attrs~=25.3.0;python_version<"3.9"', |
156 | | - 'attrs>=25.4.0;python_version>="3.9"', |
157 | | - "certifi>=2025.11.12", |
158 | | - "exceptiongroup>=1.3.1", |
159 | | - 'websockets~=13.1;python_version<"3.9"', |
160 | | - 'websockets>=15.0.1;python_version>="3.9"', |
161 | | - 'filelock~=3.16.1;python_version<"3.9"', |
162 | | - 'filelock~=3.19.1;python_version>="3.9" and python_version<"3.10"', |
| 154 | + 'attrs>=25.4.0', |
| 155 | + 'certifi>=2025.11.12', |
| 156 | + 'exceptiongroup>=1.3.1', |
| 157 | + 'websockets>=15.0.1', |
| 158 | + 'filelock~=3.19.1;python_version<"3.10"', |
163 | 159 | 'filelock>=3.20.0;python_version>="3.10"', |
164 | 160 | 'fasteners>=0.20', |
165 | | - "mycdp>=1.3.1", |
166 | | - "pynose>=1.5.5", |
167 | | - 'platformdirs~=4.3.6;python_version<"3.9"', |
168 | | - 'platformdirs~=4.4.0;python_version>="3.9" and python_version<"3.10"', |
169 | | - 'platformdirs>=4.5.0;python_version>="3.10"', |
170 | | - 'typing-extensions~=4.13.2;python_version<"3.9"', |
171 | | - 'typing-extensions>=4.15.0;python_version>="3.9"', |
172 | | - "sbvirtualdisplay>=1.4.0", |
173 | | - 'MarkupSafe==2.1.5;python_version<"3.9"', |
174 | | - 'MarkupSafe>=3.0.3;python_version>="3.9"', |
| 161 | + 'mycdp>=1.3.2', |
| 162 | + 'pynose>=1.5.5', |
| 163 | + 'platformdirs~=4.4.0;python_version<"3.10"', |
| 164 | + 'platformdirs>=4.5.1;python_version>="3.10"', |
| 165 | + 'typing-extensions>=4.15.0', |
| 166 | + 'sbvirtualdisplay>=1.4.0', |
| 167 | + 'MarkupSafe>=3.0.3', |
175 | 168 | "Jinja2>=3.1.6", |
176 | 169 | "six>=1.17.0", |
177 | 170 | 'parse>=1.20.2', |
|
180 | 173 | 'pyyaml>=6.0.3', |
181 | 174 | 'pygments>=2.19.2', |
182 | 175 | 'pyreadline3>=3.5.4;platform_system=="Windows"', |
183 | | - "tabcompleter>=1.4.0", |
184 | | - "pdbp>=1.8.1", |
185 | | - "idna>=3.11", |
| 176 | + 'tabcompleter>=1.4.0', |
| 177 | + 'pdbp>=1.8.1', |
| 178 | + 'idna>=3.11', |
186 | 179 | 'chardet==5.2.0', |
187 | 180 | 'charset-normalizer>=3.4.4,<4', |
188 | 181 | 'urllib3>=1.26.20,<2;python_version<"3.10"', |
189 | | - 'urllib3>=1.26.20,<2.6.0;python_version>="3.10"', |
190 | | - 'requests==2.32.4;python_version<"3.9"', |
191 | | - 'requests~=2.32.5;python_version>="3.9"', |
| 182 | + 'urllib3>=1.26.20,<3;python_version>="3.10"', |
| 183 | + 'requests~=2.32.5', |
192 | 184 | 'sniffio==1.3.1', |
193 | 185 | 'h11==0.16.0', |
194 | 186 | 'outcome==1.3.0.post0', |
195 | | - 'trio==0.27.0;python_version<"3.9"', |
196 | | - 'trio>=0.31.0,<1;python_version>="3.9" and python_version<"3.10"', |
| 187 | + 'trio>=0.31.0,<1;python_version<"3.10"', |
197 | 188 | 'trio>=0.32.0,<1;python_version>="3.10"', |
198 | 189 | 'trio-websocket~=0.12.2', |
199 | 190 | 'wsproto==1.2.0;python_version<"3.10"', |
200 | 191 | 'wsproto~=1.3.2;python_version>="3.10"', |
201 | | - 'websocket-client~=1.8.0;python_version<"3.9"', |
202 | | - 'websocket-client~=1.9.0;python_version>="3.9"', |
203 | | - 'selenium==4.27.1;python_version<"3.9"', |
204 | | - 'selenium==4.32.0;python_version>="3.9" and python_version<"3.10"', |
205 | | - 'selenium==4.38.0;python_version>="3.10"', |
206 | | - 'cssselect==1.2.0;python_version<"3.9"', |
207 | | - 'cssselect==1.3.0;python_version>="3.9"', |
208 | | - "sortedcontainers==2.4.0", |
| 192 | + 'websocket-client~=1.9.0', |
| 193 | + 'selenium==4.32.0;python_version<"3.10"', |
| 194 | + 'selenium==4.39.0;python_version>="3.10"', |
| 195 | + 'cssselect==1.3.0', |
| 196 | + 'nest-asyncio==1.6.0', |
| 197 | + 'sortedcontainers==2.4.0', |
209 | 198 | 'execnet==2.1.1;python_version<"3.10"', |
210 | 199 | 'execnet==2.1.2;python_version>="3.10"', |
211 | 200 | 'iniconfig==2.1.0;python_version<"3.10"', |
212 | 201 | 'iniconfig==2.3.0;python_version>="3.10"', |
213 | | - 'pluggy==1.5.0;python_version<"3.9"', |
214 | | - 'pluggy==1.6.0;python_version>="3.9"', |
215 | | - 'pytest==8.3.5;python_version<"3.9"', |
216 | | - 'pytest==8.4.2;python_version>="3.9" and python_version<"3.11"', |
217 | | - 'pytest==9.0.1;python_version>="3.11"', |
218 | | - "pytest-html==4.0.2", # Newer ones had issues |
| 202 | + 'pluggy==1.6.0', |
| 203 | + 'pytest==8.4.2;python_version<"3.11"', |
| 204 | + 'pytest==9.0.2;python_version>="3.11"', |
| 205 | + 'pytest-html==4.0.2', # Newer ones had issues |
219 | 206 | 'pytest-metadata==3.1.1', |
220 | | - "pytest-ordering==0.6", |
221 | | - 'pytest-rerunfailures==14.0;python_version<"3.9"', |
222 | | - 'pytest-rerunfailures==16.0.1;python_version>="3.9" and python_version<"3.10"', # noqa |
| 207 | + 'pytest-ordering==0.6', |
| 208 | + 'pytest-rerunfailures==16.0.1;python_version<"3.10"', |
223 | 209 | 'pytest-rerunfailures==16.1;python_version>="3.10"', |
224 | | - 'pytest-xdist==3.6.1;python_version<"3.9"', |
225 | | - 'pytest-xdist==3.8.0;python_version>="3.9"', |
| 210 | + 'pytest-xdist==3.8.0', |
226 | 211 | 'parameterized==0.9.0', |
227 | | - "behave==1.2.6", # Newer ones had issues |
228 | | - 'soupsieve==2.7;python_version<"3.9"', |
229 | | - 'soupsieve~=2.8;python_version>="3.9"', |
230 | | - "beautifulsoup4~=4.14.2", |
| 212 | + 'behave==1.2.6', # Newer ones had issues |
| 213 | + 'soupsieve~=2.8', |
| 214 | + 'beautifulsoup4~=4.14.3', |
231 | 215 | 'pyotp==2.9.0', |
232 | 216 | 'python-xlib==0.33;platform_system=="Linux"', |
233 | 217 | 'PyAutoGUI>=0.9.54;platform_system=="Linux"', |
|
248 | 232 | # pip install -e .[coverage] |
249 | 233 | # Usage: coverage run -m pytest; coverage html; coverage report |
250 | 234 | "coverage": [ |
251 | | - 'coverage>=7.6.1;python_version<"3.9"', |
252 | | - 'coverage>=7.10.7;python_version>="3.9" and python_version<"3.10"', |
| 235 | + 'coverage>=7.10.7;python_version<"3.10"', |
253 | 236 | 'coverage>=7.12.0;python_version>="3.10"', |
254 | | - 'pytest-cov>=5.0.0;python_version<"3.9"', |
255 | | - 'pytest-cov>=7.0.0;python_version>="3.9"', |
| 237 | + 'pytest-cov>=7.0.0', |
256 | 238 | ], |
257 | 239 | # pip install -e .[flake8] |
258 | 240 | # Usage: flake8 |
259 | 241 | "flake8": [ |
260 | | - 'flake8==5.0.4;python_version<"3.9"', |
261 | | - 'flake8==7.3.0;python_version>="3.9"', |
| 242 | + 'flake8==7.3.0', |
262 | 243 | "mccabe==0.7.0", |
263 | | - 'pyflakes==2.5.0;python_version<"3.9"', |
264 | | - 'pyflakes==3.4.0;python_version>="3.9"', |
265 | | - 'pycodestyle==2.9.1;python_version<"3.9"', |
266 | | - 'pycodestyle==2.14.0;python_version>="3.9"', |
| 244 | + 'pyflakes==3.4.0', |
| 245 | + 'pycodestyle==2.14.0', |
267 | 246 | ], |
268 | 247 | # pip install -e .[ipdb] |
269 | 248 | # (Not needed for debugging anymore. SeleniumBase now includes "pdbp".) |
|
274 | 253 | # pip install -e .[mss] |
275 | 254 | # (An optional library for tile_windows() in CDP Mode.) |
276 | 255 | "mss": [ |
277 | | - 'mss==9.0.2;python_version<"3.9"', |
278 | | - 'mss==10.0.0;python_version>="3.9"', |
| 256 | + 'mss==10.1.0', |
279 | 257 | ], |
280 | 258 | # pip install -e .[pdfminer] |
281 | 259 | # (An optional library for parsing PDF files.) |
282 | 260 | "pdfminer": [ |
283 | | - 'pdfminer.six==20250324;python_version<"3.9"', |
284 | | - 'pdfminer.six==20251107;python_version>="3.9"', |
285 | | - 'cryptography==39.0.2;python_version<"3.9"', |
286 | | - 'cryptography==46.0.3;python_version>="3.9"', |
287 | | - 'cffi==1.17.1;python_version<"3.9"', |
288 | | - 'cffi==2.0.0;python_version>="3.9"', |
289 | | - 'pycparser==2.22;python_version<"3.9"', |
290 | | - 'pycparser==2.23;python_version>="3.9"', |
| 261 | + 'pdfminer.six==20251107', |
| 262 | + 'cryptography==46.0.3', |
| 263 | + 'cffi==2.0.0', |
| 264 | + 'pycparser==2.23', |
291 | 265 | ], |
292 | 266 | # pip install -e .[pillow] |
293 | 267 | # (An optional library for image-processing.) |
294 | 268 | "pillow": [ |
295 | | - 'Pillow>=10.4.0;python_version<"3.9"', |
296 | | - 'Pillow>=11.3.0;python_version>="3.9" and python_version<"3.10"', |
| 269 | + 'Pillow>=11.3.0;python_version<"3.10"', |
297 | 270 | 'Pillow>=12.0.0;python_version>="3.10"', |
298 | 271 | ], |
299 | 272 | # pip install -e .[pip-system-certs] |
|
308 | 281 | "proxy": [ |
309 | 282 | "proxy.py==2.4.3", # 2.4.4 did not have "Listening on ..." |
310 | 283 | ], |
| 284 | + # pip install -e .[playwright] |
| 285 | + # (For the Playwright integration.) |
| 286 | + "playwright": [ |
| 287 | + "playwright>=1.56.0", |
| 288 | + ], |
311 | 289 | # pip install -e .[psutil] |
312 | 290 | "psutil": [ |
313 | | - "psutil==7.1.2", |
| 291 | + "psutil>=7.1.3", |
314 | 292 | ], |
315 | 293 | # pip install -e .[pyautogui] |
316 | 294 | # (Already a required dependency on Linux now.) |
|
0 commit comments