summaryrefslogtreecommitdiffstats
path: root/fixes/typeobject.py
diff options
context:
space:
mode:
Diffstat (limited to 'fixes/typeobject.py')
-rw-r--r--fixes/typeobject.py77
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()