-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
75 lines (61 loc) · 2.49 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import streamlit as st
from PyDictionary import PyDictionary
dictionary = PyDictionary()
'''
[github_badge]: https://badgen.net/badge/icon/GitHub?icon=github&color=black&label
[github_link]: https://github.com/daniyalas/pyDictionary-Streamllit
# pyDictionary [![GitHub][github_badge]][github_link]
'''
user_input = st.text_input(
label = "Type a word and hit Enter",
value = '',
# max_chars = None,
# key = None,
# type = "default"
)
# Translation of pyDictionary is buggy so commented out
# st.sidebar.write('### Spanish Translation:')
# st.sidebar.write(dictionary.translate(user_input, 'es'))
# Get array of all meanings of the word
meanings = dictionary.meaning(user_input)
if meanings == None:
'''Oops! Looks like we don't have any meaning for this word.'''
'''How about you try a different word?'''
else:
# pos = part of speech (for e.g. noun, verb, adj, adverb)
for pos in meanings.keys():
st.markdown(f" **_{pos.lower()}_** ") # lowercase, bold, italic
m = 1
for meaning in meanings[pos]:
st.markdown(f"{m}. {meaning}")
m += 1
st.write('') # empty line for white space
# This line creates 2 equal columns
left_column, right_column = st.beta_columns(2)
# Get array of all synonyms of the word
synonyms = dictionary.synonym(user_input)
# This 'if' condition ensures the Synonym heading doesn't appear when there's no user_input
if bool(user_input) == True:
left_column.write('### Synonyms')
# loop through the words
s = 1
for synonym in synonyms:
# left_column.write(synonym)
left_column.markdown(f"{s}. {synonym}")
s += 1
# Get array of all antonyms of the word
antonyms = dictionary.antonym(user_input)
if bool(user_input) == True:
right_column.write('### Antonyms')
# Some words don't have Antonyms. For e.g: 'hello'
if antonyms:
# loop through the words
a = 1
for antonym in antonyms:
# right_column.write(antonym)
right_column.markdown(f"{a}. {antonym}")
a += 1
else:
right_column.write('This word has no Antonyms according to dictionary.com')
st.markdown('---') # This creates a thin divider
st.markdown('This streamlit app is developed by [Daniyal A. Syed](https://www.linkedin.com/in/daniyal-as/).')