Add common library
This commit is contained in:
parent
e95460dd9d
commit
23d5a2ef59
0
common/__init__.py
Normal file
0
common/__init__.py
Normal file
0
common/conversion/__init__.py
Normal file
0
common/conversion/__init__.py
Normal file
15
common/conversion/removeEmptyDecimals.py
Normal file
15
common/conversion/removeEmptyDecimals.py
Normal file
@ -0,0 +1,15 @@
|
||||
def removeEmptyDecimals(n):
|
||||
"""
|
||||
Removes .0 from a float if it doesn't add any extra value to the number.
|
||||
|
||||
Parameters:
|
||||
n (float): the value to parse
|
||||
|
||||
```
|
||||
>>> removeEmptyDecimals(2.0)
|
||||
2
|
||||
>>> removeEmptyDecimals(2.5)
|
||||
2.5
|
||||
```
|
||||
"""
|
||||
return int(n) if int(n) == n else n
|
0
common/inputChecking/__init__.py
Normal file
0
common/inputChecking/__init__.py
Normal file
18
common/inputChecking/boolInput.py
Normal file
18
common/inputChecking/boolInput.py
Normal file
@ -0,0 +1,18 @@
|
||||
def boolInput(question, error='Skriv in J eller N\n', yesNoLetters=('j', 'n')):
|
||||
"""
|
||||
Asks the user a yes/no question and returns a bool based on the input.
|
||||
|
||||
Parameters: \\
|
||||
prompt (str): The prompt asking the user for input \\
|
||||
error? (str): The message to be printed on parsing error \\
|
||||
yesNoLetters? ((str,str)): The letters to be used for representing yes and no in low caps
|
||||
"""
|
||||
yesLetters = [yesNoLetters[0], yesNoLetters[0].capitalize()]
|
||||
noLetters = [yesNoLetters[1], yesNoLetters[1].capitalize()]
|
||||
while True:
|
||||
try:
|
||||
choice = input(question)
|
||||
assert choice in yesLetters + noLetters
|
||||
return choice in yesLetters
|
||||
except AssertionError:
|
||||
print(error)
|
16
common/inputChecking/choiceInput.py
Normal file
16
common/inputChecking/choiceInput.py
Normal file
@ -0,0 +1,16 @@
|
||||
def safeQuestion(prompt, choices):
|
||||
"""
|
||||
Prompts the user to make a choice and asserts that the choice is valid.
|
||||
|
||||
Parameters: \\
|
||||
prompt (str): The prompt asking the user for input \\
|
||||
choices ([str]): The choices that the user can choose (in low caps)
|
||||
"""
|
||||
allChoices = choices + [choice.capitalize() for choice in choices]
|
||||
while True:
|
||||
try:
|
||||
answer = input(prompt)
|
||||
assert answer in allChoices
|
||||
return answer.lower()
|
||||
except AssertionError:
|
||||
print('Skriv inn enten', ', '.join(choices[:-1]), 'eller', choices[-1])
|
19
common/inputChecking/typeCheck.py
Normal file
19
common/inputChecking/typeCheck.py
Normal file
@ -0,0 +1,19 @@
|
||||
def inputTypeCheck(
|
||||
prompt,
|
||||
type,
|
||||
error="Kunne ikke tolke input. Har du skrevet det inn riktig?"
|
||||
):
|
||||
"""
|
||||
Typechecks an input, and only returns the input when it could be successfully parsed.
|
||||
|
||||
Parameters: \\
|
||||
prompt (str): The prompt asking the user for input \\
|
||||
type (fun): The function to be used for parsing \\
|
||||
error? (str): The message to be printed on parsing error
|
||||
"""
|
||||
while True:
|
||||
inputValue = input(prompt)
|
||||
try:
|
||||
return type(inputValue)
|
||||
except ValueError:
|
||||
print(error)
|
0
common/test/__init__.py
Normal file
0
common/test/__init__.py
Normal file
Loading…
Reference in New Issue
Block a user