summaryrefslogtreecommitdiff
path: root/python/amqp-doc
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2006-09-19 22:06:50 +0000
committerRafael H. Schloming <rhs@apache.org>2006-09-19 22:06:50 +0000
commit913489deb2ee9dbf44455de5f407ddaf4bd8c540 (patch)
tree7ea442d6867d0076f1c9ea4f4265664059e7aff5 /python/amqp-doc
downloadqpid-python-913489deb2ee9dbf44455de5f407ddaf4bd8c540.tar.gz
Import of qpid from etp:
URL: https://etp.108.redhat.com/svn/etp/trunk/blaze Repository Root: https://etp.108.redhat.com/svn/etp Repository UUID: 06e15bec-b515-0410-bef0-cc27a458cf48 Revision: 608 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@447994 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/amqp-doc')
-rwxr-xr-xpython/amqp-doc75
1 files changed, 75 insertions, 0 deletions
diff --git a/python/amqp-doc b/python/amqp-doc
new file mode 100755
index 0000000000..a5b785fd73
--- /dev/null
+++ b/python/amqp-doc
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2006 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+import sys, re
+from qpid.spec import load, pythonize
+from getopt import gnu_getopt as getopt, GetoptError
+from fnmatch import fnmatchcase as fnmatch
+
+def die(msg):
+ print >> sys.stderr, msg
+ sys.exit(1)
+
+def usage(msg = ""):
+ return ("""%s
+
+Usage %s [<options>] [<pattern_1> ... <pattern_n>]
+
+Options:
+ -e, --regexp use regex instead of glob when matching
+ -s, --spec <url> location of amqp.xml
+""" % (msg, sys.argv[0])).strip()
+
+try:
+ opts, args = getopt(sys.argv[1:], "s:e", ["regexp", "spec="])
+except GetoptError, e:
+ die(str(e))
+
+regexp = False
+spec = "../specs/amqp-8.0.xml"
+for k, v in opts:
+ if k == "-e" or k == "--regexp": regexp = True
+ if k == "-s" or k == "--spec": spec = v
+
+if regexp:
+ def match(pattern, value):
+ try:
+ return re.match(pattern, value)
+ except Exception, e:
+ die("error: '%s': %s" % (pattern, e))
+else:
+ def match(pattern, value):
+ return fnmatch(value, pattern)
+
+spec = load(spec)
+methods = {}
+patterns = args
+for pattern in patterns:
+ for c in spec.classes:
+ for m in c.methods:
+ name = pythonize("%s_%s" % (c.name, m.name))
+ if match(pattern, name):
+ methods[name] = m.define_method(name)
+
+if patterns:
+ if methods:
+ AMQP = type("AMQP[%s]" % ", ".join(patterns), (), methods)
+ else:
+ die("no matches")
+else:
+ AMQP = spec.define_class("AMQP")
+
+help(AMQP)