@@ -334,7 +334,8 @@ class PromptSession(Generic[_T]):
334
334
'validate_while_typing' , 'complete_style' , 'mouse_support' ,
335
335
'auto_suggest' , 'clipboard' , 'validator' , 'refresh_interval' ,
336
336
'input_processors' , 'enable_system_prompt' , 'enable_suspend' ,
337
- 'enable_open_in_editor' , 'reserve_space_for_menu' , 'tempfile_suffix' )
337
+ 'enable_open_in_editor' , 'reserve_space_for_menu' , 'tempfile_suffix' ,
338
+ 'tempfile' )
338
339
339
340
def __init__ (
340
341
self ,
@@ -373,7 +374,8 @@ def __init__(
373
374
input_processors : Optional [List [Processor ]] = None ,
374
375
key_bindings : Optional [KeyBindingsBase ] = None ,
375
376
erase_when_done : bool = False ,
376
- tempfile_suffix : str = '.txt' ,
377
+ tempfile_suffix : Optional [Union [str , Callable [[], str ]]] = '.txt' ,
378
+ tempfile : Optional [Union [str , Callable [[], str ]]] = None ,
377
379
378
380
refresh_interval : float = 0 ,
379
381
@@ -425,6 +427,7 @@ def __init__(
425
427
self .enable_open_in_editor = enable_open_in_editor
426
428
self .reserve_space_for_menu = reserve_space_for_menu
427
429
self .tempfile_suffix = tempfile_suffix
430
+ self .tempfile = tempfile
428
431
429
432
# Create buffers, layout and Application.
430
433
self .history = history
@@ -480,7 +483,8 @@ def accept(buff: Buffer) -> bool:
480
483
history = self .history ,
481
484
auto_suggest = DynamicAutoSuggest (lambda : self .auto_suggest ),
482
485
accept_handler = accept ,
483
- tempfile_suffix = lambda : self .tempfile_suffix )
486
+ tempfile_suffix = lambda : self .tempfile_suffix ,
487
+ tempfile = lambda : self .tempfile )
484
488
485
489
def _create_search_buffer (self ) -> Buffer :
486
490
return Buffer (name = SEARCH_BUFFER )
@@ -795,7 +799,8 @@ def prompt(
795
799
enable_system_prompt : Optional [FilterOrBool ] = None ,
796
800
enable_suspend : Optional [FilterOrBool ] = None ,
797
801
enable_open_in_editor : Optional [FilterOrBool ] = None ,
798
- tempfile_suffix : Optional [str ] = None ,
802
+ tempfile_suffix : Optional [Union [str , Callable [[], str ]]] = None ,
803
+ tempfile : Optional [Union [str , Callable [[], str ]]] = None ,
799
804
800
805
# Following arguments are specific to the current `prompt()` call.
801
806
default : Union [str , Document ] = '' ,
@@ -910,6 +915,8 @@ class itself. For these, passing in ``None`` will keep the current
910
915
self .enable_open_in_editor = enable_open_in_editor
911
916
if tempfile_suffix is not None :
912
917
self .tempfile_suffix = tempfile_suffix
918
+ if tempfile is not None :
919
+ self .tempfile = tempfile
913
920
914
921
self ._add_pre_run_callables (pre_run , accept_default )
915
922
self .default_buffer .reset (default if isinstance (default , Document ) else Document (default ))
@@ -958,7 +965,8 @@ async def prompt_async(
958
965
enable_system_prompt : Optional [FilterOrBool ] = None ,
959
966
enable_suspend : Optional [FilterOrBool ] = None ,
960
967
enable_open_in_editor : Optional [FilterOrBool ] = None ,
961
- tempfile_suffix : Optional [str ] = None ,
968
+ tempfile_suffix : Optional [Union [str , Callable [[], str ]]] = None ,
969
+ tempfile : Optional [Union [str , Callable [[], str ]]] = None ,
962
970
963
971
# Following arguments are specific to the current `prompt()` call.
964
972
default : Union [str , Document ] = '' ,
@@ -1033,6 +1041,8 @@ async def prompt_async(
1033
1041
self .enable_open_in_editor = enable_open_in_editor
1034
1042
if tempfile_suffix is not None :
1035
1043
self .tempfile_suffix = tempfile_suffix
1044
+ if tempfile is not None :
1045
+ self .tempfile = tempfile
1036
1046
1037
1047
self ._add_pre_run_callables (pre_run , accept_default )
1038
1048
self .default_buffer .reset (default if isinstance (default , Document ) else Document (default ))
@@ -1207,7 +1217,8 @@ def prompt(
1207
1217
enable_system_prompt : Optional [FilterOrBool ] = None ,
1208
1218
enable_suspend : Optional [FilterOrBool ] = None ,
1209
1219
enable_open_in_editor : Optional [FilterOrBool ] = None ,
1210
- tempfile_suffix : Optional [str ] = None ,
1220
+ tempfile_suffix : Optional [Union [str , Callable [[], str ]]] = None ,
1221
+ tempfile : Optional [Union [str , Callable [[], str ]]] = None ,
1211
1222
1212
1223
# Following arguments are specific to the current `prompt()` call.
1213
1224
default : str = '' ,
@@ -1255,6 +1266,7 @@ def prompt(
1255
1266
enable_suspend = enable_suspend ,
1256
1267
enable_open_in_editor = enable_open_in_editor ,
1257
1268
tempfile_suffix = tempfile_suffix ,
1269
+ tempfile = tempfile ,
1258
1270
default = default ,
1259
1271
accept_default = accept_default ,
1260
1272
pre_run = pre_run )
0 commit comments