From 3b63731ea228a35ca6f8dd531e72750023e253e6 Mon Sep 17 00:00:00 2001
From: Recolic Keghart <root@recolic.net>
Date: Fri, 1 May 2020 22:10:40 +0800
Subject: [PATCH] add a tool

---
 summerize-part-list/tool_search_part_user.py | 52 ++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 summerize-part-list/tool_search_part_user.py

diff --git a/summerize-part-list/tool_search_part_user.py b/summerize-part-list/tool_search_part_user.py
new file mode 100644
index 0000000..938bd37
--- /dev/null
+++ b/summerize-part-list/tool_search_part_user.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python3
+# A script to deal with product sheet. (see test-*.xlsx)
+# Workaround for fucking Windows NT
+import traceback
+def show_exception_and_exit(exc_type, exc_value, tb):
+    traceback.print_exception(exc_type, exc_value, tb) 
+    input("Press any key to exit.")
+    sys.exit(-1)
+
+import sys 
+import os, shutil
+if os.name == 'nt':
+    sys.excepthook = show_exception_and_exit
+
+# Allow import parent
+import os,sys,inspect
+currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
+parentdir = os.path.dirname(currentdir)
+sys.path.insert(0,parentdir)
+
+################################### BEGIN #####################################
+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
+
+    if len(sys.argv) == 1:
+        raise RuntimeError('Usage: drag a file into me...')
+    target_filename = os.path.basename(sys.argv[1])
+    target_id = utils.get_id_prefix_from_string(target_filename)
+    results = []
+
+    print('Iterating... Please wait...')
+    is_xlsx = lambda fname: fname.endswith('.xlsm') or fname.endswith('.xlsx') or fname.endswith('.xls') or fname.endswith('.XLSM') or fname.endswith('.XLSX') or fname.endswith('.XLS')
+    for (dirpath, dirnames, filenames) in os.walk(config.library_path):
+        for fname in filenames:
+            if is_xlsx(fname):
+                if contains_id(dirpath + os.path.sep + fname, target_id):
+                    results.append(fname)
+        # if config.search_only_top_level_directory:
+        #     break
+
+    if config.working_dir != "": 
+        os.chdir(config.working_dir)
+    print(results)
+    with open(target_id + '被引用处.csv', 'w+') as f:
+        f.write(',\n'.join(results))
+
+main()
-- 
GitLab