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

auto-typing-final

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

auto-typing-final

Automagically set typing.Final inside your functions

  • 0.7.2
  • PyPI
  • Socket score

Maintainers
1

auto-typing-final

Auto-fixer for Python code that adds typing.Final annotation to variable assignments inside functions that are not reassigned, and removes the annotation from variables that are mutated.

 def foo() -> None:
-    a = 2
+    a: typing.Final = 2

-    b: typing.Final = 2
+    b = 2
     b = 3

Basically, this, but handles different operations (like usage of nonlocal, augmented assignments: +=, etc) as well.

  • Keeps mypy happy.
  • Ignores global variables to avoid confusion with the type aliases like Fruit = Apple | Banana.
  • Ignores class variables: it is common to use typing.ClassVar instead of typing.Final.
  • Adds global import if it's not imported yet.
  • Inspects one file at a time.

How To Use

Having uv installed:

uvx auto-typing-final .

or:

pipx run auto-typing-final .

Options

You can specify --check flag to check the files instead of actually fixing them:

auto-typing-final . --check

Also, you can choose import style from two options: typing-final (default) and final:

auto-typing-final . --import-style typing-final
  • typing-final enforces import typing and typing.Final,
  • final enforces from typing import Final and Final.

VS Code Extension

image

The extension uses LSP server bundled with the CLI. To get started, add auto-typing-final to your project:

uv add auto-typing-final --dev

or:

poetry add auto-typing-final --group=dev

After that, install the extension: https://marketplace.visualstudio.com/items?itemName=vrslev.auto-typing-final. In Python environments that have auto-typing-final installed, extension will be activated automatically.

Import style can be configured in settings: "auto-typing-final.import-style": "typing-final" or "auto-typing-final.import-style": "final".

Library code of currently activated environment will be ignored (for example, .venv/bin/python is active interpreter, all code inside .venv will be ignored).

Keywords

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