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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4259427a669fe14b16e7a0be7e17650f32e25dfa985dca6a588210308dc538a7 |
|
MD5 | e0df3b4135d82c0b12aec30342434307 |
|
BLAKE2b-256 | f5b7073059df1592350b01aef50866d97821c5c803023b3462909edb12bb0e88 |