annotate Objects/typeslots.py @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 020da9b87daa
children f3553d5083f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66664
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1 #!/usr/bin/python
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2 # Usage: typeslots.py < Include/typeslots.h > typeslots.inc
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4 import sys, re
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5
66677
56eed8f407bf Add Revision keyword.
Martin v. Löwis <martin@v.loewis.de>
parents: 66675
diff changeset
6 print("/* Generated by typeslots.py $Revision$ */")
66664
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7 res = {}
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
8 for line in sys.stdin:
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
9 m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
67420
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
10 if not m:
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
11 continue
66664
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
12 member = m.group(1)
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
13 if member.startswith("tp_"):
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
14 member = "ht_type."+member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
15 elif member.startswith("nb_"):
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16 member = "as_number."+member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
17 elif member.startswith("mp_"):
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
18 member = "as_mapping."+member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
19 elif member.startswith("sq_"):
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
20 member = "as_sequence."+member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
21 elif member.startswith("bf_"):
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22 member = "as_buffer."+member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
23 res[int(m.group(2))] = member
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
24
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
25 M = max(res.keys())+1
62b61abd02b8 Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
26 for i in range(1,M):
67420
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
27 if i in res:
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
28 print("offsetof(PyHeapTypeObject, %s)," % res[i])
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
29 else:
020da9b87daa Support comment lines and missing indices in typeslots.h.
Martin v. Löwis <martin@v.loewis.de>
parents: 66677
diff changeset
30 print("0,")