diff options
Diffstat (limited to 'fixes/typeobject.py')
| -rw-r--r-- | fixes/typeobject.py | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/fixes/typeobject.py b/fixes/typeobject.py deleted file mode 100644 index dde1f74..0000000 --- a/fixes/typeobject.py +++ /dev/null @@ -1,77 +0,0 @@ -import sys -import re - -# I wasn't able to express this refactoring in SmPLs; the implied comma embedded -# in the _HEAD_INIT macros seems to be too much for spatch to reasonably deal -# with. - -# So I expressed this one as a regex. - -# Whitespace patterns: -req_ws = r'\s+' -opt_ws = r'\s*' -c_identifier = r'([_A-Za-z][_0-9A-Za-z]*)' - -pat = ('.*' + r'PyTypeObject' + req_ws - + c_identifier + opt_ws - + r'=' + opt_ws + r'\{' + opt_ws - + r'(PyObject_HEAD_INIT\((.*)\)' + opt_ws - + r'([0-9]+)' + opt_ws + r',).*' - ) - -def fixup_typeobject_initializers(content): - while True: - m = re.match(pat, content, re.DOTALL) - if m: - if False: - print m.groups() - print m.group(2) - print m.group(3) - print m.group(4) - print m.span(2) - content = (content[:m.start(2)] - + 'PyVarObject_HEAD_INIT(%s, %s)' % (m.group(3),m.group(4)) - + content[m.end(2):]) - else: - return content - -from fixes import Fix, FixTest -class FixTypeobjectInitializers(Fix): - def transform(self, string): - return fixup_typeobject_initializers(string) - -import unittest -class TestFixups(FixTest): - def setUp(self): - self.fixer = FixTypeobjectInitializers() - - def test_fixups(self): - self.assertTransformsTo(self.fixer, - ''' -PyTypeObject DBusPyIntBase_Type = { - PyObject_HEAD_INIT(DEFERRED_ADDRESS(&PyType_Type)) - 0, - "_dbus_bindings._IntBase", -''', - ''' -PyTypeObject DBusPyIntBase_Type = { - PyVarObject_HEAD_INIT(DEFERRED_ADDRESS(&PyType_Type), 0) - "_dbus_bindings._IntBase", -''') - - def test_fixup_with_comment(self): - self.assertTransformsTo(self.fixer, - ''' -PyTypeObject PyFortran_Type = { - PyObject_HEAD_INIT(0) - 0, /*ob_size*/ - "fortran", /*tp_name*/ -''', - ''' -PyTypeObject PyFortran_Type = { - PyVarObject_HEAD_INIT(0, 0) /*ob_size*/ - "fortran", /*tp_name*/ -''') - -if __name__ == '__main__': - unittest.main() |
