@@ -1672,14 +1672,22 @@ def _add_argparse_args(cls, parser):
16721672 choices = ['cloudpickle' , 'default' , 'dill' , 'dill_unsafe' ])
16731673 parser .add_argument (
16741674 '--save_main_session' ,
1675- default = False ,
1675+ default = None ,
16761676 action = 'store_true' ,
16771677 help = (
16781678 'Save the main session state so that pickled functions and classes '
16791679 'defined in __main__ (e.g. interactive session) can be unpickled. '
16801680 'Some workflows do not need the session state if for instance all '
16811681 'their functions/classes are defined in proper modules '
16821682 '(not __main__) and the modules are importable in the worker. ' ))
1683+ parser .add_argument (
1684+ '--disable_save_main_session' ,
1685+ action = 'store_false' ,
1686+ dest = 'save_main_session' ,
1687+ help = (
1688+ 'Disable saving the main session state. It is enabled/disabled by'
1689+ 'default for cloudpickle/dill pickler. See "save_main_session".' ))
1690+
16831691 parser .add_argument (
16841692 '--sdk_location' ,
16851693 default = 'default' ,
@@ -1780,10 +1788,23 @@ def _add_argparse_args(cls, parser):
17801788 'If not specified, the default Maven Central repository will be '
17811789 'used.' ))
17821790
1791+ def _handle_load_main_session (self , validator ):
1792+ save_main_session = getattr (self , 'save_main_session' )
1793+ if save_main_session is None :
1794+ # save_main_session default to False for dill, while default to true
1795+ # for cloudpickle
1796+ pickle_library = getattr (self , 'pickle_library' )
1797+ if pickle_library in ['default' , 'cloudpickle' ]:
1798+ setattr (self , 'save_main_session' , True )
1799+ else :
1800+ setattr (self , 'save_main_session' , False )
1801+ return []
1802+
17831803 def validate (self , validator ):
17841804 errors = []
17851805 errors .extend (validator .validate_container_prebuilding_options (self ))
17861806 errors .extend (validator .validate_pickle_library (self ))
1807+ errors .extend (self ._handle_load_main_session (validator ))
17871808 return errors
17881809
17891810
0 commit comments