Skip to main content

Tool aimed at python code correction that allows to automatically find and replace function definition

Project description

pythonguts

If your project depends on some external python projects and you want to make some changes in external functions/methods and then copy/paste these changes automatically - this package may help you.

There is a tool editpy wich we will discuss.

Same tool aimed at editing cpp files is also available as cppguts

Installation

pythonguts is available at PyPI:

pip install pythonguts

The idea behind editpy tool

editpy uses astor to find replaceable functions and replaces matching functions.

To find common function editpy checks:

  • are they both functions?
  • do they both have the same name?
  • do they both have the same args?
  • do they both have the same parent (i.e. classname for example)?

Example

original function/method definition file dest.py:

class MyClass:
   def my_method(self, i: float, j: int, k: float) -> float:
       return 0


def foo(i: float) -> float:
   return i


def bar():
   return 0


# this function stays unchanged
def unchanged():
   return 0

new function/method definition file src.py:

class MyClass:
    def my_method(self, i: float, j: int, k: float) -> float:
        print('new definition')
        return 0


def foo(i: float) -> float:
    print('new definition')
    return i


def bar():
    print('new definition')
    return 0

Run:

editpy --src-file=src.py --dest-file=dest.py --oldfile-keep

--oldfile-keep (default) is used to keep the original file (it will be renamed by adding _OLD_N suffix). Otherwise use --oldfile-delete to delete the original file.

Another option is to run the test (though the test deletes all the generated files so you better take a look in /tests dir):

python -m unittest pythonguts.tests.test_pythonguts

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pythonguts-0.2.0.tar.gz (5.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page