Socket
Socket
Sign inDemoInstall

argguard

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    argguard

Utility class to assert class arguments


Maintainers
1

Readme

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 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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc