A year or so ago I was working with Arcpy Addins. I had created an extension that used to run a def openDocument() that creates a numpy array out of a table view:
<SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">ExtensionClass1</SPAN><SPAN class="punctuation token">(</SPAN>object<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="string token">"""Implementation for AddressValidatorExtension_addin.extension2 (Extension)"""</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">__init__</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="comment token"># For performance considerations, please remove all unused methods in this class.</SPAN>
self<SPAN class="punctuation token">.</SPAN>enabled <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">openDocument</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
myTable <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"I:\GIS\ArcSDE\SuperUser\slcogis\gdb_ADD\gdb_ADD@slcogis.sde\SLCOGIS.gdb_ADD.JoesArray_vw"</SPAN>
fields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'FULLNAME'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'LowCoordName'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'HighCoordName'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Alias1'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Alias2'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Alias3'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Alias4'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'STR2_LOW_RANGE'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'STR2_HIGH_RANGE'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">global</SPAN> arr
arr <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>TableToNumPyArray<SPAN class="punctuation token">(</SPAN>myTable<SPAN class="punctuation token">,</SPAN>fields<SPAN class="punctuation token">)</SPAN><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>
The problem is when I try to execute the other functionalities of the extension it errors out at the first call to that array:
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\JBorgione\AppData\Local\ESRI\Desktop10.5\AssemblyCache\{FB53601C-244C-4DF3-87C2-E18F723FA707}\AddressValidatorExtension_addin.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">71</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> onEnter
name <SPAN class="operator token">=</SPAN> arr<SPAN class="punctuation token">[</SPAN>np<SPAN class="punctuation token">.</SPAN>where<SPAN class="punctuation token">(</SPAN>arr<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'FULLNAME'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">==</SPAN> enteredName<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">]</SPAN>
NameError<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">global</SPAN> name <SPAN class="string token">'arr'</SPAN> <SPAN class="keyword token">is</SPAN> <SPAN class="operator token">not</SPAN> defined
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Not sure what I'm missing, and hoping another set of eyes can catch it