From 942447ab5d955a8c5a79943864d69d92602c5254 Mon Sep 17 00:00:00 2001 From: Yongtao Huang Date: Fri, 25 Apr 2025 16:48:03 +0800 Subject: [PATCH 1/6] Create pylint.yml --- .github/workflows/pylint.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/pylint.yml diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml new file mode 100644 index 0000000..6233948 --- /dev/null +++ b/.github/workflows/pylint.yml @@ -0,0 +1,23 @@ +name: Pylint + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.12"] + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pylint + - name: Analysing the code with pylint + run: | + pylint $(git ls-files '*.py') From fe26d48eac702f58d953536733f115969cb9fb40 Mon Sep 17 00:00:00 2001 From: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com> Date: Sun, 27 Apr 2025 11:07:21 +0800 Subject: [PATCH 2/6] Post fix --- mind/generator.py | 3 +-- mind/mm_generator.py | 4 ++-- mind/svg_generator.py | 2 +- pdf/pdf_reader.py | 2 +- pdf2mind.py | 3 ++- utils/parser.py | 2 +- utils/utils.py | 15 +++++++-------- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/mind/generator.py b/mind/generator.py index d520118..54a40ed 100644 --- a/mind/generator.py +++ b/mind/generator.py @@ -15,7 +15,7 @@ def gen_all_mindmaps(markdown_content, file_name, only_what): md_name = output_name + ".md" mm_name = output_name + ".mm" svg_name = output_name - + match only_what: case 0: generate_md(markdown_content, md_name) @@ -27,4 +27,3 @@ def gen_all_mindmaps(markdown_content, file_name, only_what): generate_freemind(markdown_content, mm_name) case 3: generate_svg(markdown_content, svg_name) - diff --git a/mind/mm_generator.py b/mind/mm_generator.py index c6daf9b..8dfad19 100644 --- a/mind/mm_generator.py +++ b/mind/mm_generator.py @@ -54,9 +54,9 @@ def generate_freemind(md_text, output_file="freemind-output.mm"): for item in tree_data: build_freemind_node(root, item) tree = ET.ElementTree(root) - + try: - with open(output_file, 'w', encoding='utf-8') as file: + with open(output_file, 'w', encoding='utf-8'): tree.write(output_file, encoding="utf-8", xml_declaration=True) logger.info(f"✅ The freemind mind map has been successfully generated: {output_file}") except IOError: diff --git a/mind/svg_generator.py b/mind/svg_generator.py index ce31bae..652405f 100644 --- a/mind/svg_generator.py +++ b/mind/svg_generator.py @@ -59,7 +59,7 @@ def tree_to_svg(nodes, output_file="mindmap"): dot.edge(node["parent"], node_id) dot.render(output_file, view=False) -def generate_svg(md_text, output_file="mindmap"): +def generate_svg(md_text, output_file="mindmap"): tree = parse_markdown(md_text) # TODO try catch here tree_to_svg(tree, output_file) diff --git a/pdf/pdf_reader.py b/pdf/pdf_reader.py index 101420b..e05dbf2 100644 --- a/pdf/pdf_reader.py +++ b/pdf/pdf_reader.py @@ -25,7 +25,7 @@ async def extract_and_feed_chunks(self, args, queue: asyncio.Queue): pdf_name = str(args.pdf) chunk_size = getattr(args, 'chunk_size', None) overlap_size = getattr(args, 'overlap_size', None) - + kwargs = {} if chunk_size is not None: kwargs['chunk_size'] = int(chunk_size) diff --git a/pdf2mind.py b/pdf2mind.py index 866450f..c1e5fbe 100644 --- a/pdf2mind.py +++ b/pdf2mind.py @@ -1,7 +1,8 @@ import asyncio -from utils.parser import cmd_parser + from pdf.pdf_reader import PdfProcess from mind.generator import gen_all_mindmaps +from utils.parser import cmd_parser from utils.utils import model_selector, format_selector diff --git a/utils/parser.py b/utils/parser.py index 6ad0b0c..3ff682b 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -67,6 +67,6 @@ def cmd_parser(): logger.info(f"🌍 Target language: {language}") logger.info(f"🧠 Selected vender: {vender}") logger.info(f"🤖 Model name: {model}\n") - + args = parser.parse_args() return args diff --git a/utils/utils.py b/utils/utils.py index 95e57c3..f46138a 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -1,8 +1,7 @@ - from llm.base_llm import BaseLLM from llm.doubao_llm import DoubaoLLM -from llm.qwen_llm import QwenLLM from llm.openai_llm import OpenaiLLM +from llm.qwen_llm import QwenLLM def model_selector(args) -> BaseLLM: # set default @@ -11,19 +10,19 @@ def model_selector(args) -> BaseLLM: if getattr(args, 'use_doubao', False): return DoubaoLLM(args.model, args.language, max_level, temperature) - elif getattr(args, 'use_qwen', False): + if getattr(args, 'use_qwen', False): return QwenLLM(args.model, args.language, max_level, temperature) - elif getattr(args, 'use_openai', False): + if getattr(args, 'use_openai', False): return OpenaiLLM(args.model, args.language, max_level, temperature) - else: - raise ValueError("Please at least set one of --use-doubao、--use-qwen or --use-openai") + + raise ValueError("Please at least set one of --use-doubao、--use-qwen or --use-openai") def format_selector(args) -> int: if args.only_freemind: return 1 - elif args.only_xmind: + if args.only_xmind: return 2 - elif args.only_svg: + if args.only_svg: return 3 return 0 From d94948ba6d765733fecd822b71599b5b77247d89 Mon Sep 17 00:00:00 2001 From: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com> Date: Sun, 27 Apr 2025 11:14:46 +0800 Subject: [PATCH 3/6] Post fix --- pdf2mind.py | 2 +- utils/parser.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pdf2mind.py b/pdf2mind.py index c1e5fbe..e349002 100644 --- a/pdf2mind.py +++ b/pdf2mind.py @@ -2,7 +2,7 @@ from pdf.pdf_reader import PdfProcess from mind.generator import gen_all_mindmaps -from utils.parser import cmd_parser +from utils.parser import cmd_parser from utils.utils import model_selector, format_selector diff --git a/utils/parser.py b/utils/parser.py index 3ff682b..e648d7e 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -58,7 +58,7 @@ def cmd_parser(): # Should not happen due to required=True vender = "Unknown" - if not llm_key: + if not llm_key: # pylint: disable=possibly-used-before-assignment logger.info("Error: LLM API Key is required. Please provide it via --key argument or set the XXX_API_KEY environment variable.") sys.exit(1) From a2f558b8cdf72bf711eabae8daca4c4a5fe552a7 Mon Sep 17 00:00:00 2001 From: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com> Date: Sun, 27 Apr 2025 11:15:05 +0800 Subject: [PATCH 4/6] Support pylintrc --- .pylintrc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .pylintrc diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..39bdbf5 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,18 @@ +[MAIN] +ignore=venv + +[MESSAGES CONTROL] +disable= + C0114, # missing-module-docstring + C0115, # missing-class-docstring + C0116, # missing-function-docstring + C0301, # line-too-long + R0903, # too-few-public-methods + R0913, # too-many-arguments + R0917, # too-many-positional-arguments + R0801, # duplicate-code + W1203, # logging-fstring-interpolation + W0511, # fixme + +[REPORTS] +reports=no From 98911cb3915fd656a27c34eec4b7da403d7d75d3 Mon Sep 17 00:00:00 2001 From: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com> Date: Sun, 27 Apr 2025 11:20:37 +0800 Subject: [PATCH 5/6] Post fix --- .github/workflows/pylint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 6233948..55590d1 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -20,4 +20,4 @@ jobs: pip install pylint - name: Analysing the code with pylint run: | - pylint $(git ls-files '*.py') + pylint . From 548febe0f30836a21aed36fc23222adb08034b16 Mon Sep 17 00:00:00 2001 From: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com> Date: Sun, 27 Apr 2025 11:22:35 +0800 Subject: [PATCH 6/6] Post fix --- .pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.pylintrc b/.pylintrc index 39bdbf5..abf5ed7 100644 --- a/.pylintrc +++ b/.pylintrc @@ -7,6 +7,7 @@ disable= C0115, # missing-class-docstring C0116, # missing-function-docstring C0301, # line-too-long + E0401, # import-error R0903, # too-few-public-methods R0913, # too-many-arguments R0917, # too-many-positional-arguments