<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Code review please - script never ends in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306526#M23808</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;And here's my parameters code in case the bug lies here&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env

class ToolValidator(object):
&amp;nbsp; """Class for validating a tool's parameter values and controlling
&amp;nbsp; the behavior of the tool's dialog."""

&amp;nbsp; def __init__(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Setup arcpy and the list of tool parameters."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params = arcpy.GetParameterInfo()

&amp;nbsp; def initializeParameters(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Refine the properties of a tool's parameters.&amp;nbsp; This method is
&amp;nbsp;&amp;nbsp;&amp;nbsp; called when the tool is opened."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; subjects = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = "PLS_Subject_Information"
&amp;nbsp;&amp;nbsp;&amp;nbsp; field = "Name"
&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = arcpy.SearchCursor(fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sName = i.getValue(field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subjects.append(sName)

&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params[6].filter.list = subjects
&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params[6].value = subjects[0]

&amp;nbsp;&amp;nbsp;&amp;nbsp; return

&amp;nbsp; def updateParameters(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Modify the values and properties of parameters before internal
&amp;nbsp;&amp;nbsp;&amp;nbsp; validation is performed.&amp;nbsp; This method is called whenever a parameter
&amp;nbsp;&amp;nbsp;&amp;nbsp; has been changed."""

&amp;nbsp; def updateMessages(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Modify the messages created by internal validation for each tool
&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter.&amp;nbsp; This method is called after internal validation."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]20085[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 14:40:15 GMT</pubDate>
    <dc:creator>JonPedder</dc:creator>
    <dc:date>2021-12-11T14:40:15Z</dc:date>
    <item>
      <title>Code review please - script never ends</title>
      <link>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306525#M23807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Not sure how else to say it, but after running the code below, the processing window just flashes continually and the script doesn't ever appear to end. I have to kill ArcMap process to get out of the script. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm posting my entire code snippet below, hopefully someone can point out my error. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Warning, new Python coder here, please don't laugh "too hard' at my brute force coding attempts &lt;span class="lia-unicode-emoji" title=":face_with_tongue:"&gt;😛&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;# Jon Pedder # MapSAR - 12/15/12 # Make Briefing Map&amp;nbsp;&amp;nbsp; import arcpy, os, glob&amp;nbsp; # Set enviroment # from arcpy import env&amp;nbsp;&amp;nbsp;&amp;nbsp; # Gather input parameters from user # 0. TargetFile mxd - string # 1. Folder to store pdf product - string # 2. Title of the Map - string # 3. Name of saved map - string # 4. Map Scale - string # 5. Center map on - list, string # 6. Use base data in current map - boolean&amp;nbsp; TargetFile = arcpy.GetParameterAsText(0) PDFlocation = arcpy.GetParameterAsText(1) aMapTitle = arcpy.GetParameterAsText(2) aMapName = arcpy.GetParameterAsText(3) aMapScale = arcpy.GetParameterAsText(4) aCenterMapOn = arcpy.GetParameterAsText(4) aBase_Data = arcpy.GetParameterAsText(6)&amp;nbsp; # Set Vars and overwrite option to true arcpy.env.overwriteOutput = True Targetmxd = None mxd = None&amp;nbsp; arcpy.AddMessage("Base data = " + aBase_Data)&amp;nbsp;&amp;nbsp; ########################################&amp;nbsp; ###### BASE DATA COPY STARTS HERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; ########################################&amp;nbsp; # Gather information to copy over base_data&amp;nbsp; if aBase_Data == "true": &amp;nbsp;&amp;nbsp; &amp;nbsp; # Define vars&amp;nbsp; &amp;nbsp; mxdlayer = "14 Base_Data_Group" &amp;nbsp; LayerFile = "C:\MapSAR\TempDir\Base_Layer" &amp;nbsp; LayerName = LayerFile + '.lyr'&amp;nbsp;&amp;nbsp; &amp;nbsp; # Save base_data layer file to disk in c:\MapSAR\TempDir from current mxd. &amp;nbsp; # If directory does not exist create it &amp;nbsp; if os.path.exists('c:\MapSAR\TempDir'):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SaveToLayerFile_management(mxdlayer,LayerFile,"RELATIVE")&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; else: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.makedirs('c:\MapSAR\TempDir') &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SaveToLayerFile_management(mxdlayer,LayerFile,"RELATIVE")&amp;nbsp; &amp;nbsp; # Message to user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; arcpy.AddMessage("Base Data Saved as "+ LayerFile)&amp;nbsp; &amp;nbsp; Targetmxd = arcpy.mapping.MapDocument(TargetFile)&amp;nbsp; &amp;nbsp; # Check for existing Base_Data layers in target. If present remove them &amp;nbsp; for df in arcpy.mapping.ListDataFrames(Targetmxd): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(Targetmxd, "", df): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 'Base_Data' in lyr.name: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.mapping.RemoveLayer(df,lyr) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Message to user that layers have been removed from target &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('removing '+ str(lyr) + ' from '+TargetFile)&amp;nbsp; &amp;nbsp; # Message to user &amp;nbsp; arcpy.AddMessage('Loading Base_Data '+ LayerName +' from disk')&amp;nbsp; &amp;nbsp; # Check if the layer exists on disk &amp;nbsp; if os.path.isfile(LayerName): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addLayer = arcpy.mapping.Layer(LayerName) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.mapping.AddLayer(df, addLayer, "BOTTOM") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Targetmxd.save() &amp;nbsp; else: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If not alert user of an error &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(LayerName +' does not exist') &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ######################################## ###### BASE DATA COPY ENDS HERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ########################################&amp;nbsp; ######################################## ###### EXPORT MAP STARTS HERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ########################################&amp;nbsp;&amp;nbsp; MapTitle = aMapTitle MapName = aMapTitle + ".pdf" MapLocation = PDFlocation + "/" + aMapName + ".pdf"&amp;nbsp; arcpy.AddMessage("Generating Briefing Map " + MapName) mxd = arcpy.mapping.MapDocument(TargetFile)&amp;nbsp; for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT","MapTitle"):&amp;nbsp; elm.text = "&amp;lt;BOL&amp;gt; " + MapTitle + "&amp;lt;/BOL&amp;gt;"&amp;nbsp; for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT","MapName"):&amp;nbsp; elm.text = MapName&amp;nbsp; fc = "PLS_Subject_Information" # iQuery = "Name =" + aCenterMapOn iQuery = ' "Name" = \'Jon Pedder\' '&amp;nbsp; df = arcpy.mapping.ListDataFrames(mxd, "MapSAR")[0] lyr = arcpy.mapping.ListLayers(mxd, "PLS_Subject_Information", df)[0]&amp;nbsp; arcpy.AddMessage("Panning to center on PLS for "+ aCenterMapOn) # Use the SelectLayerByAttribute tool to select PLS Subject and&amp;nbsp; #&amp;nbsp; zoom to the selection arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", iQuery) df.zoomToSelectedFeatures() df.scale = aMapScale&amp;nbsp; # Export the map to a .pdf arcpy.mapping.ExportToPDF(mxd,MapLocation)&amp;nbsp; ######################################## ###### EXPORT MAP ENDS HERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ########################################&amp;nbsp; # Clear vars del mxd, Targetmxd&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2012 16:59:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306525#M23807</guid>
      <dc:creator>JonPedder</dc:creator>
      <dc:date>2012-12-19T16:59:28Z</dc:date>
    </item>
    <item>
      <title>Re: Code review please - script never ends</title>
      <link>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306526#M23808</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;And here's my parameters code in case the bug lies here&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy
from arcpy import env

class ToolValidator(object):
&amp;nbsp; """Class for validating a tool's parameter values and controlling
&amp;nbsp; the behavior of the tool's dialog."""

&amp;nbsp; def __init__(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Setup arcpy and the list of tool parameters."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params = arcpy.GetParameterInfo()

&amp;nbsp; def initializeParameters(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Refine the properties of a tool's parameters.&amp;nbsp; This method is
&amp;nbsp;&amp;nbsp;&amp;nbsp; called when the tool is opened."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; subjects = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = "PLS_Subject_Information"
&amp;nbsp;&amp;nbsp;&amp;nbsp; field = "Name"
&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = arcpy.SearchCursor(fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sName = i.getValue(field)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subjects.append(sName)

&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params[6].filter.list = subjects
&amp;nbsp;&amp;nbsp;&amp;nbsp; self.params[6].value = subjects[0]

&amp;nbsp;&amp;nbsp;&amp;nbsp; return

&amp;nbsp; def updateParameters(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Modify the values and properties of parameters before internal
&amp;nbsp;&amp;nbsp;&amp;nbsp; validation is performed.&amp;nbsp; This method is called whenever a parameter
&amp;nbsp;&amp;nbsp;&amp;nbsp; has been changed."""

&amp;nbsp; def updateMessages(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Modify the messages created by internal validation for each tool
&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter.&amp;nbsp; This method is called after internal validation."""
&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]20085[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:40:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306526#M23808</guid>
      <dc:creator>JonPedder</dc:creator>
      <dc:date>2021-12-11T14:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Code review please - script never ends</title>
      <link>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306527#M23809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Update: This is happening with all my scripts so isn't code dependent. I've re installed SP1 for 10.1 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next is to see if the DB or mxd is corrupt&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2012 20:49:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306527#M23809</guid>
      <dc:creator>JonPedder</dc:creator>
      <dc:date>2012-12-19T20:49:58Z</dc:date>
    </item>
    <item>
      <title>Re: Code review please - script never ends</title>
      <link>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306528#M23810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok I think all this was a corrupt MXD file, interesting.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2012 21:40:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/code-review-please-script-never-ends/m-p/306528#M23810</guid>
      <dc:creator>JonPedder</dc:creator>
      <dc:date>2012-12-19T21:40:23Z</dc:date>
    </item>
  </channel>
</rss>

