File indexing completed on 2026-08-16 08:16:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 import argparse
0021 import sys
0022 import tomllib
0023 from pathlib import Path
0024
0025 from packaging.specifiers import SpecifierSet
0026
0027
0028
0029 PYTHON_CEILING = "3.14"
0030
0031
0032 def main() -> None:
0033 pyproject = Path(__file__).resolve().parent.parent / "pyproject.toml"
0034 with pyproject.open("rb") as f:
0035 raw = tomllib.load(f)["project"]["requires-python"]
0036 spec = SpecifierSet(raw) & SpecifierSet(f"<={PYTHON_CEILING}")
0037
0038 parser = argparse.ArgumentParser()
0039 parser.add_argument("--floor", action="store_true")
0040 parser.add_argument("--cibw", action="store_true")
0041 args = parser.parse_args()
0042
0043 all_versions = [f"3.{i}" for i in range(100)]
0044 versions = list(spec.filter(all_versions))
0045
0046 if args.floor:
0047 print(versions[0])
0048 return
0049
0050 if args.cibw:
0051 tags = ["cp" + v.replace(".", "") + "-*" for v in versions]
0052 print(" ".join(tags))
0053 return
0054
0055 parser.print_help()
0056 sys.exit(1)
0057
0058
0059 if __name__ == "__main__":
0060 main()