Need to publish web service using arcpy tuning up its properties through the parameter names passing them into function parameter_toggle (see code bellow). We are getting error (see picture bellow) in the parse of XML (output of sddraft analysis) with xml.dom.minidom for the parameters:
- "recycleInterval"
- "recycleStartTime"
- "keepAliveInterval"
These parameters represent service properties:
Specify Recycling Settings:
- Recycle this configuration every
- Starting at
Specify Health Check Settings:
- Check and repair instances every
<SPAN class="kwd" style="color: #101094;">def</SPAN><SPAN class="pln" style="color: #303336;"> mapService</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">wrkspc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> con</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> service</SPAN><SPAN class="pun" style="color: #303336;">):</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="pun" style="color: #303336;">...</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">return</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">sddraft</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> analysis</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="com" style="color: #858c93;"># (out_sddraft, out_analysis)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">def</SPAN><SPAN class="pln" style="color: #303336;"> capability_toggle</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">doc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> server_type</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> status</SPAN><SPAN class="pun" style="color: #303336;">):</SPAN><SPAN class="pln" style="color: #303336;">
type_names </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> doc</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">getElementsByTagName</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="str" style="color: #7d2727;">'TypeName'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">for</SPAN><SPAN class="pln" style="color: #303336;"> type_name </SPAN><SPAN class="kwd" style="color: #101094;">in</SPAN><SPAN class="pln" style="color: #303336;"> type_names</SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> type_name</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">server_type</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="kwd" style="color: #101094;">and</SPAN><SPAN class="pln" style="color: #303336;"> status</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">lower</SPAN><SPAN class="pun" style="color: #303336;">()</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'on'</SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;">
type_name</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">parentNode</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">getElementsByTagName</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="str" style="color: #7d2727;">"Enabled"</SPAN><SPAN class="pun" style="color: #303336;">)[</SPAN><SPAN class="lit" style="color: #7d2727;">0</SPAN><SPAN class="pun" style="color: #303336;">].</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"true"</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">def</SPAN><SPAN class="pln" style="color: #303336;"> parameter_toggle</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">doc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="str" style="color: #7d2727;">'maxRecordCount'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'MaxInstances'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'recycleInterval'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'recycleStartTime'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'keepAliveInterval'</SPAN><SPAN class="pun" style="color: #303336;">):</SPAN><SPAN class="pln" style="color: #303336;">
keys </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> doc</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">getElementsByTagName</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="str" style="color: #7d2727;">'Key'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">for</SPAN><SPAN class="pln" style="color: #303336;"> key </SPAN><SPAN class="kwd" style="color: #101094;">in</SPAN><SPAN class="pln" style="color: #303336;"> keys</SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">maxRecordCount</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">nextSibling</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="lit" style="color: #7d2727;">100000</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="typ" style="color: #2b91af;">MaxInstances</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">nextSibling</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="lit" style="color: #7d2727;">5</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">recycleInterval</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">nextSibling</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="lit" style="color: #7d2727;">20</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">recycleStartTime</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">nextSibling</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'04:00'</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"{}"</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">format</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">keepAliveInterval</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;"> key</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">nextSibling</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">firstChild</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">data </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="lit" style="color: #7d2727;">86400</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="com" style="color: #858c93;">#seconds</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">def</SPAN><SPAN class="pln" style="color: #303336;"> publishService</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">out_analysis</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> out_ssdraft</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> sd</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> con</SPAN><SPAN class="pun" style="color: #303336;">):</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="pun" style="color: #303336;">...</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">def</SPAN><SPAN class="pln" style="color: #303336;"> main</SPAN><SPAN class="pun" style="color: #303336;">():</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="com" style="color: #858c93;"># workspace</SPAN><SPAN class="pln" style="color: #303336;">
wrkspc </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"path_to_workspace"</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="com" style="color: #858c93;"># server connection (publisher)</SPAN><SPAN class="pln" style="color: #303336;">
con </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> os</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">path</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">join</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">wrkspc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"file.ags"</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
service </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">"service_name"</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="com" style="color: #858c93;"># outputs mapservice </SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">out_sddraft</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> out_analysis</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> mapService</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">wrkspc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> con</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> service</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="com" style="color: #858c93;"># parse of XML (from sddraft analysis)</SPAN><SPAN class="pln" style="color: #303336;">
doc </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> dom</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">parse</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">out_sddraft</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="com" style="color: #858c93;">### ERROR HERE PARSING XML ### </SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">with</SPAN><SPAN class="pln" style="color: #303336;"> open</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">out_sddraft</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'w+'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="kwd" style="color: #101094;">as</SPAN><SPAN class="pln" style="color: #303336;"> xml</SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;">
capability_toggle</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">doc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'WMSServer'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'on'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
parameter_toggle</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">doc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="str" style="color: #7d2727;">'maxRecordCount'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'MaxInstances'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'recycleInterval'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'recycleStartTime'</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'keepAliveInterval'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
doc</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">writexml</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">xml</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
sd </SPAN><SPAN class="pun" style="color: #303336;">=</SPAN><SPAN class="pln" style="color: #303336;"> os</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">path</SPAN><SPAN class="pun" style="color: #303336;">.</SPAN><SPAN class="pln" style="color: #303336;">join</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">wrkspc</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;">service </SPAN><SPAN class="pun" style="color: #303336;">+</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'.sd'</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
publishService</SPAN><SPAN class="pun" style="color: #303336;">(</SPAN><SPAN class="pln" style="color: #303336;">out_analysis</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> out_sddraft</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> sd</SPAN><SPAN class="pun" style="color: #303336;">,</SPAN><SPAN class="pln" style="color: #303336;"> con</SPAN><SPAN class="pun" style="color: #303336;">)</SPAN><SPAN class="pln" style="color: #303336;">
</SPAN><SPAN class="kwd" style="color: #101094;">if</SPAN><SPAN class="pln" style="color: #303336;"> __name__ </SPAN><SPAN class="pun" style="color: #303336;">==</SPAN><SPAN class="pln" style="color: #303336;"> </SPAN><SPAN class="str" style="color: #7d2727;">'__main__'</SPAN><SPAN class="pun" style="color: #303336;">:</SPAN><SPAN class="pln" style="color: #303336;">
main</SPAN><SPAN class="pun" style="color: #303336;">()</SPAN>