mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-26 21:22:27 -06:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
|
import argparse
|
||
|
|
||
|
from pandac.PandaModules import *
|
||
|
|
||
|
|
||
|
parser = argparse.ArgumentParser()
|
||
|
parser.add_argument('--output', '-o', default='DCClassImports.py',
|
||
|
help='The filename of the generated Python module.')
|
||
|
parser.add_argument('filenames', nargs='+', default=['otp.dc', 'toon.dc'],
|
||
|
help='The DC class files to be included in the generated Python module.')
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
dcFile = DCFile()
|
||
|
for filename in args.filenames:
|
||
|
dcFile.read(Filename.fromOsSpecific(filename))
|
||
|
|
||
|
dcImports = {}
|
||
|
for n in xrange(dcFile.getNumImportModules()):
|
||
|
moduleName = dcFile.getImportModule(n)[:].split('/', 1)[0]
|
||
|
if moduleName not in dcImports:
|
||
|
dcImports[moduleName] = []
|
||
|
importSymbols = []
|
||
|
for i in xrange(dcFile.getNumImportSymbols(n)):
|
||
|
symbolName = dcFile.getImportSymbol(n, i).split('/', 1)[0]
|
||
|
importSymbols.append(symbolName)
|
||
|
dcImports[moduleName].extend(importSymbols)
|
||
|
|
||
|
data = '''\
|
||
|
# This file was generated by the parse_dclass.py utility.
|
||
|
from pandac.PandaModules import *
|
||
|
|
||
|
|
||
|
hashVal = %r
|
||
|
|
||
|
|
||
|
''' % dcFile.getHash()
|
||
|
|
||
|
for moduleName, importSymbols in dcImports.items():
|
||
|
data += 'from %s import %s\n' % (moduleName, ', '.join(importSymbols))
|
||
|
|
||
|
data += '''
|
||
|
|
||
|
dcImports = locals().copy()
|
||
|
'''
|
||
|
|
||
|
print 'Writing %s...' % args.output
|
||
|
with open(args.output, 'w') as f:
|
||
|
f.write(data)
|
||
|
|
||
|
print 'Done writing %s.' % args.output
|