Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pystrict

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pystrict

## strict

  • 1.3
  • PyPI
  • Socket score

Maintainers
2

Build Status

strict

Python strict tag

pip install pystrict

Using @strict on classes can prevent serious errors by raising an exception when an instance has a variable created outside of init. Unfortunately, linters don't (cannot) always catch this. I can't express how much time this has saved me recently.

Using @strict on functions only checks type specifiers.

Example:

from pystrict import strict

# not allowed, missing type specifier
@strict
def foo(x: int, y):
    ...


# not allowed, missing type specifier in __init__
@strict
class Foo():
    def __init__(self, x: int, y):
        ...

# not allowed, object modified outside of init
@strict
class Foo():
    def __init__(self, x: int):
        self.x = 1

# mypy and pytest won't check this
def evil():
    return list({'a':Foo(1)}.values())

z = evil()
z[0].y = 4

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc