@@ -77,7 +77,7 @@ def _get_default_invalidation_mode():
7777
7878
7979def compile (file , cfile = None , dfile = None , doraise = False , optimize = - 1 ,
80- invalidation_mode = None ):
80+ invalidation_mode = None , quiet = 0 ):
8181 """Byte-compile one Python source file to Python bytecode.
8282
8383 :param file: The source file name.
@@ -95,6 +95,8 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1,
9595 are -1, 0, 1 and 2. A value of -1 means to use the optimization
9696 level of the current interpreter, as given by -O command line options.
9797 :param invalidation_mode:
98+ :param quiet: Return full output with False or 0, errors only with 1,
99+ and no output with 2.
98100
99101 :return: Path to the resulting byte compiled file.
100102
@@ -143,11 +145,12 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1,
143145 _optimize = optimize )
144146 except Exception as err :
145147 py_exc = PyCompileError (err .__class__ , err , dfile or file )
146- if doraise :
147- raise py_exc
148- else :
149- sys .stderr .write (py_exc .msg + '\n ' )
150- return
148+ if quiet < 2 :
149+ if doraise :
150+ raise py_exc
151+ else :
152+ sys .stderr .write (py_exc .msg + '\n ' )
153+ return
151154 try :
152155 dirname = os .path .dirname (cfile )
153156 if dirname :
@@ -194,18 +197,21 @@ def main(args=None):
194197 compile (filename , doraise = True )
195198 except PyCompileError as error :
196199 rv = 1
197- sys .stderr .write ("%s\n " % error .msg )
200+ if quiet < 2 :
201+ sys .stderr .write ("%s\n " % error .msg )
198202 except OSError as error :
199203 rv = 1
200- sys .stderr .write ("%s\n " % error )
204+ if quiet < 2 :
205+ sys .stderr .write ("%s\n " % error )
201206 else :
202207 for filename in args :
203208 try :
204209 compile (filename , doraise = True )
205210 except PyCompileError as error :
206211 # return value to indicate at least one failure
207212 rv = 1
208- sys .stderr .write ("%s\n " % error .msg )
213+ if quiet < 2 :
214+ sys .stderr .write ("%s\n " % error .msg )
209215 return rv
210216
211217if __name__ == "__main__" :
0 commit comments