Skip to content

Commit

Permalink
Implemented smart filter
Browse files Browse the repository at this point in the history
  • Loading branch information
WouterOet committed Mar 10, 2020
1 parent b32a7c6 commit 25d37e7
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_size = 4
indent_style = space
20 changes: 18 additions & 2 deletions recent_projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,28 @@ def read_projects(most_recent_projects_file):
return targets


def smart_filter(entry, query):
previous_was_break = False
abbreviation = entry[1][0]
for char in entry[1][1: len(entry[1]): 1]:
if char == "_" or char == "-":
previous_was_break = True
else:
if previous_was_break:
abbreviation += char
previous_was_break = False
return query in entry[0] or query in abbreviation


def filter_projects(targets):
try:
query = sys.argv[2]
query = sys.argv[2].strip()
if len(query) < 1:
raise IndexError
return [t for t in targets if query in t]
targets = map(lambda t: (t, t.split('/')[-1]), targets)
results = filter(lambda t: smart_filter(t, query), targets)
results.sort(key=lambda t: (query in t[1]), reverse=True)
return map(lambda t: t[0], results)
except IndexError:
return targets

Expand Down

0 comments on commit 25d37e7

Please sign in to comment.