summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluke.maurits <luke.maurits@0f58610c-415a-11de-9c03-5d6cfad8e937>2009-05-27 13:32:45 +0000
committerluke.maurits <luke.maurits@0f58610c-415a-11de-9c03-5d6cfad8e937>2009-05-27 13:32:45 +0000
commitdd669fdcaec7ee4c12bdcc3eda9ec23e6a58d62a (patch)
treeab1a32306f6f85a5f1f60d757af0060ddab98240
parent748d90a5dc10d6f9eb82ec6c3af10f67ed5612bc (diff)
downloadpython-prettytable-ptable-dd669fdcaec7ee4c12bdcc3eda9ec23e6a58d62a.tar.gz
Implemented set_style method and some example pre-sets.
-rw-r--r--src/prettytable.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/prettytable.py b/src/prettytable.py
index d449a2c..661be76 100644
--- a/src/prettytable.py
+++ b/src/prettytable.py
@@ -33,12 +33,20 @@ __VERSION__ = "TRUNK"
import cgi
import copy
import cPickle
+import random
import sys
+# hrule styles
FRAME = 0
ALL = 1
NONE = 2
+# Table styles
+DEFAULT = 10
+MSWORD_FRIENDLY = 11
+PLAIN_COLUMNS = 12
+RANDOM = 20
+
def cache_clearing(method):
def wrapper(self, *args, **kwargs):
method(self, *args, **kwargs)
@@ -224,6 +232,64 @@ class PrettyTable:
self.junction_char = junction
##############################
+ # PRESET STYLE LOGIC #
+ ##############################
+
+ def set_style(self, style):
+ if style == DEFAULT:
+ self._set_default_style()
+ elif style == MSWORD_FRIENDLY:
+ self._set_msword_style()
+ elif style == PLAIN_COLUMNS:
+ self._set_columns_style()
+ elif style == RANDOM:
+ self._set_random_style()
+ else:
+ raise Exception("Invalid pre-set style!")
+
+ def _set_default_style(self):
+
+ self.header = True
+ self.border = True
+ self.hrules = FRAME
+ self.padding_width = 1
+ self.left_padding_width = 1
+ self.right_padding_width = 1
+ self.vertical_char = "|"
+ self.horizontal_char = "-"
+ self.junction_char = "+"
+
+ def _set_msword_style(self):
+
+ self.header = True
+ self.border = True
+ self.hrules = NONE
+ self.padding_width = 1
+ self.left_padding_width = 1
+ self.right_padding_width = 1
+ self.vertical_char = "|"
+
+ def _set_columns_style(self):
+
+ self.header = True
+ self.border = False
+ self.padding_width = 1
+ self.left_padding_width = 0
+ self.right_padding_width = 8
+
+ def _set_random_style(self):
+
+ self.header = random.choice((True, False))
+ self.border = random.choice((True, False))
+ self.hrules = random.choice((ALL, FRAME, NONE))
+ self.padding_width = random.randint(0,5)
+ self.left_padding_width = random.randint(0,5)
+ self.right_padding_width = random.randint(0,5)
+ self.vertical_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
+ self.horizontal_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
+ self.junction_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
+
+ ##############################
# DATA INPUT METHODS #
##############################