summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorXavier de Gaye <xdegaye@users.sourceforge.net>2016-07-26 10:48:08 (GMT)
committerXavier de Gaye <xdegaye@users.sourceforge.net>2016-07-26 10:48:08 (GMT)
commitfd0d5939bd7dd36ad84fb4c14c84f4386295da9d (patch)
tree0e496d505c2e2139390967795d5e880a6014775f /Objects
parent254da19d0ea80faf9671d78b092eb14622510c1a (diff)
downloadcpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.zip
cpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.tar.gz
cpython-fd0d5939bd7dd36ad84fb4c14c84f4386295da9d.tar.bz2
Issue #26662: Set PYTHON_FOR_GEN in configure
as the Python program to be used for file generation during the build.
Diffstat (limited to 'Objects')
-rwxr-xr-xObjects/typeslots.py63
1 files changed, 37 insertions, 26 deletions
diff --git a/Objects/typeslots.py b/Objects/typeslots.py
index ba37c40..9b6d4ad 100755
--- a/Objects/typeslots.py
+++ b/Objects/typeslots.py
@@ -1,32 +1,43 @@
#!/usr/bin/python
-# Usage: typeslots.py < Include/typeslots.h > typeslots.inc
+# Usage: typeslots.py < Include/typeslots.h typeslots.inc
import sys, re
-print("/* Generated by typeslots.py */")
-res = {}
-for line in sys.stdin:
- m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
- if not m:
- continue
- member = m.group(1)
- if member.startswith("tp_"):
- member = "ht_type."+member
- elif member.startswith("am_"):
- member = "as_async."+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
+def generate_typeslots(out=sys.stdout):
+ out.write("/* Generated by typeslots.py */\n")
+ res = {}
+ for line in sys.stdin:
+ m = re.match("#define Py_([a-z_]+) ([0-9]+)", line)
+ if not m:
+ continue
+ member = m.group(1)
+ if member.startswith("tp_"):
+ member = "ht_type."+member
+ elif member.startswith("am_"):
+ member = "as_async."+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):
- if i in res:
- print("offsetof(PyHeapTypeObject, %s)," % res[i])
+ M = max(res.keys())+1
+ for i in range(1,M):
+ if i in res:
+ out.write("offsetof(PyHeapTypeObject, %s),\n" % res[i])
+ else:
+ out.write("0,\n")
+
+def main():
+ if len(sys.argv) == 2:
+ with open(sys.argv[1], "w") as f:
+ generate_typeslots(f)
else:
- print("0,")
+ generate_typeslots()
+
+if __name__ == "__main__":
+ main()