Skip to content

Commit

Permalink
Merge pull request #11 from SylvainDe/master
Browse files Browse the repository at this point in the history
Improving code
  • Loading branch information
OrkoHunter committed Jun 6, 2015
2 parents 80cbec0 + 66fe2aa commit 7aa4519
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 39 deletions.
10 changes: 4 additions & 6 deletions morse_talk/decoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ def decode(code, encoding_type='default'):
symbol in list(getattr(encoding, 'morsetab').items())}

if encoding_type == 'default':
message = [reversed_morsetab[i] for i in code.split()]

# For spacing the words
letters = 0
words = 0
index = {}

for i in range(0, len(code)):
for i in range(len(code)):
if code[i: i+3] == ' ':
if code[i: i+7] == ' ':
words += 1
Expand All @@ -38,10 +37,9 @@ def decode(code, encoding_type='default'):
elif code[i+4] and code[i-1] != ' ': # Check for ' '
letters += 1

count = 0
for word, letter in list(index.items()):
message.insert(letter + count, ' ')
count += 1
message = [reversed_morsetab[i] for i in code.split()]
for i, (word, letter) in enumerate(list(index.items())):
message.insert(letter + i, ' ')
return ''.join(message)

if encoding_type == 'binary':
Expand Down
37 changes: 4 additions & 33 deletions morse_talk/encoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,38 +81,9 @@ def encode(message, encoding_type='default'):
message = message.strip() # No trailing or leading spaces

if encoding_type == 'default':
char = list(message) # char is a list of all the characters in message
encoded_message = []
words_len_list = [len(word) for word in message.split()] # list of length
# of words in order of its occurence

checkpoints = []
for i in range(len(message)):
if i == ' ':
checkpoints.append(i)

counter = 0
for character in message: #for character in char:
try:
encoded_message.append(morsetab[character])

if counter in checkpoints:
encoded_message.append(' ') # end of a word
else:
encoded_message.append(' ') # end of a letter
except KeyError:
print("WARNING: Unsupported characters in the string")

return ''.join(encoded_message).rstrip(' ')
letter_sep = ' '
return letter_sep.join([morsetab.get(c, '?') for c in message])

elif encoding_type == 'binary':
encoded_message = encode(message)
converted = []
for i in encoded_message:
if i == '.':
converted.append('1')
if i == '-':
converted.append('111')
if i == ' ':
converted.append('0')
return ''.join(converted).rstrip('000')
bin_conv = { '.': '1', '-': '111', ' ': '0'}
return ''.join([bin_conv.get(i, '?') for i in encode(message)])

0 comments on commit 7aa4519

Please sign in to comment.