Design¶
It’s important that Bulwark
not get in your way. Your task is hard
enough without a bunch of assertions cluttering up the logic of the
code. And yet, it does help to explicitly state the assumptions
fundamental to your analysis. Decorators provide a nice compromise.
Checks¶
Each check:
- takes a pd.DataFrame as its first argument, with optional additional arguments,
- make an assert about the pd.DataFrame, and
- return the original, unaltered pd.DataFrame
If the assertion fails, an AssertionError
is raised and Bulwark
tries to print out some informative information about where the failure
occurred.
Decorators¶
Each check
has an auto-magically-generated associated decorator. The
decorator simply marshals arguments, allowing you to make your
assertions outside the actual logic of your code. Besides making it
quick and easy to add checks to a function, decorators also come with
bonus capabilities, including the ability to enable/disable the check as
well as switch from raising an error to logging a warning.