mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	requires them. Disable executable bits and shebang lines in test and benchmark files in order to prevent using a random system python, and in source files of modules which don't provide command line interface. Fixed shebang line to use python3 executable in the unittestgui script.
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			821 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			821 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/python
 | 
						|
# 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("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])
 | 
						|
    else:
 | 
						|
        print("0,")
 |