@@ -519,7 +519,7 @@ def __iter__(self):
519519
520520def NamedTemporaryFile (mode = 'w+b' , buffering = - 1 , encoding = None ,
521521 newline = None , suffix = None , prefix = None ,
522- dir = None , delete = True ):
522+ dir = None , delete = True , * , errors = None ):
523523 """Create and return a temporary file.
524524 Arguments:
525525 'prefix', 'suffix', 'dir' -- as for mkstemp.
@@ -528,6 +528,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
528528 'encoding' -- the encoding argument to io.open (default None)
529529 'newline' -- the newline argument to io.open (default None)
530530 'delete' -- whether the file is deleted on close (default True).
531+ 'errors' -- the errors argument to io.open (default None)
531532 The file is created as mkstemp() would do it.
532533
533534 Returns an object with a file-like interface; the name of the file
@@ -547,7 +548,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
547548 (fd , name ) = _mkstemp_inner (dir , prefix , suffix , flags , output_type )
548549 try :
549550 file = _io .open (fd , mode , buffering = buffering ,
550- newline = newline , encoding = encoding )
551+ newline = newline , encoding = encoding , errors = errors )
551552
552553 return _TemporaryFileWrapper (file , name , delete )
553554 except BaseException :
@@ -568,14 +569,15 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
568569
569570 def TemporaryFile (mode = 'w+b' , buffering = - 1 , encoding = None ,
570571 newline = None , suffix = None , prefix = None ,
571- dir = None ):
572+ dir = None , * , errors = None ):
572573 """Create and return a temporary file.
573574 Arguments:
574575 'prefix', 'suffix', 'dir' -- as for mkstemp.
575576 'mode' -- the mode argument to io.open (default "w+b").
576577 'buffering' -- the buffer size argument to io.open (default -1).
577578 'encoding' -- the encoding argument to io.open (default None)
578579 'newline' -- the newline argument to io.open (default None)
580+ 'errors' -- the errors argument to io.open (default None)
579581 The file is created as mkstemp() would do it.
580582
581583 Returns an object with a file-like interface. The file has no
@@ -609,7 +611,8 @@ def TemporaryFile(mode='w+b', buffering=-1, encoding=None,
609611 else :
610612 try :
611613 return _io .open (fd , mode , buffering = buffering ,
612- newline = newline , encoding = encoding )
614+ newline = newline , encoding = encoding ,
615+ errors = errors )
613616 except :
614617 _os .close (fd )
615618 raise
@@ -619,7 +622,7 @@ def TemporaryFile(mode='w+b', buffering=-1, encoding=None,
619622 try :
620623 _os .unlink (name )
621624 return _io .open (fd , mode , buffering = buffering ,
622- newline = newline , encoding = encoding )
625+ newline = newline , encoding = encoding , errors = errors )
623626 except :
624627 _os .close (fd )
625628 raise
@@ -633,7 +636,7 @@ class SpooledTemporaryFile:
633636
634637 def __init__ (self , max_size = 0 , mode = 'w+b' , buffering = - 1 ,
635638 encoding = None , newline = None ,
636- suffix = None , prefix = None , dir = None ):
639+ suffix = None , prefix = None , dir = None , * , errors = None ):
637640 if 'b' in mode :
638641 self ._file = _io .BytesIO ()
639642 else :
@@ -646,7 +649,7 @@ def __init__(self, max_size=0, mode='w+b', buffering=-1,
646649 self ._TemporaryFileArgs = {'mode' : mode , 'buffering' : buffering ,
647650 'suffix' : suffix , 'prefix' : prefix ,
648651 'encoding' : encoding , 'newline' : newline ,
649- 'dir' : dir }
652+ 'dir' : dir , 'errors' : errors }
650653
651654 def _check (self , file ):
652655 if self ._rolled : return
@@ -692,12 +695,11 @@ def closed(self):
692695
693696 @property
694697 def encoding (self ):
695- try :
696- return self ._file .encoding
697- except AttributeError :
698- if 'b' in self ._TemporaryFileArgs ['mode' ]:
699- raise
700- return self ._TemporaryFileArgs ['encoding' ]
698+ return self ._file .encoding
699+
700+ @property
701+ def errors (self ):
702+ return self ._file .errors
701703
702704 def fileno (self ):
703705 self .rollover ()
@@ -725,12 +727,7 @@ def name(self):
725727
726728 @property
727729 def newlines (self ):
728- try :
729- return self ._file .newlines
730- except AttributeError :
731- if 'b' in self ._TemporaryFileArgs ['mode' ]:
732- raise
733- return self ._TemporaryFileArgs ['newline' ]
730+ return self ._file .newlines
734731
735732 def read (self , * args ):
736733 return self ._file .read (* args )
0 commit comments