summaryrefslogtreecommitdiff
path: root/python/qpid/disp.py
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2011-05-27 15:44:23 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2011-05-27 15:44:23 +0000
commit66765100f4257159622cefe57bed50125a5ad017 (patch)
treea88ee23bb194eb91f0ebb2d9b23ff423e3ea8e37 /python/qpid/disp.py
parent1aeaa7b16e5ce54f10c901d75c4d40f9f88b9db6 (diff)
parent88b98b2f4152ef59a671fad55a0d08338b6b78ca (diff)
downloadqpid-python-rajith_jms_client.tar.gz
Creating a branch for experimenting with some ideas for JMS client.rajith_jms_client
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/rajith_jms_client@1128369 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/disp.py')
-rw-r--r--python/qpid/disp.py236
1 files changed, 0 insertions, 236 deletions
diff --git a/python/qpid/disp.py b/python/qpid/disp.py
deleted file mode 100644
index c29ea009de..0000000000
--- a/python/qpid/disp.py
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env python
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-
-from time import strftime, gmtime
-
-class Header:
- """ """
- NONE = 1
- KMG = 2
- YN = 3
- Y = 4
- TIME_LONG = 5
- TIME_SHORT = 6
- DURATION = 7
-
- def __init__(self, text, format=NONE):
- self.text = text
- self.format = format
-
- def __repr__(self):
- return self.text
-
- def __str__(self):
- return self.text
-
- def formatted(self, value):
- try:
- if value == None:
- return ''
- if self.format == Header.NONE:
- return value
- if self.format == Header.KMG:
- return self.num(value)
- if self.format == Header.YN:
- if value:
- return 'Y'
- return 'N'
- if self.format == Header.Y:
- if value:
- return 'Y'
- return ''
- if self.format == Header.TIME_LONG:
- return strftime("%c", gmtime(value / 1000000000))
- if self.format == Header.TIME_SHORT:
- return strftime("%X", gmtime(value / 1000000000))
- if self.format == Header.DURATION:
- if value < 0: value = 0
- sec = value / 1000000000
- min = sec / 60
- hour = min / 60
- day = hour / 24
- result = ""
- if day > 0:
- result = "%dd " % day
- if hour > 0 or result != "":
- result += "%dh " % (hour % 24)
- if min > 0 or result != "":
- result += "%dm " % (min % 60)
- result += "%ds" % (sec % 60)
- return result
- except:
- return "?"
-
- def numCell(self, value, tag):
- fp = float(value) / 1000.
- if fp < 10.0:
- return "%1.2f%c" % (fp, tag)
- if fp < 100.0:
- return "%2.1f%c" % (fp, tag)
- return "%4d%c" % (value / 1000, tag)
-
- def num(self, value):
- if value < 1000:
- return "%4d" % value
- if value < 1000000:
- return self.numCell(value, 'k')
- value /= 1000
- if value < 1000000:
- return self.numCell(value, 'm')
- value /= 1000
- return self.numCell(value, 'g')
-
-
-class Display:
- """ Display formatting for QPID Management CLI """
-
- def __init__(self, spacing=2, prefix=" "):
- self.tableSpacing = spacing
- self.tablePrefix = prefix
- self.timestampFormat = "%X"
-
- def formattedTable(self, title, heads, rows):
- fRows = []
- for row in rows:
- fRow = []
- col = 0
- for cell in row:
- fRow.append(heads[col].formatted(cell))
- col += 1
- fRows.append(fRow)
- headtext = []
- for head in heads:
- headtext.append(head.text)
- self.table(title, headtext, fRows)
-
- def table(self, title, heads, rows):
- """ Print a table with autosized columns """
-
- # Pad the rows to the number of heads
- for row in rows:
- diff = len(heads) - len(row)
- for idx in range(diff):
- row.append("")
-
- print title
- if len (rows) == 0:
- return
- colWidth = []
- col = 0
- line = self.tablePrefix
- for head in heads:
- width = len (head)
- for row in rows:
- cellWidth = len (unicode (row[col]))
- if cellWidth > width:
- width = cellWidth
- colWidth.append (width + self.tableSpacing)
- line = line + head
- if col < len (heads) - 1:
- for i in range (colWidth[col] - len (head)):
- line = line + " "
- col = col + 1
- print line
- line = self.tablePrefix
- for width in colWidth:
- for i in range (width):
- line = line + "="
- print line
-
- for row in rows:
- line = self.tablePrefix
- col = 0
- for width in colWidth:
- line = line + unicode (row[col])
- if col < len (heads) - 1:
- for i in range (width - len (unicode (row[col]))):
- line = line + " "
- col = col + 1
- print line
-
- def do_setTimeFormat (self, fmt):
- """ Select timestamp format """
- if fmt == "long":
- self.timestampFormat = "%c"
- elif fmt == "short":
- self.timestampFormat = "%X"
-
- def timestamp (self, nsec):
- """ Format a nanosecond-since-the-epoch timestamp for printing """
- return strftime (self.timestampFormat, gmtime (nsec / 1000000000))
-
- def duration(self, nsec):
- if nsec < 0: nsec = 0
- sec = nsec / 1000000000
- min = sec / 60
- hour = min / 60
- day = hour / 24
- result = ""
- if day > 0:
- result = "%dd " % day
- if hour > 0 or result != "":
- result += "%dh " % (hour % 24)
- if min > 0 or result != "":
- result += "%dm " % (min % 60)
- result += "%ds" % (sec % 60)
- return result
-
-class Sortable:
- """ """
- def __init__(self, row, sortIndex):
- self.row = row
- self.sortIndex = sortIndex
- if sortIndex >= len(row):
- raise Exception("sort index exceeds row boundary")
-
- def __cmp__(self, other):
- return cmp(self.row[self.sortIndex], other.row[self.sortIndex])
-
- def getRow(self):
- return self.row
-
-class Sorter:
- """ """
- def __init__(self, heads, rows, sortCol, limit=0, inc=True):
- col = 0
- for head in heads:
- if head.text == sortCol:
- break
- col += 1
- if col == len(heads):
- raise Exception("sortCol '%s', not found in headers" % sortCol)
-
- list = []
- for row in rows:
- list.append(Sortable(row, col))
- list.sort()
- if not inc:
- list.reverse()
- count = 0
- self.sorted = []
- for row in list:
- self.sorted.append(row.getRow())
- count += 1
- if count == limit:
- break
-
- def getSorted(self):
- return self.sorted