Package wsatools :: Module Banner
[hide private]

Source Code for Module wsatools.Banner

  1  #------------------------------------------------------------------------------ 
  2  #$Id: Banner.py 8943 2012-01-20 17:45:28Z RossCollins $ 
  3  """ 
  4     Module to produce UNIX banner command style ASCII art. Based on: 
  5     http://code.activestate.com/recipes/577537-banner/ 
  6   
  7     @author: R.S. Collins 
  8     @org:    WFAU, IfA, University of Edinburgh 
  9  """ 
 10  #------------------------------------------------------------------------------ 
 11  from future_builtins import zip 
 12  #------------------------------------------------------------------------------ 
 13   
 14  letterforms = '''\ 
 15         |       |       |       |       |       |       | | 
 16    ###  |  ###  |  ###  |   #   |       |  ###  |  ###  |!| 
 17    #  # |  #  # |  #  # |       |       |       |       |"| 
 18    # #  |  # #  |#######|  # #  |#######|  # #  |  # #  |#| 
 19   ##### |#  #  #|#  #   | ##### |   #  #|#  #  #| ##### |$| 
 20  ###   #|# #  # |### #  |   #   |  # ###| #  # #|#   ###|%| 
 21    ##   | #  #  |  ##   | ###   |#   # #|#    # | ###  #|&| 
 22    ###  |  ###  |   #   |  #    |       |       |       |'| 
 23     ##  |  #    | #     | #     | #     |  #    |   ##  |(| 
 24    ##   |    #  |     # |     # |     # |    #  |  ##   |)| 
 25         | #   # |  # #  |#######|  # #  | #   # |       |*| 
 26         |   #   |   #   | ##### |   #   |   #   |       |+| 
 27         |       |       |  ###  |  ###  |   #   |  #    |,| 
 28         |       |       | ##### |       |       |       |-| 
 29         |       |       |       |  ###  |  ###  |  ###  |.| 
 30        #|     # |    #  |   #   |  #    | #     |#      |/| 
 31    ###  | #   # |#     #|#     #|#     #| #   # |  ###  |0| 
 32     #   |  ##   | # #   |   #   |   #   |   #   | ##### |1| 
 33   ##### |#     #|      #| ##### |#      |#      |#######|2| 
 34   ##### |#     #|      #| ##### |      #|#     #| ##### |3| 
 35  #      |#    # |#    # |#    # |#######|     # |     # |4| 
 36  #######|#      |#      |###### |      #|#     #| ##### |5| 
 37   ##### |#     #|#      |###### |#     #|#     #| ##### |6| 
 38  ###### |#    # |    #  |   #   |  #    |  #    |  #    |7| 
 39   ##### |#     #|#     #| ##### |#     #|#     #| ##### |8| 
 40   ##### |#     #|#     #| ######|      #|#     #| ##### |9| 
 41     #   |  ###  |   #   |       |   #   |  ###  |   #   |:| 
 42    ###  |  ###  |       |  ###  |  ###  |   #   |  #    |;| 
 43      #  |   #   |  #    | #     |  #    |   #   |    #  |<| 
 44         |       |#######|       |#######|       |       |=| 
 45    #    |   #   |    #  |     # |    #  |   #   |  #    |>| 
 46   ##### |#     #|      #|   ### |   #   |       |   #   |?| 
 47   ##### |#     #|# ### #|# ### #|# #### |#      | ##### |@| 
 48     #   |  # #  | #   # |#     #|#######|#     #|#     #|A| 
 49  ###### |#     #|#     #|###### |#     #|#     #|###### |B| 
 50   ##### |#     #|#      |#      |#      |#     #| ##### |C| 
 51  ###### |#     #|#     #|#     #|#     #|#     #|###### |D| 
 52  #######|#      |#      |#####  |#      |#      |#######|E| 
 53  #######|#      |#      |#####  |#      |#      |#      |F| 
 54   ##### |#     #|#      |#  ####|#     #|#     #| ##### |G| 
 55  #     #|#     #|#     #|#######|#     #|#     #|#     #|H| 
 56    ###  |   #   |   #   |   #   |   #   |   #   |  ###  |I| 
 57        #|      #|      #|      #|#     #|#     #| ##### |J| 
 58  #    # |#   #  |#  #   |###    |#  #   |#   #  |#    # |K| 
 59  #      |#      |#      |#      |#      |#      |#######|L| 
 60  #     #|##   ##|# # # #|#  #  #|#     #|#     #|#     #|M| 
 61  #     #|##    #|# #   #|#  #  #|#   # #|#    ##|#     #|N| 
 62  #######|#     #|#     #|#     #|#     #|#     #|#######|O| 
 63  ###### |#     #|#     #|###### |#      |#      |#      |P| 
 64   ##### |#     #|#     #|#     #|#   # #|#    # | #### #|Q| 
 65  ###### |#     #|#     #|###### |#   #  |#    # |#     #|R| 
 66   ##### |#     #|#      | ##### |      #|#     #| ##### |S| 
 67  #######|   #   |   #   |   #   |   #   |   #   |   #   |T| 
 68  #     #|#     #|#     #|#     #|#     #|#     #| ##### |U| 
 69  #     #|#     #|#     #|#     #| #   # |  # #  |   #   |V| 
 70  #     #|#  #  #|#  #  #|#  #  #|#  #  #|#  #  #| ## ## |W| 
 71  #     #| #   # |  # #  |   #   |  # #  | #   # |#     #|#| 
 72  #     #| #   # |  # #  |   #   |   #   |   #   |   #   |Y| 
 73  #######|     # |    #  |   #   |  #    | #     |#######|Z| 
 74   ##### | #     | #     | #     | #     | #     | ##### |[| 
 75  #      | #     |  #    |   #   |    #  |     # |      #|\| 
 76   ##### |     # |     # |     # |     # |     # | ##### |]| 
 77     #   |  # #  | #   # |       |       |       |       |^| 
 78         |       |       |       |       |       |#######|_| 
 79         |  ###  |  ###  |   #   |    #  |       |       |`| 
 80         |   ##  |  #  # | #    #| ######| #    #| #    #|a| 
 81         | ##### | #    #| ##### | #    #| #    #| ##### |b| 
 82         |  #### | #    #| #     | #     | #    #|  #### |c| 
 83         | ##### | #    #| #    #| #    #| #    #| ##### |d| 
 84         | ######| #     | ##### | #     | #     | ######|e| 
 85         | ######| #     | ##### | #     | #     | #     |f| 
 86         |  #### | #    #| #     | #  ###| #    #|  #### |g| 
 87         | #    #| #    #| ######| #    #| #    #| #    #|h| 
 88         |    #  |    #  |    #  |    #  |    #  |    #  |i| 
 89         |      #|      #|      #|      #| #    #|  #### |j| 
 90         | #    #| #   # | ####  | #  #  | #   # | #    #|k| 
 91         | #     | #     | #     | #     | #     | ######|l| 
 92         | #    #| ##  ##| # ## #| #    #| #    #| #    #|m| 
 93         | #    #| ##   #| # #  #| #  # #| #   ##| #    #|n| 
 94         |  #### | #    #| #    #| #    #| #    #|  #### |o| 
 95         | ##### | #    #| #    #| ##### | #     | #     |p| 
 96         |  #### | #    #| #    #| #  # #| #   # |  ### #|q| 
 97         | ##### | #    #| #    #| ##### | #   # | #    #|r| 
 98         |  #### | #     |  #### |      #| #    #|  #### |s| 
 99         |  #####|    #  |    #  |    #  |    #  |    #  |t| 
100         | #    #| #    #| #    #| #    #| #    #|  #### |u| 
101         | #    #| #    #| #    #| #    #|  #  # |   ##  |v| 
102         | #    #| #    #| #    #| # ## #| ##  ##| #    #|w| 
103         | #    #|  #  # |   ##  |   ##  |  #  # | #    #|#| 
104         |  #   #|   # # |    #  |    #  |    #  |    #  |y| 
105         | ######|     # |    #  |   #   |  #    | ######|z| 
106    ###  | #     | #     |##     | #     | #     |  ###  |{| 
107     #   |   #   |   #   |       |   #   |   #   |   #   ||| 
108    ###  |     # |     # |     ##|     # |     # |  ###  |}| 
109   ##    |#  #  #|    ## |       |       |       |       |~| 
110  '''.splitlines() 
111   
112  #------------------------------------------------------------------------------ 
113   
114  table = {} 
115  for form in letterforms: 
116      if '|' in form: 
117          table[form[-2]] = form[:-3].split('|') 
118   
119  #------------------------------------------------------------------------------ 
120   
121  ROWS = len(table.values()[0]) 
122   
123  #------------------------------------------------------------------------------ 
124   
125 -def horizontal(word):
126 """ 127 Display word as large ASCII art. Example: 128 129 >>> horizontal('Hello') 130 # # 131 # # ###### # # #### 132 # # # # # # # 133 ####### ##### # # # # 134 # # # # # # # 135 # # # # # # # 136 # # ###### ###### ###### #### 137 >>> horizontal(str(5)) 138 ####### 139 # 140 # 141 ###### 142 # 143 # # 144 ##### 145 146 @param word: Word to display. 147 @type word: str 148 149 """ 150 for row in range(ROWS): 151 for c in word: 152 print table[c][row], 153 print
154 155 #------------------------------------------------------------------------------ 156
157 -def vertical(word):
158 """ 159 Display word as large ASCII art, oriented vertically. 160 161 @param word: Word to display. 162 @type word: str 163 164 """ 165 for c in word: 166 for row in zip(*table[c]): 167 print ' '.join(reversed(row)) 168 print
169 170 #------------------------------------------------------------------------------ 171 172 if __name__ == "__main__": 173 import doctest 174 doctest.testmod() 175 176 #------------------------------------------------------------------------------ 177