made a huge overhaul to the input validation system, it is not fully

implemented across all formats yet though. file input and output support
is partially implemented too. just saving for progress
This commit is contained in:
2025-01-19 22:19:44 -05:00
parent f85b5db7a4
commit 1b52142591
4 changed files with 353 additions and 153 deletions
+67
View File
@@ -0,0 +1,67 @@
def extractValues(color, numValues, isHex = False) :
print(color)
i = 0
tempValue = ''
extractedValues = []
if isHex :
# search for hex values
hexCharacters = ['a', 'b', 'c', 'd', 'e', 'f']
while i < len(color) :
if (color[i].isnumeric()) or (color[i] in hexCharacters) :
tempValue += color[i]
else :
tempValue = ''
if len(tempValue) == 6 :
extractedValues.append(tempValue)
tempValue = ''
if len(extractedValues) == numValues :
break
i = i + 1
if (len(extractedValues) != numValues) and (len(tempValue) == 6) :
extractedValues.append(tempValue)
else :
# search for decimal values
while i < len(color) :
if color[i].isnumeric() or color[i] == '.' :
tempValue += color[i]
elif len(tempValue) > 0 :
extractedValues.append(tempValue)
tempValue = ''
if len(extractedValues) == numValues :
break
i = i + 1
if (len(extractedValues) != numValues) and (len(tempValue) > 0) :
extractedValues.append(tempValue)
if len(extractedValues) != numValues :
print(f'Could not extract the desired number of values from input. Values requested: {numValues}, values extracted: {len(extractedValues)}, {extractedValues}')
return False
print(extractedValues)
return
def main() :
# hexcolor1 = '123abc'
# hexcolor2 = 'zx123abc def654'
# hexcolor3 = 'test sentence with hex in it: 123456, 654321, abc123, aefacd'
# extractValues(hexcolor1, 1, True)
# extractValues(hexcolor2, 1, True)
# extractValues(hexcolor2, 2, True)
# extractValues(hexcolor3, 4, True)
color1 = 'cmy(123, ba12.4, 51 )'
color2 = 't3st 123 456'
color3 = '1.23 word 3,2 1.34'
extractValues(color1, 3)
if __name__ == '__main__' :
main()