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

Uploaded Source

File details

Details for the file pythonguts-0.2.0.tar.gz.

File metadata

  • Download URL: pythonguts-0.2.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.7

File hashes

Hashes for pythonguts-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4259427a669fe14b16e7a0be7e17650f32e25dfa985dca6a588210308dc538a7
MD5 e0df3b4135d82c0b12aec30342434307
BLAKE2b-256 f5b7073059df1592350b01aef50866d97821c5c803023b3462909edb12bb0e88

See more details on using hashes here.

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