I use comtypes to interact with ArcObjects direcly. I've found it a lot less buggy than arcpy, although I don't do much more than retrieve data from our servers.
def getConnection():
"""
Creates and returns a connection to the Database
@return: SdeWorkspace as ISqlWorkspace
"""
import comtypes.gen.esriSystem as esriSystem
import comtypes.gen.esriDataSourcesGDB as esriDataSourcesGDB
import comtypes.gen.esriGeoDatabase as esriGeodatabase
# Set connection properties for OLE DB connection
conprop = Snippets.NewObj(esriSystem.PropertySet, esriSystem.IPropertySet)
conprop.SetProperty("INSTANCE", "sde:sqlserver:?????")
conprop.SetProperty("DATABASE", "?????")
conprop.SetProperty("AUTHENTICATION_MODE", "OSA")
# Create workspace
SDEWorkspaceFactory = Snippets.NewObj(esriDataSourcesGDB.SdeWorkspaceFactory, esriGeodatabase.IWorkspaceFactory)
SDEWorkspace = SDEWorkspaceFactory.Open(conprop, 0)
sqlworkspace = Snippets.CType(SDEWorkspace, esriGeodatabase.ISqlWorkspace)
return sqlworkspace