Browse Source

Refactor

master
JustAnotherArchivist 2 years ago
parent
commit
b2c9ea2fa4
1 changed files with 21 additions and 10 deletions
  1. +21
    -10
      alphabetseq

+ 21
- 10
alphabetseq View File

@@ -28,16 +28,24 @@ def test():
assert decimal_to_alphabet(0, '0123456789') == '0'


def convert_start_stop(s, alphabet):
if ':' in s:
valalphabet, value = s.split(':')
if not valalphabet:
valalphabet = alphabet
else:
valalphabet, value = '0123456789', s
return alphabet_to_decimal(value, valalphabet)


if __name__ == '__main__':
if len(sys.argv) == 2 and sys.argv[1] == '--test':
test()
elif len(sys.argv) == 4 or (len(sys.argv) == 5 and sys.argv[2] == '--decimal'):
if len(sys.argv) == 4:
alphabet = sys.argv[1]
start, stop = map(lambda x: alphabet_to_decimal(x, alphabet), sys.argv[2:])
else:
alphabet = sys.argv[1]
start, stop = map(int, sys.argv[3:])
elif len(sys.argv) in (3, 4):
if len(sys.argv) == 3:
sys.argv.append(sys.argv[-1])
alphabet = sys.argv[1]
start, stop = map(lambda x: convert_start_stop(x, alphabet), sys.argv[2:])
for i in range(start, stop + 1):
try:
sys.stdout.write(decimal_to_alphabet(i, alphabet) + '\n')
@@ -48,7 +56,10 @@ if __name__ == '__main__':
pass
break
else:
print('Usage: alphabetseq ALPHABET [--decimal] START STOP', file = sys.stderr)
print('Usage: alphabetseq ALPHABET START [STOP]', file = sys.stderr)
print('Generates the sequence from START to STOP (inclusive) using ALPHABET', file = sys.stderr)
print('By default, START and STOP are expressed in ALPHABET. With --decimal, they are treated as decimal values instead.', file = sys.stderr)
print('`alphabetseq 0123456789 $N $M` is equivalent to `seq $N $M`.', file = sys.stderr)
print('If STOP is omitted, it defaults to START, effectively making this a simple base transformation', file = sys.stderr)
print('START and STOP have values of the form [[VALALPHABET]:]VALUE.', file = sys.stderr)
print(' In the [VALALPHABET]:VALUE form, VALUE is expressed in terms of VALALPHABET, which defaults to ALPHABET if omitted.', file = sys.stderr)
print(' In the VALUE form, it is treated as a decimal number.', file = sys.stderr)
sys.exit(1)

Loading…
Cancel
Save