From 7b379c466dfa4bac4d7a4ed0d88e8c30452e3129 Mon Sep 17 00:00:00 2001
From: Bensong Liu <bensl@microsoft.com>
Date: Mon, 5 Oct 2020 18:03:56 +0800
Subject: [PATCH] Disallow `.` in ID string

---
 summerize-part-list/tool_search_part_user.py | 10 +++++++---
 utils.py                                     |  2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/summerize-part-list/tool_search_part_user.py b/summerize-part-list/tool_search_part_user.py
index 5ae60a1..06912ba 100644
--- a/summerize-part-list/tool_search_part_user.py
+++ b/summerize-part-list/tool_search_part_user.py
@@ -23,9 +23,13 @@ import config, xlsx_conv, utils
 
 def main():
     def contains_id(fname, _id):
-        s = xlsx_conv.read_as_csv(fname)
-        s = s.replace(' ', '').replace(',', '')
-        return s.find(_id) != -1
+        try:
+            s = xlsx_conv.read_as_csv(fname)
+            s = s.replace(' ', '').replace(',', '')
+            return s.find(_id) != -1
+        except:
+            # Catch PermissionError etc. 
+            return False
 
     if len(sys.argv) == 1:
         raise RuntimeError('Usage: drag a file into me...')
diff --git a/utils.py b/utils.py
index dc6dbf9..3b7bba8 100644
--- a/utils.py
+++ b/utils.py
@@ -40,7 +40,7 @@ def npmat_truncate_cols(mat, max_cols):
 def get_id_prefix_from_string(s):
     first_illegal_char_index = 0
     for i, c in enumerate(s.replace(' ', '')):
-        if c not in 'QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm.-':
+        if c not in 'QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm-':
             break
         else:
             first_illegal_char_index = i + 1
-- 
GitLab