UPDATE: This woks fine for updating the source to Shapefiles but not for SDE feature classes!
I am trying to use replaceDataSource by iterating through multiple map documents. My script updates the first map document but always fails on the second. So if I have map1.mxd, map2.mxd and map3.mxd it updates dataSources in map1 and fails on map2. Even if I put map2 through first (map1 2nd and map3 3rd) it will still fail on the 2nd iteration, so map1 fails in this instance.
I am updating the source to SDE. The input csv is the output from another script that gets unique broken datasources. I then add a second column that matches the broken datasource to a new one
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">,</SPAN> csv<SPAN class="punctuation token">,</SPAN> os
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>mapping <SPAN class="keyword token">as</SPAN> m
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">updateDataSource</SPAN><SPAN class="punctuation token">(</SPAN>datapath<SPAN class="punctuation token">,</SPAN> broken_lyr<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> datapath<SPAN class="punctuation token">.</SPAN>endswith<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".shp"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
workspace_path <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
workspace_type <SPAN class="operator token">=</SPAN> <SPAN class="string token">"SHAPEFILE_WORKSPACE"</SPAN>
dataset_name <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">4</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">elif</SPAN> datapath<SPAN class="punctuation token">.</SPAN>find<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".sde"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">!=</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">:</SPAN>
workspace_path <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".sde"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">".sde"</SPAN>
workspace_type <SPAN class="operator token">=</SPAN> <SPAN class="string token">"SDE_WORKSPACE"</SPAN>
dataset_name <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">elif</SPAN> datapath<SPAN class="punctuation token">.</SPAN>find<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".gdb"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">!=</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">:</SPAN>
workspace_path <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".gdb"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">".gdb"</SPAN>
workspace_type <SPAN class="operator token">=</SPAN> <SPAN class="string token">"FILEGDB_WORKSPACE"</SPAN>
dataset_name <SPAN class="operator token">=</SPAN> datapath<SPAN class="punctuation token">.</SPAN>rsplit<SPAN class="punctuation token">(</SPAN><SPAN class="string token">".gdb\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"\n"</SPAN>
<SPAN class="keyword token">print</SPAN> workspace_path
<SPAN class="keyword token">print</SPAN> workspace_type
<SPAN class="keyword token">print</SPAN> dataset_name
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"\n"</SPAN>
<SPAN class="keyword token">if</SPAN> workspace_path<SPAN class="punctuation token">:</SPAN>
broken_lyr<SPAN class="punctuation token">.</SPAN>replaceDataSource<SPAN class="punctuation token">(</SPAN>workspace_path<SPAN class="punctuation token">,</SPAN> workspace_type<SPAN class="punctuation token">,</SPAN> dataset_name<SPAN class="punctuation token">,</SPAN> <SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"Failed for {0} \n workspace is not FILEGDB, SDE, or SHAPEFILE"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>broken_lyr<SPAN class="punctuation token">.</SPAN>name<SPAN class="punctuation token">)</SPAN>
input_csv <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"C:\Users\glen.bambrick\Documents\csv\broken_links_20180523.csv"</SPAN>
input_folder <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"C:\Users\glen.bambrick\Documents\mxd"</SPAN>
broken_dict <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN>
broken_mxd_list <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>input_csv<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'rb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> read_csv<SPAN class="punctuation token">:</SPAN>
reader <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>reader<SPAN class="punctuation token">(</SPAN>read_csv<SPAN class="punctuation token">)</SPAN>
next<SPAN class="punctuation token">(</SPAN>reader<SPAN class="punctuation token">,</SPAN> None<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> reader<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> row<SPAN class="punctuation token">:</SPAN>
broken_dict<SPAN class="punctuation token">[</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN>
broken_mxd_list<SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
mxd_set <SPAN class="operator token">=</SPAN> set<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> value <SPAN class="keyword token">in</SPAN> broken_mxd_list<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> item <SPAN class="keyword token">in</SPAN> value<SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">", "</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
mxd_set<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{0}\\{1}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>input_folder<SPAN class="punctuation token">,</SPAN> item<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> key<SPAN class="punctuation token">,</SPAN> value <SPAN class="keyword token">in</SPAN> broken_dict<SPAN class="punctuation token">.</SPAN>iteritems<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> key<SPAN class="punctuation token">,</SPAN> value
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"\n"</SPAN>
<SPAN class="keyword token">print</SPAN> mxd_set
<SPAN class="keyword token">for</SPAN> mapdoc <SPAN class="keyword token">in</SPAN> mxd_set<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"\n"</SPAN>
<SPAN class="keyword token">print</SPAN> mapdoc
mxd <SPAN class="operator token">=</SPAN> m<SPAN class="punctuation token">.</SPAN>MapDocument<SPAN class="punctuation token">(</SPAN>mapdoc<SPAN class="punctuation token">)</SPAN>
list_broken <SPAN class="operator token">=</SPAN> m<SPAN class="punctuation token">.</SPAN>ListBrokenDataSources<SPAN class="punctuation token">(</SPAN>mxd<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>list_broken<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">continue</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> broken <SPAN class="keyword token">in</SPAN> list_broken<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> broken<SPAN class="punctuation token">.</SPAN>supports<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"DATASOURCE"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">and</SPAN> broken_dict<SPAN class="punctuation token">[</SPAN>broken<SPAN class="punctuation token">.</SPAN>dataSource<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"Updating: {0}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>broken<SPAN class="punctuation token">.</SPAN>dataSource<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"\tTo: {0}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>broken_dict<SPAN class="punctuation token">[</SPAN>broken<SPAN class="punctuation token">.</SPAN>dataSource<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
updateDataSource<SPAN class="punctuation token">(</SPAN>broken_dict<SPAN class="punctuation token">[</SPAN>broken<SPAN class="punctuation token">.</SPAN>dataSource<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> broken<SPAN class="punctuation token">)</SPAN>
mxd<SPAN class="punctuation token">.</SPAN>save<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">del</SPAN> mxd
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>The output and the error. As you can see the same parameters are going in but it always fails on the first replaceDataSource() of the second iteration no matter what map document it is. If there is one mxd in the list it will do it just fine, but I want to loop through hundreds eventually.
C<SPAN class="punctuation token">:</SPAN>\Users\user1\AppData\Roaming\ESRI\Desktop10<SPAN class="number token">.4</SPAN>\ArcCatalog\N6<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition_1 Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03_Environmental\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
C<SPAN class="punctuation token">:</SPAN>\Users\user2\AppData\Roaming\ESRI\Desktop10<SPAN class="number token">.4</SPAN>\ArcCatalog\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition_1 Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03_Environmental\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
set<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'C:\\Users\\glen.bambrick\\Documents\\mxd\\map2.mxd'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'C:\\Users\\glen.bambrick\\Documents\\mxd\\map1.mxd'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
C<SPAN class="punctuation token">:</SPAN>\Users\glen<SPAN class="punctuation token">.</SPAN>bambrick\Documents\mxd\map2<SPAN class="punctuation token">.</SPAN>mxd
Updating<SPAN class="punctuation token">:</SPAN> C<SPAN class="punctuation token">:</SPAN>\Users\user1\AppData\Roaming\ESRI\Desktop10<SPAN class="number token">.4</SPAN>\ArcCatalog\N6<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition_1
To<SPAN class="punctuation token">:</SPAN> Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03_Environmental\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde
SDE_WORKSPACE
JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
Updating<SPAN class="punctuation token">:</SPAN> C<SPAN class="punctuation token">:</SPAN>\Users\user2\AppData\Roaming\ESRI\Desktop10<SPAN class="number token">.4</SPAN>\ArcCatalog\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition_1
To<SPAN class="punctuation token">:</SPAN> Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03_Environmental\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde
SDE_WORKSPACE
JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
C<SPAN class="punctuation token">:</SPAN>\Users\glen<SPAN class="punctuation token">.</SPAN>bambrick\Documents\mxd\map1<SPAN class="punctuation token">.</SPAN>mxd
Updating<SPAN class="punctuation token">:</SPAN> C<SPAN class="punctuation token">:</SPAN>\Users\user1\AppData\Roaming\ESRI\Desktop10<SPAN class="number token">.4</SPAN>\ArcCatalog\N6<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition_1
To<SPAN class="punctuation token">:</SPAN> Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03_Environmental\JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
Database Connections\Connection to GALSQL01<SPAN class="punctuation token">.</SPAN>sde
SDE_WORKSPACE
JN233985_GCOB<SPAN class="punctuation token">.</SPAN>DBO<SPAN class="punctuation token">.</SPAN>GCOB_03391_Beneficial_Deposition
Traceback <SPAN class="punctuation token">(</SPAN>most recent call last<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
File <SPAN class="string token">"C:\Users\glen.bambrick\Desktop\test.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">65</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> <SPAN class="operator token"><</SPAN>module<SPAN class="operator token">></SPAN>
updateDataSource<SPAN class="punctuation token">(</SPAN>broken_dict<SPAN class="punctuation token">[</SPAN>broken<SPAN class="punctuation token">.</SPAN>dataSource<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> broken<SPAN class="punctuation token">)</SPAN>
File <SPAN class="string token">"C:\Users\glen.bambrick\Desktop\test.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">23</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> updateDataSource
broken_lyr<SPAN class="punctuation token">.</SPAN>replaceDataSource<SPAN class="punctuation token">(</SPAN>workspace_path<SPAN class="punctuation token">,</SPAN> workspace_type<SPAN class="punctuation token">,</SPAN> dataset_name<SPAN class="punctuation token">,</SPAN> <SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN>
File <SPAN class="string token">"C:\Program Files (x86)\ArcGIS\Desktop10.5\ArcPy\arcpy\utils.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">182</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> fn_
<SPAN class="keyword token">return</SPAN> fn<SPAN class="punctuation token">(</SPAN><SPAN class="operator token">*</SPAN>args<SPAN class="punctuation token">,</SPAN> <SPAN class="operator token">**</SPAN>kw<SPAN class="punctuation token">)</SPAN>
File <SPAN class="string token">"C:\Program Files (x86)\ArcGIS\Desktop10.5\ArcPy\arcpy\_mapping.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">682</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> replaceDataSource
<SPAN class="keyword token">return</SPAN> convertArcObjectToPythonObject<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">.</SPAN>_arc_object<SPAN class="punctuation token">.</SPAN>replaceDataSource<SPAN class="punctuation token">(</SPAN><SPAN class="operator token">*</SPAN>gp_fixargs<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>workspace_path<SPAN class="punctuation token">,</SPAN> workspace_type<SPAN class="punctuation token">,</SPAN> dataset_name<SPAN class="punctuation token">,</SPAN> validate<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
ValueError<SPAN class="punctuation token">:</SPAN> Layer<SPAN class="punctuation token">:</SPAN> Unexpected error<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>