@@ -62,8 +62,21 @@ def process_workspace_config(workspace_config) -> dict[str, Any]:
6262 python_file = config .get ("python_file" )
6363 package_name = config .get ("package_name" )
6464 module_name = config .get ("module_name" )
65+ autoload_defs_module_name = config .get ("autoload_defs_module_name" )
6566 check .invariant (
66- len ([val for val in [python_file , package_name , module_name ] if val ]) == 1 ,
67+ len (
68+ [
69+ val
70+ for val in [
71+ python_file ,
72+ package_name ,
73+ module_name ,
74+ autoload_defs_module_name ,
75+ ]
76+ if val
77+ ]
78+ )
79+ == 1 ,
6780 "Must supply exactly one of a file name, a package name, or a module name" ,
6881 )
6982
@@ -73,7 +86,8 @@ def process_workspace_config(workspace_config) -> dict[str, Any]:
7386 new_location = {
7487 k : v
7588 for k , v in location .items ()
76- if k not in ("python_file" , "package_name" , "module_name" )
89+ if k
90+ not in ("python_file" , "package_name" , "module_name" , "autoload_defs_module_name" )
7791 }
7892 new_location ["code_source" ] = {}
7993 if "python_file" in location :
@@ -82,6 +96,10 @@ def process_workspace_config(workspace_config) -> dict[str, Any]:
8296 new_location ["code_source" ]["package_name" ] = location ["package_name" ]
8397 elif "module_name" in location :
8498 new_location ["code_source" ]["module_name" ] = location ["module_name" ]
99+ elif "autoload_defs_module_name" in location :
100+ new_location ["code_source" ]["autoload_defs_module_name" ] = location [
101+ "autoload_defs_module_name"
102+ ]
85103
86104 new_location ["location_name" ] = name
87105 updated_locations .append (new_location )
@@ -194,6 +212,10 @@ def process_workspace_config(workspace_config) -> dict[str, Any]:
194212 config = str ,
195213 description = "Python module containing the target Dagster repository." ,
196214 ),
215+ "autoload_defs_module_name" : Field (
216+ config = str ,
217+ description = "Python module to automatically load Dagster definitions from." ,
218+ ),
197219 },
198220 ),
199221 description = "Python entry point for the code location." ,
@@ -282,6 +304,11 @@ def process_workspace_config(workspace_config) -> dict[str, Any]:
282304 is_required = False ,
283305 description = "Python module containing the target Dagster repository." ,
284306 ),
307+ "autoload_defs_module_name" : Field (
308+ config = str ,
309+ is_required = False ,
310+ description = "Python module to automatically load Dagster definitions from." ,
311+ ),
285312}
286313LEGACY_LOCATION_CONFIG_SCHEMA = Shape (fields = LEGACY_CONFIG_SCHEMA_FIELDS )
287314LEGACY_NAMED_LOCATIONS_CONFIG_SCHEMA = Map (
0 commit comments