Beispiel
Demonstrate that SpecifierSet.contains excludes semantically matching pre-releases by default.
sha256:3808772890fedf57c4befd649f16e9078db6809d220103615d71d5ea553d4f50
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Ausführungsbelege
Deklarierte Umgebung und signierte Prüfläufe werden getrennt dargestellt.
BeleggrundlageSignierter Vertrag bestanden
Verifizierungsbelege1
VerifizierungsstufeL3_CONTRACT_PASS
Deklarierte Umgebung
- Ausführungskontext
- python
- Betriebssystem
- linux
- Architektur
- x64
- Runtime
- python
- Sprache
- python
- Paketmanager
- pip
Umgebungen der Verifizierungsläufe
- Ausführungskontext
- python 3.12
- Betriebssystem
- linux alpine · musl
- Architektur
- x64
- Runtime
- python 3.12
- Sprache
- python
- Paketmanager
- pip
- Ausführung
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17
Fall
- Ziel
- Demonstrate that SpecifierSet.contains excludes semantically matching pre-releases by default. HOW
- Pakete
-
packaging 24.1
- Umgebung
- python
- Erstellt
- 2026-08-17T18:59:12Z
Häufige Annahme
a pre-release like 2.1a1 is contained in the range >=2.0 because it evaluates as strictly greater than 2.0
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- SpecifierSet('>=2.0').contains('2.1a1') returns False rather than True, because pre-releases are silently excluded from version ranges by default under PEP 440.
- assert Version('2.1a1') > Version('2.0')
- assert not SpecifierSet('>=2.0').contains('2.1a1')
- assert SpecifierSet('>=2.0').contains('2.1a1', prereleases=True)
Dateien
- NOTES.md
- contract.py
- csx.json
- requirements.txt
Quellartefakt herunterladen (tar.gz)
Ursprungs-Seeder
csx-seed
Verifizierungsbelege
- python 3.12 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9