[elbe-devel] [PATCH 10/25] py3: print error if spyne is not available

Manuel Traut manut at linutronix.de
Fri Dec 8 19:08:41 CET 2017


python3-spyne is not available in debian at the moment.
This prints a warning to enable the user installing it from another
source.

Signed-off-by: Manuel Traut <manut at linutronix.de>
---
 elbepack/daemons/soap/__init__.py | 18 +++++++++++++-----
 elbepack/daemons/soap/esoap.py    | 25 ++++++++++++++++---------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/elbepack/daemons/soap/__init__.py b/elbepack/daemons/soap/__init__.py
index 623f76f8..560333fc 100644
--- a/elbepack/daemons/soap/__init__.py
+++ b/elbepack/daemons/soap/__init__.py
@@ -16,16 +16,24 @@
 # You should have received a copy of the GNU General Public License
 # along with ELBE.  If not, see <http://www.gnu.org/licenses/>.
 
-from esoap import ESoap
+from __future__ import print_function
 
-from beaker.middleware import SessionMiddleware
+import sys
 
-from spyne import Application
-from spyne.protocol.soap import Soap11
-from spyne.server.wsgi import WsgiApplication
+from esoap import ESoap
 
+from beaker.middleware import SessionMiddleware
 from cherrypy.process.plugins import SimplePlugin
 
+try:
+    from spyne import Application
+    from spyne.protocol.soap import Soap11
+    from spyne.server.wsgi import WsgiApplication
+except ImportError as e:
+    print("failed to import spyne", file=sys.stderr)
+    print("please install python(3)-spyne", file=sys.stderr)
+    sys.exit(-20)
+
 from elbepack.projectmanager import ProjectManager
 
 class EsoapApp(Application):
diff --git a/elbepack/daemons/soap/esoap.py b/elbepack/daemons/soap/esoap.py
index 8189a94f..711e8118 100644
--- a/elbepack/daemons/soap/esoap.py
+++ b/elbepack/daemons/soap/esoap.py
@@ -18,26 +18,33 @@
 # You should have received a copy of the GNU General Public License
 # along with ELBE.  If not, see <http://www.gnu.org/licenses/>.
 
+from __future__ import print_function
+
 import binascii
 import os
 import tarfile
 import fnmatch
+import sys
 
 from tempfile import NamedTemporaryFile
 
 from elbepack.shellhelper import system
 from elbepack.version import elbe_version
-
-from faults import soap_faults
-
 from elbepack.elbexml import ValidationMode
-from datatypes import SoapProject, SoapFile
-from authentication import authenticated_admin, authenticated_uid
 
-from spyne.service import ServiceBase
-from spyne.decorator import rpc
-from spyne.model.primitive import String, Boolean, Integer
-from spyne.model.complex import Array
+from .faults import soap_faults
+from .datatypes import SoapProject, SoapFile
+from .authentication import authenticated_admin, authenticated_uid
+
+try:
+    from spyne.service import ServiceBase
+    from spyne.decorator import rpc
+    from spyne.model.primitive import String, Boolean, Integer
+    from spyne.model.complex import Array
+except ImportError as e:
+    print("failed to import spyne", file=sys.stderr)
+    print("please install python(3)-spyne", file=sys.stderr)
+    sys.exit(-20)
 
 class ESoap (ServiceBase):
 
-- 
2.15.1




More information about the elbe-devel mailing list