]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - bin/dependencies_b.py
Split up about.html lines.
[irc/quakenet/qwebirc.git] / bin / dependencies_b.py
index d5b1619bcc99d12b8d682025c80311180ad1d668..94663cee05b435e23cc94b26b3298a8084a3fd0c 100644 (file)
@@ -15,10 +15,13 @@ def check_dependencies():
   i = 0\r
   \r
   check_twisted()\r
+  check_zope()\r
   check_win32()\r
+  i+=check_autobahn()\r
+  i+=check_json()\r
   i+=check_java()\r
   i+=check_hg()\r
-  \r
+\r
   print "0 errors, %d warnings." % i\r
   \r
   if i == 0:\r
@@ -70,14 +73,27 @@ def check_hg():
     \r
   return 0\r
   \r
+def check_zope():\r
+  try:\r
+    from zope.interface import Interface\r
+  except ImportError:\r
+    if sys.platform.startswith("win"):\r
+      fail("qwebirc requires zope interface",\r
+           "see pypi: http://pypi.python.org/pypi/zope.interface")\r
+    else:\r
+      fail("qwebirc requires zope interface.",\r
+           "this should normally come with twisted, but can be downloaded",\r
+           "from pypi: http://pypi.python.org/pypi/zope.interface")\r
+\r
 def check_twisted():\r
   try:\r
     import twisted\r
   except ImportError:\r
     fail("qwebirc requires twisted (at least 8.2.0), see http://twistedmatrix.com/")\r
 \r
-  twisted_fail = lambda x, y=None: fail("you don't seem to have twisted's %s module." % x,\r
-                                        "your distro is most likely modular, look for a twisted web package%s." % (" %s" % y if y else "",))\r
+  def twisted_fail(x, y=None):\r
+    fail("you don't seem to have twisted's %s module." % x,\r
+         "your distro is most likely modular, look for a twisted %s package%s." % (x, " %s" % y if y else "",))\r
 \r
   try:\r
     import twisted.names\r
@@ -88,7 +104,6 @@ def check_twisted():
     import twisted.mail\r
   except ImportError:\r
     twisted_fail("mail")\r
-    fail("you don't seem to have twisted's mail module, your distro is most likely modular, look for a twisted mail package.")\r
 \r
   try:\r
     import twisted.web\r
@@ -98,7 +113,26 @@ def check_twisted():
   try:\r
     import twisted.words\r
   except ImportError:\r
-    twistedfail("words")\r
+    twisted_fail("words")\r
+    \r
+def check_json():\r
+  import qwebirc.util.qjson\r
+  if qwebirc.util.qjson.slow:\r
+    warn("simplejson module with C speedups not installed.",\r
+         "using embedded module (slower); consider installing simplejson from:",\r
+         "http://pypi.python.org/pypi/simplejson/")\r
+    return 1\r
+  return 0\r
+\r
+def check_autobahn():\r
+  try:\r
+    import autobahn.websocket\r
+    return 0\r
+  except ImportError:\r
+    warn("autobahn not installed; websocket support will be disabled.",\r
+         "consider installing autobahn from:",\r
+         "http://autobahn.ws/python/getstarted/")\r
+    return 1\r
 \r
 if __name__ == "__main__":\r
   import dependencies\r