Package pyplusplus :: Package file_writers :: Module single_file

Source Code for Module pyplusplus.file_writers.single_file

 1  # Copyright 2004-2008 Roman Yakovenko. 
 2  # Distributed under the Boost Software License, Version 1.0. (See 
 3  # accompanying file LICENSE_1_0.txt or copy at 
 4  # http://www.boost.org/LICENSE_1_0.txt) 
 5   
 6  """defines a class that writes L{code_creators.module_t} to single file""" 
 7   
 8  import os 
 9  import writer 
10 11 -class single_file_t(writer.writer_t):
12 """generates all code into single cpp file""" 13
14 - def __init__(self, extmodule, file_name, encoding='ascii'):
17 18 @property
19 - def file_name(self):
20 return self.__fname
21
22 - def write(self):
23 target_dir = os.path.dirname( self.file_name ) 24 if not target_dir: 25 target_dir = os.getcwd() 26 if not os.path.exists( target_dir ): 27 os.makedirs( target_dir ) 28 headers = self.get_user_headers( [self.extmodule] ) 29 map( lambda header: self.extmodule.add_include( header ) 30 , headers ) 31 self.write_code_repository( target_dir ) 32 self.write_file( self.file_name, self.extmodule.create(), encoding=self.encoding ) 33 self.save_exposed_decls_db( target_dir )
34