Skip to content

Commit c96bf0c

Browse files
committed
put more stuff into functions
1 parent 3e1c28d commit c96bf0c

File tree

1 file changed

+50
-33
lines changed

1 file changed

+50
-33
lines changed

scripts/populate_tox/populate_tox.py

Lines changed: 50 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from packaging.specifiers import SpecifierSet
1313
from packaging.version import Version
1414
from pathlib import Path
15-
from typing import Optional, Union
15+
from typing import Optional, Tuple, Union
1616

1717
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
1818

@@ -393,6 +393,50 @@ def write_tox_file(packages: dict) -> None:
393393
file.write("\n")
394394

395395

396+
def _get_package_name(integration: str) -> Tuple[str, Optional[str]]:
397+
package = TEST_SUITE_CONFIG[integration]["package"]
398+
extra = None
399+
if "[" in package:
400+
extra = package[package.find("[") + 1 : package.find("]")]
401+
package = package[: package.find("[")]
402+
403+
return package, extra
404+
405+
406+
def _compare_min_version_with_defined(
407+
integration: str, releases: list[Version]
408+
) -> None:
409+
defined_min_version = _MIN_VERSIONS.get(integration)
410+
if defined_min_version:
411+
defined_min_version = Version(".".join([str(v) for v in defined_min_version]))
412+
if (
413+
defined_min_version.major != releases[0].major
414+
or defined_min_version.minor != releases[0].minor
415+
):
416+
print(
417+
f" Integration defines {defined_min_version} as minimum "
418+
f"version, but the effective minimum version is {releases[0]}."
419+
)
420+
421+
422+
def _add_python_versions_to_release(integration: str, package: str, release: Version):
423+
release_pypi_data = fetch_release(package, release)
424+
time.sleep(0.1) # give PYPI some breathing room
425+
426+
target_python_versions = TEST_SUITE_CONFIG[integration].get("python")
427+
if target_python_versions:
428+
target_python_versions = SpecifierSet(target_python_versions)
429+
430+
release.python_versions = pick_python_versions_to_test(
431+
supported_python_versions(
432+
determine_python_versions(release_pypi_data),
433+
target_python_versions,
434+
)
435+
)
436+
437+
release.rendered_python_versions = _render_python_versions(release.python_versions)
438+
439+
396440
def main() -> None:
397441
print("Finding out the lowest and highest Python version supported by the SDK...")
398442
global MIN_PYTHON_VERSION, MAX_PYTHON_VERSION
@@ -413,11 +457,7 @@ def main() -> None:
413457
print(f"Processing {integration}...")
414458

415459
# Figure out the actual main package
416-
package = TEST_SUITE_CONFIG[integration]["package"]
417-
extra = None
418-
if "[" in package:
419-
extra = package[package.find("[") + 1 : package.find("]")]
420-
package = package[: package.find("[")]
460+
package, extra = _get_package_name(integration)
421461

422462
# Fetch data for the main package
423463
pypi_data = fetch_package(package)
@@ -428,42 +468,19 @@ def main() -> None:
428468
print(" Found no supported releases.")
429469
continue
430470

431-
defined_min_version = _MIN_VERSIONS.get(integration)
432-
if defined_min_version:
433-
defined_min_version = Version(
434-
".".join([str(v) for v in defined_min_version])
435-
)
436-
if (
437-
defined_min_version.major != releases[0].major
438-
or defined_min_version.minor != releases[0].minor
439-
):
440-
print(
441-
f" Integration defines {defined_min_version} as minimum version, but the effective minimum version is {releases[0]}."
442-
)
471+
_compare_min_version_with_defined(integration, releases)
443472

444473
# Pick a handful of the supported releases to actually test against
445474
# and fetch the PYPI data for each to determine which Python versions
446475
# to test it on
447476
test_releases = pick_releases_to_test(releases)
448477

449478
for release in test_releases:
450-
target_python_versions = TEST_SUITE_CONFIG[integration].get("python")
451-
if target_python_versions:
452-
target_python_versions = SpecifierSet(target_python_versions)
453-
release_pypi_data = fetch_release(package, release)
454-
release.python_versions = pick_python_versions_to_test(
455-
supported_python_versions(
456-
determine_python_versions(release_pypi_data),
457-
target_python_versions,
458-
)
479+
py_versions = _add_python_versions_to_release(
480+
integration, package, release
459481
)
460-
if not release.python_versions:
482+
if not py_versions:
461483
print(f" Release {release} has no Python versions, skipping.")
462-
release.rendered_python_versions = _render_python_versions(
463-
release.python_versions
464-
)
465-
466-
time.sleep(0.1) # give PYPI some breathing room
467484

468485
test_releases = [
469486
release for release in test_releases if release.python_versions

0 commit comments

Comments
 (0)