Check if current version satisfies required version specifier. Evaluates the version against the specifier using the project's prerelease policy (prereleases are allowed). Args: current: Current version (e.g., "0.1.5") required: Required version specifier (e.g., ">=0.1.
(current: str, required: str)
| 307 | |
| 308 | |
| 309 | def version_satisfies(current: str, required: str) -> bool: |
| 310 | """Check if current version satisfies required version specifier. |
| 311 | |
| 312 | Evaluates the version against the specifier using the project's |
| 313 | prerelease policy (prereleases are allowed). |
| 314 | |
| 315 | Args: |
| 316 | current: Current version (e.g., "0.1.5") |
| 317 | required: Required version specifier (e.g., ">=0.1.0,<2.0.0") |
| 318 | |
| 319 | Returns: |
| 320 | True if version satisfies requirement |
| 321 | """ |
| 322 | from packaging import version as pkg_version |
| 323 | from packaging.specifiers import InvalidSpecifier, SpecifierSet |
| 324 | |
| 325 | try: |
| 326 | current_ver = pkg_version.Version(current) |
| 327 | specifier = SpecifierSet(required) |
| 328 | return specifier.contains(current_ver, prereleases=True) |
| 329 | except (pkg_version.InvalidVersion, InvalidSpecifier): |
| 330 | return False |
no outgoing calls