Skip to content

Rishabh672003/pyfix-imports

Repository files navigation

PyFix-Imports

WIP Python library which fixes missing imports, It automatically fixes missing imports by importing them I mostly wrote this to learn more about python, and wanted to make something with.

recording_2024-06-25-175756.mp4

Installation

Just run pip install pyfix-imports

Usage

pyfix-imports <FILEPATH> # returns the fixed code to the stdout
pyfix-imports -f <FILEPATH> # Writes the fixed code to the file
pyfix-imports -c <CONFIGPATH> <FILEPATH> # uses the config file

I recommend after running the program use isort or ruff to sort the imports.

Configuration

The default configuration file should be placed in $XDG_CONFIG_HOME/pyfix-imports/config.toml or you can place your config file anywhere and just provide the path to the command fix-imports -c <Path> the structure should be like this, don't forget to include [config] on the top

[config]
"tf" = "import tensorflow as tf"
"plt" = "import matplotlib.pyplot as plt"
"isprime" = "from sympy import isprime"

How I use it

As they say necessity is the mother of invention, also python language server like, pyright and pylsp don't do that good of a job, that gave me the motivation to made this. I use this with the conjunction of black and isort within my neovim with conform.nvim you can also use it just put this in your conform setup

require("conform").setup({
    formatters_by_ft = {
    python = { "pyfix_imports", "ruff_fix", "ruff_organize_imports", "ruff_format", },
    formatters = {
        pyfix_imports = {
            command = "pyfix-imports",
            args = { "$FILENAME" },
            cwd = require("conform.util").root_file({ "requirements.txt", "pyproject.toml" }),
        },
    }
})

References

I took many projects for reference/code

  • autoimport I could have just used this, but I wanted to make something so took it as a reference and made this. I didn't took that much code from it, but yes as someone who has never made a decent size python project it was really helpful
  • autoflake I wanted to use pyflakes to get the errors in code, and this one had great implementation of pyflake api.
  • pyflakes Used this to get all the errors for undefined names.
  • click Used this to make the command-line interface
  • pdm Used this to structure and manage dependency for the project
  • xdg-base-dirs Used this to get the config file

About

Simple python program to fix your missing imports

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published