Skip to content

Commit f714dc2

Browse files
committed
added some type annotations
1 parent 80bd2c2 commit f714dc2

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

leetcode.py

+27-26
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22

33
import webbrowser
44
from os import getcwd
5-
from tkinter import ttk, StringVar, BooleanVar, Tk, N, W, E, S
5+
from tkinter import BooleanVar, E, N, S, StringVar, Tk, W, ttk
6+
from typing import Literal
67

78
import pandas as pd
89

910

1011
class Leetcode:
11-
12-
def __init__(self, root):
13-
12+
def __init__(self, root) -> None:
1413
self.read_ratings()
15-
self.df = self.data
14+
self.df: pd.DataFrame = self.data
1615
self.set_longest_title()
1716

1817
root.title("Leetcode problem opener")
@@ -60,7 +59,10 @@ def __init__(self, root):
6059
goto_entry.grid(column=5, row=3, sticky=(W, E))
6160

6261
self.goto_combovar = StringVar()
63-
self.goto_combovar_values = ("ID", "Problem index")
62+
self.goto_combovar_values: tuple[Literal["ID"], Literal["Problem index"]] = (
63+
"ID",
64+
"Problem index",
65+
)
6466
goto_combo = ttk.Combobox(
6567
mainframe, textvariable=self.goto_combovar, width=15, state="readonly"
6668
)
@@ -115,8 +117,8 @@ def __init__(self, root):
115117
# root.bind("<Left>", self.show_prev_prob())
116118
# root.bind("<Right>", self.show_next_prob())
117119

118-
def set_by_index(self):
119-
self.problem_index = max(self.problem_index, 0)
120+
def set_by_index(self) -> None:
121+
self.problem_index: int = max(self.problem_index, 0)
120122
self.problem_index = min(self.problem_index, len(self.df) - 1)
121123
self.problem_id.set(self.df["ID"].iloc[self.problem_index])
122124
self.problem_name.set(self.df["Title"].iloc[self.problem_index])
@@ -125,24 +127,24 @@ def set_by_index(self):
125127
)
126128
self.problem_diff.set(self.df["Difficulty"].iloc[self.problem_index])
127129

128-
def set_by_ID(self):
130+
def set_by_ID(self) -> None:
129131
number = int(self.goto_choice.get()) # 0-indexed vs 1-indexed
130132

131-
index = self.df.index[self.df["ID"] == number]
133+
index: pd.Index = self.df.index[self.df["ID"] == number]
132134

133135
if not index.empty:
134136
self.problem_index = index[0]
135137
self.set_by_index()
136138

137-
def goto_problem(self):
139+
def goto_problem(self) -> None:
138140
try:
139-
number = int(self.goto_choice.get()) - 1
141+
number: int = int(self.goto_choice.get()) - 1
140142
except ValueError:
141143
return
142144

143145
# todo - validation https://tkdocs.com/tutorial/widgets.html#entry
144146

145-
label = self.goto_combovar.get()
147+
label: str = self.goto_combovar.get()
146148

147149
if label == self.goto_combovar_values[0]: # self.goto_combovar_values == "ID"
148150
self.set_by_ID()
@@ -154,43 +156,42 @@ def goto_problem(self):
154156
self.problem_index = number
155157
self.set_by_index()
156158

157-
def set_longest_title(self):
159+
def set_longest_title(self) -> None:
158160
# get there by index - useful for extracting title itself
159161
# idx = self.df.Title.str.len().idxmax()
160162
# longest_title = self.df["Title"][idx]
161163
# len(longest_title)
162164

163-
lngst_title = self.df.Title.str.len().max()
165+
lngst_title: int = self.df.Title.str.len().max()
164166
# same as self.df["Title"].str.len().max()
165167

166-
self.longest_title = lngst_title
168+
self.longest_title: int = lngst_title
167169

168-
def read_ratings(self):
169-
path = getcwd() + "/data/" + "data.txt"
170-
self.data = pd.read_csv(path)
170+
def read_ratings(self) -> None:
171+
path: str = getcwd() + "/data/" + "data.txt"
172+
self.data: pd.DataFrame = pd.read_csv(path)
171173

172-
def save_ratings(self):
174+
def save_ratings(self) -> None:
173175
# TODO document why this method is empty
174176
pass
175177

176-
def open_problem(self):
178+
def open_problem(self) -> None:
177179
problem_slug = self.df["Title Slug"].iloc[
178180
self.problem_index
179181
] # 0-indexed vs 1-indexed
180182
urlpath = "https:/www.leetcode.com/problems/" + problem_slug
181183
webbrowser.open(urlpath)
182184

183-
def show_next_prob(self):
185+
def show_next_prob(self) -> None:
184186
self.problem_index += 1
185187
self.set_by_index()
186188

187-
def show_prev_prob(self):
189+
def show_prev_prob(self) -> None:
188190
self.problem_index -= 1
189191
self.set_by_index()
190192

191-
def set_show_status(self):
192-
193-
temp_df = self.data
193+
def set_show_status(self) -> None:
194+
temp_df: pd.DataFrame = self.data
194195

195196
if not self.show_ac_var.get():
196197
temp_df = temp_df.loc[temp_df["status"] != "ac"]

0 commit comments

Comments
 (0)