PyStive : AsStive Python Design by Contract (DBC) Toolkit
PySertive ist eine Python -Bibliothek, die Dekorateure für die Implementierung von Design -Design -Prinzipien (DBC) bietet. Es vereinfacht die Durchsetzung von Voraussetzungen, Nach- und Invarianten in Ihrem Code. PySertive zielt darauf ab, ein leistungsstarkes Instrument zur Gewährleistung von Codeverhalten und -beschränkungen zu sein, die sichere, wartbare und robuste Softwareentwicklung in Python fördern.
Die Dinge, die PyStive gut machen:
PySertive ist mit Blick auf Einfachheit und Flexibilität konzipiert, sodass Sie problemlos strenge Vertragsüberprüfungen in Ihren Python -Code integrieren können, was beim Debuggen und Wartung komplexer Systeme hilft.
Um pyStive zu installieren, verwenden Sie einfach PIP:
pip install pysertiveHier erfahren Sie, wie Sie schnell mit PySertive beginnen können:
from pysertive import pre_condition , post_condition , invariant
@ pre_condition ( lambda x : x > 0 , exception_type = ValueError , message = "Input must be positive" )
def sqrt ( x ):
return x ** 0.5
@ post_condition ( lambda result : result != None , exception_type = AssertionError , message = "Result cannot be None" )
def fetch_data ():
return { "data" : "Here is your data" }
@ invariant ( lambda self : self . balance >= 0 , exception_type = RuntimeError , message = "Insufficient funds" )
class BankAccount :
def __init__ ( self , balance ):
self . balance = balance
def deposit ( self , amount ):
self . balance += amount
def withdraw ( self , amount ):
self . balance -= amount # No need to manually check for negative balance Stellen Sie sicher, dass die Eingaben zu Ihren Funktionen gültig sind:
@ pre_condition ( lambda age : age >= 18 , exception_type = ValueError , message = "Must be 18 or older" )
def sign_contract ( age ):
print ( f"Contract signed by individual aged { age } " )Validieren Sie Ausgänge, nachdem Ihre Funktionen ausgeführt wurden:
@ post_condition ( lambda result : result > 0 , exception_type = AssertionError , message = "Profit must be positive" )
def calculate_profit ( revenue , costs ):
return revenue - costsDurchsetzung der Klassenzustände bleiben konsistent:
@ invariant ( lambda self : self . inventory_count >= 0 , exception_type = RuntimeError , message = "Inventory count cannot be negative" )
class Warehouse :
def __init__ ( self , inventory_count ):
self . inventory_count = inventory_count
def add_stock ( self , number ):
self . inventory_count += number
def remove_stock ( self , number ):
self . inventory_count -= number Weitere detailliertere Beispiele für die Verwendung von PyStive finden Sie in der PY -Datei examples.py im Repository. Diese Datei enthält Beispiele für die Verwendung von Voraussetzungen, Postkononditionen und Invarianten in Ihrem Python -Code.
Beiträge sind willkommen! Wenn Sie einen Beitrag leisten möchten, lesen Sie bitte den beitragenden Leitfaden und öffnen Sie eine Ausgabe oder eine Pull -Anfrage.
PyStive wird unter der MIT -Lizenz veröffentlicht. Weitere Informationen finden Sie in der Lizenzdatei.
Gehen Sie nach oben