source: branches/GUIdev/DuchampParameterGUI_listPrinting.py @ 1441

Last change on this file since 1441 was 1332, checked in by KelvinHsu, 11 years ago

DuchampParameterGUI.py split into four files (it could be made more modular but so far it is simply just code split into four files, without really using the advantage of multi-file programs...)

File size: 2.5 KB
Line 
1#-------------------------------------------------------------------------------
2# Name:        DuchampParameterGUI_listPrinting
3# Purpose:
4#
5# Author:      Kelvin
6#
7# Created:     4/12/2013
8#-------------------------------------------------------------------------------
9
10# This function determines the longest key in a dictionary.
11def longestKeyLength(dictionary):
12    return(len(max(dictionary.keys(), key = len)))
13
14# This function determines the longest value in a dictionary.
15def longestValueLength(dictionary):
16    return(len(max(dictionary.values(), key = len)))
17
18# This is the minimum space between the a key and its value in a dictionary when we want to display it.
19minimumSpace = 5
20
21# This appends the appropriate space after a single key in a dictionary.
22# Note: Can this be optimised?
23def tabbedDictionaryLine(dictionary, key, star):
24
25    if key in dictionary:
26
27        # Determine the residual space our word will have compared to the longest word.
28        residualSpace = longestKeyLength(dictionary) - len(key)
29       
30        if star == 0:
31
32            # Add extra space after the word based on the minimum separatio between the word and its definition.
33            space = ' '*(minimumSpace + residualSpace)
34            tabbedKey = key + space
35
36            # Return the word with the appropriate spaces appended.
37            return(tabbedKey)
38        elif star == 1:
39
40            star = ' (*) '
41           
42            # Add extra space after the word based on the minimum separatio between the word and its definition.
43            space = star + ' '*residualSpace + ' '*(minimumSpace - len(star))
44            tabbedKey = key + space
45
46            # Return the word with the appropriate spaces appended.
47            return(tabbedKey)
48
49        else:
50            print("Coding Error: 'Star' is not binary")
51
52    # This exception is not needed, as the function will always be called with a word within the dictionary.
53    else:
54        print(key + "is not in the dictionary")
55        return(' ')
56
57# This determines the longest line that will be printed in a dictionary given the above method.
58def longestLineLength(dictionary):
59
60    maxLineLength = longestKeyLength(dictionary) + longestValueLength(dictionary) + minimumSpace
61    return(maxLineLength)
62
63# Given an array of string, this returns an array of the same strings but in lower cases.
64def lower(stringArray):
65
66    lowerArray = []
67
68    L = len(stringArray)
69   
70    for i in range(L):
71        lowerArray += [stringArray[i].lower()]
72
73    return lowerArray
Note: See TracBrowser for help on using the repository browser.