🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

argguard

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

argguard

Utility class to assert class arguments

0.0.1
PyPI
Maintainers
1

ArgGuard Tests Actions Status

ArgGuard is a simple abstract utility class to remove some boilerplate code when asserting class arguments.

Usage

The ArgGuard class provides the protected abstract _argGuard method. This is the method where all assertions, checks and validations of the class arguments should take place. Every class that extends the ArgGuard class needs to implement this method.

A second central method is _assert_args which stores the provided arguments and calls _argGuard. This method should be called as soon as possible in the constructor of the class to be guarded.

API

MethodArgsDescription
_arg_guardselfAbstract method where all assertions should take pace
_assert_argsself, argsStores the provided arguments and calls _argGuard
_get_argsself, *requested_argsRetrieves all requested arguments
_get_required_argsself, *requested_argsRetrieves all requested arguments and fails if they are missing

Example

# Without ArgGuard
class A:
    def __init__(self, a, b, c=0):
        assert (
            'a' in self.__args
        ), 'Required argument "a" is missing'

        assert (
            'b' in self.__args
        ), 'Required argument "b" is missing'

        assert (
            a % b == 0
        ), 'a ({}) must be divisible by b ({})'.format(a, b)

        self.state = a // b + c

# With ArgGuard
class A(ArgGuard):
    def __init__(self, a, b, c=0):
        self._assert_args(locals())
        self.state = a // b + c

    def _arg_guard(self):
        # If a required argument is missing, an error is thrown
        a, b = self._get_required_args('a', 'b')

        assert (
            a % b == 0
        ), 'a ({}) must be divisible by b ({})'.format(a, b)

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts