aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2010-12-03 20:14:31 +0000
committerMartin v. Löwis <martin@v.loewis.de>2010-12-03 20:14:31 +0000
commit4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9 (patch)
treec8f1fef715f8d158e58f17cab14af65455de1d77 /Objects/typeslots.py
parentIssue #10272: The ssl module now raises socket.timeout instead of a generic (diff)
downloadcpython-4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9.tar.gz
cpython-4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9.tar.bz2
cpython-4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9.zip
Merge branches/pep-0384.
Diffstat (limited to 'Objects/typeslots.py')
-rw-r--r--Objects/typeslots.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Objects/typeslots.py b/Objects/typeslots.py
new file mode 100644
index 00000000000..bcc3196bdfe
--- /dev/null
+++ b/Objects/typeslots.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+# Usage: typeslots.py < Include/typeslots.h > typeslots.inc
+
+import sys, re
+
+res = {}
+for line in sys.stdin:
+ m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
+ member = m.group(1)
+ if member.startswith("tp_"):
+ member = "ht_type."+member
+ elif member.startswith("nb_"):
+ member = "as_number."+member
+ elif member.startswith("mp_"):
+ member = "as_mapping."+member
+ elif member.startswith("sq_"):
+ member = "as_sequence."+member
+ elif member.startswith("bf_"):
+ member = "as_buffer."+member
+ res[int(m.group(2))] = member
+
+M = max(res.keys())+1
+for i in range(1,M):
+ print "offsetof(PyHeapTypeObject, %s)," % res[i]