pyeasyphd 0.4.1__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyeasyphd might be problematic. Click here for more details.

Files changed (53) hide show
  1. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/PKG-INFO +1 -1
  2. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/main/pandoc_md_to.py +4 -1
  3. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/main/python_run_md.py +10 -8
  4. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/pyeasyphd.sublime-settings +4 -0
  5. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/__init__.py +1 -1
  6. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_article_md.py +3 -15
  7. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_article_tex.py +1 -7
  8. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_beamer_tex.py +1 -7
  9. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_compare.py +2 -8
  10. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_format.py +2 -8
  11. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_replace.py +1 -5
  12. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_search.py +10 -17
  13. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/generate/generate_from_bibs.py +1 -3
  14. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/generate/generate_links.py +1 -1
  15. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyproject.toml +1 -1
  16. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/LICENSE +0 -0
  17. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/README.md +0 -0
  18. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/.python-version +0 -0
  19. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/Main.sublime-menu +0 -0
  20. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/__init__.py +0 -0
  21. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/csl/apa-no-ampersand.csl +0 -0
  22. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/csl/apa.csl +0 -0
  23. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/csl/ieee.csl +0 -0
  24. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Article.tex +0 -0
  25. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Article_Header.tex +0 -0
  26. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Article_Tail.tex +0 -0
  27. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Beamer_Header.tex +0 -0
  28. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Beamer_Tail.tex +0 -0
  29. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/Style.tex +0 -0
  30. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/TEVC_Header.tex +0 -0
  31. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/TEVC_Tail.tex +0 -0
  32. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/eisvogel.tex +0 -0
  33. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/math.tex +0 -0
  34. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/math_commands.tex +0 -0
  35. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/data/templates/tex/nextaimathmacros.sty +0 -0
  36. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/main/__init__.py +0 -0
  37. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/main/basic_input.py +0 -0
  38. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/main/python_run_tex.py +0 -0
  39. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/pyeasyphd.py +0 -0
  40. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/pyeasyphd.sublime-syntax +0 -0
  41. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/_base.py +0 -0
  42. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/scripts/run_generate.py +0 -0
  43. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/__init__.py +0 -0
  44. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/generate/generate_html.py +0 -0
  45. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/generate/generate_library.py +0 -0
  46. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/py_run_bib_md_tex.py +0 -0
  47. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/data.py +0 -0
  48. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/search_base.py +0 -0
  49. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/search_core.py +0 -0
  50. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/search_keywords.py +0 -0
  51. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/search_writers.py +0 -0
  52. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/tools/search/utils.py +0 -0
  53. {pyeasyphd-0.4.1 → pyeasyphd-0.4.3}/pyeasyphd/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyeasyphd
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: pyeasyphd
5
5
  License: GPL-3.0-or-later
6
6
  License-File: LICENSE
@@ -34,6 +34,7 @@ class PandocMdTo(BasicInput):
34
34
  add_anchor_for_basic_dict (bool): Whether to add anchor for items in basic dict. Defaults to False.
35
35
  add_anchor_for_beauty_dict (bool): Whether to add anchor for items in beauty dict. Defaults to False.
36
36
  add_anchor_for_complex_dict (bool): Whether to add anchor for items in complex dict. Defaults to False.
37
+ details_to_bib_separator (str): Separator between <details> and bibliography content. Defaults to "\n".
37
38
  """
38
39
 
39
40
  def __init__(self, options: dict) -> None:
@@ -59,6 +60,8 @@ class PandocMdTo(BasicInput):
59
60
  self.add_anchor_for_beauty_dict: bool = options.get("add_anchor_for_beauty_dict", False)
60
61
  self.add_anchor_for_complex_dict: bool = options.get("add_anchor_for_complex_dict", False)
61
62
 
63
+ self.details_to_bib_separator: str = options.get("details_to_bib_separator", "\n")
64
+
62
65
  def pandoc_md_to_md(
63
66
  self, path_bib: str, path_md_one: str, path_md_two: str, name_md_one: Optional[str], name_md_two: Optional[str]
64
67
  ) -> List[str]:
@@ -296,7 +299,7 @@ class PandocMdTo(BasicInput):
296
299
  self, key_url_http_bib_dict: Dict[str, List[List[str]]], key_reference_dict: Dict[str, list]
297
300
  ) -> Tuple[Dict[str, List[str]], Dict[str, List[str]], Dict[str, List[str]]]:
298
301
  """Generate."""
299
- header_list = ["<details>\n", "```\n"]
302
+ header_list = [f"<details>{self.details_to_bib_separator}", "```\n"]
300
303
  tail_list = ["```\n", "</details>\n"]
301
304
 
302
305
  key_basic_dict: Dict[str, List[str]] = {}
@@ -20,24 +20,24 @@ def batch_convert_citations(text):
20
20
  Example: [@ref1; @ref2] -> <sup>[@ref1](#ref1)</sup><sup>[@ref2](#ref2)</sup>
21
21
  """
22
22
  # Match all citation patterns within square brackets
23
- pattern = r'\[([^]]+)\]'
23
+ pattern = r"\[([^]]+)\]"
24
24
 
25
25
  def process_citation(match):
26
26
  citations = match.group(1)
27
27
  # Split multiple citations (support semicolon or comma separation)
28
- citation_list = re.split(r'[;,]', citations)
28
+ citation_list = re.split(r"[;,]", citations)
29
29
 
30
30
  result = []
31
31
  for citation in citation_list:
32
32
  citation = citation.strip()
33
- if citation.startswith('@'):
33
+ if citation.startswith("@"):
34
34
  cite_id = citation[1:] # Remove the @ symbol
35
- result.append(f'[{citation}](#{cite_id.lower()})')
35
+ result.append(f"[{citation}](#{cite_id.lower()})")
36
36
  else:
37
37
  # Keep non-citation content in original format
38
- result.append(f'[{citation}]')
38
+ result.append(f"[{citation}]")
39
39
 
40
- return ''.join(result)
40
+ return "".join(result)
41
41
 
42
42
  return re.sub(pattern, process_citation, text)
43
43
 
@@ -56,6 +56,7 @@ class PythonRunMd(BasicInput):
56
56
  replace_by_basic_beauty_complex_in_md (str): Replace by basic, beauty, or complex format. Defaults to "beauty".
57
57
  display_basic_beauty_complex_references_in_md (str): Display basic, beauty, or complex references. Defaults to "beauty".
58
58
  add_anchor_in_md (bool): Whether add anchor in markdown. Defaults to False.
59
+ details_to_bib_separator (str): Separator between <details> and bibliography content. Defaults to "\n".
59
60
  """
60
61
 
61
62
  def __init__(self, options: Dict[str, Any]) -> None:
@@ -77,6 +78,7 @@ class PythonRunMd(BasicInput):
77
78
  "display_basic_beauty_complex_references_in_md", "beauty"
78
79
  )
79
80
  self.add_anchor_in_md: bool = options.get("add_anchor_in_md", False)
81
+ self.details_to_bib_separator: str = options.get("details_to_bib_separator", "\n")
80
82
 
81
83
  # for md
82
84
  self._pandoc_md_to = PandocMdTo(self.options)
@@ -262,11 +264,11 @@ class PythonRunMd(BasicInput):
262
264
  bib_in_md = combine_content_in_list(
263
265
  [
264
266
  ["## Bibliography\n\n"],
265
- ["<details>\n<summary>Bibliography</summary>\n\n"],
267
+ [f"<details>{self.details_to_bib_separator}"],
266
268
  ["```\n"],
267
269
  temp_c,
268
270
  ["```\n"],
269
- ["</details>\n"]
271
+ ["</details>\n"],
270
272
  ]
271
273
  )
272
274
 
@@ -16,6 +16,8 @@
16
16
  "add_anchor_for_beauty_dict": false,
17
17
  // true, false
18
18
  "add_anchor_for_complex_dict": false,
19
+ // "\n" or "\n\n"
20
+ "details_to_bib_separator": "\n",
19
21
 
20
22
  // for md file
21
23
  // pyeasyphd/main/python_run_md.py
@@ -35,6 +37,8 @@
35
37
  "display_basic_beauty_complex_references_in_md": "beauty",
36
38
  // true, false
37
39
  "add_anchor_in_md": false,
40
+ // "\n" or "\n\n"
41
+ // "details_to_bib_separator": "\n",
38
42
 
39
43
  // for tex file
40
44
  // pyeasyphd/main/python_run_tex.py
@@ -15,7 +15,7 @@ __all__ = [
15
15
  "run_compare_bib_with_zotero",
16
16
  "run_format_bib_to_save_by_entry_type",
17
17
  "run_format_bib_to_abbr_zotero_save",
18
- "run_replace_to_standard_cite_keys"
18
+ "run_replace_to_standard_cite_keys",
19
19
  ]
20
20
 
21
21
  from .run_article_md import run_article_md_daily_notes
@@ -9,7 +9,7 @@ def run_article_md_daily_notes(
9
9
  path_output_file: str,
10
10
  bib_path_or_file: str,
11
11
  path_conf_j_jsons: str,
12
- options: dict
12
+ options: dict,
13
13
  ) -> None:
14
14
  """
15
15
  Run article markdown daily notes processing pipeline.
@@ -32,13 +32,11 @@ def run_article_md_daily_notes(
32
32
  _options = {
33
33
  "full_json_c": os.path.expanduser(os.path.join(path_conf_j_jsons, "conferences.json")),
34
34
  "full_json_j": os.path.expanduser(os.path.join(path_conf_j_jsons, "journals.json")),
35
-
36
35
  # figure options
37
36
  "includegraphics_figs_directory": "",
38
37
  "shutil_includegraphics_figs": False,
39
38
  "includegraphics_figs_in_relative_path": True,
40
39
  "figure_folder_name": "figs", # "" or "figs" or "main"
41
-
42
40
  # bib options
43
41
  "abbr_index_article_for_abbr": 1, # 0, 1, 2
44
42
  "abbr_index_inproceedings_for_abbr": 2, # 0, 1, 2
@@ -48,34 +46,29 @@ def run_article_md_daily_notes(
48
46
  "bib_for_abbr_name": "abbr.bib",
49
47
  "bib_for_zotero_name": "zotero.bib",
50
48
  "bib_for_save_name": "save.bib",
51
-
52
49
  "bib_folder_name": "bibs", # "" or "bib" or "bibs" or "main"
53
50
  "delete_original_bib_in_output_folder": True, # default is False
54
51
  "bib_path_or_file": os.path.expanduser(bib_path_or_file),
55
-
56
52
  # tex options
57
53
  "handly_preamble": False,
58
54
  "final_output_main_tex_name": "main.tex",
59
55
  "run_latex": False,
60
56
  "delete_run_latex_cache": False,
61
-
62
57
  "input_texs_directory": "",
63
58
  "shutil_input_texs": False, # True or False
64
59
  "input_texs_in_relative_path": True,
65
60
  "tex_folder_name": "texs", # "" or "tex" or "texs" or "main"
66
61
  "delete_original_tex_in_output_folder": True, # default is False
67
62
  "generate_tex": False,
68
-
69
63
  # md options
70
64
  # ["www", "google", "connected", "scite"]
71
65
  "display_www_google_connected_scite": ["google", "connected"], # python_writers.py
72
-
73
66
  "join_flag_in_http": " | ", # default is " | " or " |\n"
74
67
  "add_url_for_basic_dict": False, # default is True
75
68
  "add_anchor_for_basic_dict": True, # default is False
76
69
  "add_anchor_for_beauty_dict": False, # default is False
77
70
  "add_anchor_for_complex_dict": False, # default is False
78
-
71
+ "details_to_bib_separator": "\n\n", # defulat is "\n"
79
72
  "final_output_main_md_name": "main.md",
80
73
  "delete_temp_generate_md": True,
81
74
  "add_reference_in_md": True,
@@ -84,10 +77,8 @@ def run_article_md_daily_notes(
84
77
  "replace_by_basic_beauty_complex_in_md": "beauty", # default is "basic"
85
78
  "display_basic_beauty_complex_references_in_md": "basic", # default is "beauty"
86
79
  "add_anchor_in_md": True, # default is False
87
-
88
80
  "md_folder_name": "mds", # "" or "md" or "main"
89
81
  "delete_original_md_in_output_folder": True, # default is False
90
-
91
82
  # html options
92
83
  "generate_html": False,
93
84
  }
@@ -100,10 +91,7 @@ def run_article_md_daily_notes(
100
91
 
101
92
  # Generate output filenames based on input directory name (platform-independent)
102
93
  dir_name = os.path.basename(os.path.dirname(file_list[0]))
103
- _options.update({
104
- "final_output_main_tex_name": f"{dir_name}.tex",
105
- "final_output_main_md_name": f"{dir_name}.md"
106
- })
94
+ _options.update({"final_output_main_tex_name": f"{dir_name}.tex", "final_output_main_md_name": f"{dir_name}.md"})
107
95
 
108
96
  PyRunBibMdTex(path_output_file, ".md", "paper", _options).run_files(file_list, "", "current")
109
97
 
@@ -11,7 +11,7 @@ def run_article_tex_submit(
11
11
  path_output_file: str,
12
12
  bib_path_or_file: str,
13
13
  path_conf_j_jsons: str,
14
- options: dict
14
+ options: dict,
15
15
  ) -> None:
16
16
  """
17
17
  Process academic article files (TeX, and bibliography) with automated Git version control.
@@ -39,13 +39,11 @@ def run_article_tex_submit(
39
39
  _options = {
40
40
  "full_json_c": os.path.expanduser(os.path.join(path_conf_j_jsons, "conferences.json")),
41
41
  "full_json_j": os.path.expanduser(os.path.join(path_conf_j_jsons, "journals.json")),
42
-
43
42
  # figure options
44
43
  "includegraphics_figs_directory": os.path.join(path_input_file, "data", "raw"),
45
44
  "shutil_includegraphics_figs": True,
46
45
  "includegraphics_figs_in_relative_path": True,
47
46
  "figure_folder_name": "figs", # "" or "figs" or "main"
48
-
49
47
  # bib options
50
48
  "abbr_index_article_for_abbr": 1, # 0, 1, 2
51
49
  "abbr_index_inproceedings_for_abbr": 0, # 0, 1, 2
@@ -56,24 +54,20 @@ def run_article_tex_submit(
56
54
  "bib_for_zotero_name": "zotero.bib",
57
55
  "bib_for_save_name": "save.bib",
58
56
  "display_google_connected_scite": ["google", "connected", "scite"],
59
-
60
57
  "bib_folder_name": "bibs", # "" or "bib" or "bibs" or "main"
61
58
  "delete_original_bib_in_output_folder": False,
62
59
  "bib_path_or_file": os.path.expanduser(bib_path_or_file),
63
-
64
60
  # tex options
65
61
  "handly_preamble": True,
66
62
  "final_output_main_tex_name": "main.tex",
67
63
  "run_latex": False,
68
64
  "delete_run_latex_cache": False,
69
-
70
65
  "input_texs_directory": os.path.join(path_input_file, "data", "raw"),
71
66
  "shutil_input_texs": True,
72
67
  "input_texs_in_relative_path": True,
73
68
  "tex_folder_name": "texs", # "" or "tex" or "texs" or "main"
74
69
  "delete_original_tex_in_output_folder": True,
75
70
  "generate_tex": True,
76
-
77
71
  # html options
78
72
  "generate_html": False,
79
73
  }
@@ -9,7 +9,7 @@ def run_beamer_tex_weekly_reports(
9
9
  path_output_file: str,
10
10
  bib_path_or_file: str,
11
11
  path_conf_j_jsons: str,
12
- options: dict
12
+ options: dict,
13
13
  ) -> None:
14
14
  """
15
15
  Process academic article files (TeX, and bibliography) with automated Git version control.
@@ -37,13 +37,11 @@ def run_beamer_tex_weekly_reports(
37
37
  _options = {
38
38
  "full_json_c": os.path.expanduser(os.path.join(path_conf_j_jsons, "conferences.json")),
39
39
  "full_json_j": os.path.expanduser(os.path.join(path_conf_j_jsons, "journals.json")),
40
-
41
40
  # figure options
42
41
  "includegraphics_figs_directory": "",
43
42
  "shutil_includegraphics_figs": True,
44
43
  "includegraphics_figs_in_relative_path": True,
45
44
  "figure_folder_name": "figs", # "" or "figs" or "main"
46
-
47
45
  # bib options
48
46
  "abbr_index_article_for_abbr": 1, # 0, 1, 2
49
47
  "abbr_index_inproceedings_for_abbr": 0, # 0, 1, 2
@@ -54,24 +52,20 @@ def run_beamer_tex_weekly_reports(
54
52
  "bib_for_zotero_name": "zotero.bib",
55
53
  "bib_for_save_name": "save.bib",
56
54
  "display_google_connected_scite": ["google", "connected", "scite"],
57
-
58
55
  "bib_folder_name": "bibs", # "" or "bib" or "bibs" or "main"
59
56
  "delete_original_bib_in_output_folder": False,
60
57
  "bib_path_or_file": os.path.expanduser(bib_path_or_file),
61
-
62
58
  # tex options
63
59
  "handly_preamble": True,
64
60
  "final_output_main_tex_name": "main.tex",
65
61
  "run_latex": False,
66
62
  "delete_run_latex_cache": False,
67
-
68
63
  "input_texs_directory": "",
69
64
  "shutil_input_texs": False, # default is True
70
65
  "input_texs_in_relative_path": True,
71
66
  "tex_folder_name": "texs", # "" or "tex" or "texs" or "main"
72
67
  "delete_original_tex_in_output_folder": True, # default is False
73
68
  "generate_tex": True,
74
-
75
69
  # html options
76
70
  "generate_html": False,
77
71
  }
@@ -44,11 +44,7 @@ def run_compare_bib_with_local(
44
44
 
45
45
 
46
46
  def run_compare_bib_with_zotero(
47
- options: dict,
48
- need_compare_bib: str,
49
- zotero_bib: str,
50
- path_output: str,
51
- path_conf_j_jsons: str,
47
+ options: dict, need_compare_bib: str, zotero_bib: str, path_output: str, path_conf_j_jsons: str
52
48
  ) -> None:
53
49
  """
54
50
  Compare a target bibliography file with Zotero bibliography data and generate comparison results.
@@ -67,9 +63,7 @@ def run_compare_bib_with_zotero(
67
63
  None: Results are written to files in the specified output directory
68
64
  """
69
65
  # Expand and normalize file paths
70
- need_compare_bib, zotero_bib, path_output = expand_paths(
71
- need_compare_bib, zotero_bib, path_output
72
- )
66
+ need_compare_bib, zotero_bib, path_output = expand_paths(need_compare_bib, zotero_bib, path_output)
73
67
 
74
68
  # Update options
75
69
  options_ = build_base_options([], [], ["arXiv"], [], path_conf_j_jsons)
@@ -6,10 +6,7 @@ from ._base import build_base_options, expand_paths
6
6
 
7
7
 
8
8
  def run_format_bib_to_save_by_entry_type(
9
- options: dict,
10
- need_format_bib: str,
11
- path_output: str,
12
- path_conf_j_jsons: str,
9
+ options: dict, need_format_bib: str, path_output: str, path_conf_j_jsons: str
13
10
  ) -> None:
14
11
  """
15
12
  Format a bibliography file by organizing entries according to their entry types and save the results.
@@ -38,10 +35,7 @@ def run_format_bib_to_save_by_entry_type(
38
35
 
39
36
 
40
37
  def run_format_bib_to_abbr_zotero_save(
41
- options: dict,
42
- need_format_bib: str,
43
- path_output: str,
44
- path_conf_j_jsons: str,
38
+ options: dict, need_format_bib: str, path_output: str, path_conf_j_jsons: str
45
39
  ) -> None:
46
40
  """
47
41
  Format a bibliography file into three different modes: abbreviated, Zotero-compatible, and cleaned source.
@@ -6,11 +6,7 @@ from ._base import build_base_options, expand_paths
6
6
 
7
7
 
8
8
  def run_replace_to_standard_cite_keys(
9
- full_tex_md: str,
10
- full_bib: str,
11
- path_output: str,
12
- path_conf_j_jsons: str,
13
- options: Optional[dict] = None,
9
+ full_tex_md: str, full_bib: str, path_output: str, path_conf_j_jsons: str, options: Optional[dict] = None
14
10
  ) -> None:
15
11
  """
16
12
  Replace citation keys in LaTeX documents with standardized versions.
@@ -10,12 +10,7 @@ from ._base import build_base_options, build_search_options, expand_path, expand
10
10
 
11
11
 
12
12
  def run_search_for_screen(
13
- acronym: str,
14
- year: int,
15
- title: str,
16
- path_spidered_bibs: str,
17
- path_spidering_bibs: str,
18
- path_conf_j_jsons: str,
13
+ acronym: str, year: int, title: str, path_spidered_bibs: str, path_spidering_bibs: str, path_conf_j_jsons: str
19
14
  ) -> None:
20
15
  """
21
16
  Run search for screen display with specific conference/journal parameters.
@@ -51,7 +46,7 @@ def run_search_for_screen(
51
46
  print_on_screen=True,
52
47
  search_year_list=search_year_list, # Empty list for all years, otherwise specific year
53
48
  keywords_type="Temp",
54
- keywords_list_list=[[title]] # Use title as search keyword
49
+ keywords_list_list=[[title]], # Use title as search keyword
55
50
  ),
56
51
  }
57
52
 
@@ -70,7 +65,7 @@ def run_search_for_files(
70
65
  path_conf_j_jsons: str,
71
66
  search_in_spidered_bibs: bool = False,
72
67
  search_in_spidering_bibs: bool = True,
73
- options: Optional[dict] = None
68
+ options: Optional[dict] = None,
74
69
  ) -> None:
75
70
  """
76
71
  Run search and save results to files with custom keywords.
@@ -100,14 +95,14 @@ def run_search_for_files(
100
95
  options_ = {
101
96
  **build_base_options(
102
97
  include_publisher_list=[], # No specific publishers to include
103
- include_abbr_list=[], # No specific conference/journal abbreviations to include
98
+ include_abbr_list=[], # No specific conference/journal abbreviations to include
104
99
  exclude_publisher_list=["arXiv"], # Exclude arXiv publications from search
105
- exclude_abbr_list=[], # No specific conference/journal abbreviations to exclude
100
+ exclude_abbr_list=[], # No specific conference/journal abbreviations to exclude
106
101
  path_conf_j_jsons=path_conf_j_jsons, # Path to conference/journal metadata
107
102
  ),
108
103
  **build_search_options(
109
- print_on_screen=False, # Disable screen output (results go to files only)
110
- search_year_list=[], # Empty list means search all years (no year filtering)
104
+ print_on_screen=False, # Disable screen output (results go to files only)
105
+ search_year_list=[], # Empty list means search all years (no year filtering)
111
106
  keywords_type=keywords_type, # Use provided keyword category for result organization
112
107
  keywords_list_list=keywords_list_list, # Use provided nested keyword lists for searching
113
108
  ),
@@ -121,8 +116,8 @@ def run_search_for_files(
121
116
  path_main_output,
122
117
  path_spidered_bibs,
123
118
  path_spidering_bibs,
124
- search_in_spidered_bibs, # Flag to control spidered bibliography search
125
- search_in_spidering_bibs # Flag to control spidering bibliography search
119
+ search_in_spidered_bibs, # Flag to control spidered bibliography search
120
+ search_in_spidering_bibs, # Flag to control spidering bibliography search
126
121
  )
127
122
 
128
123
  return None
@@ -172,9 +167,7 @@ def _execute_searches(
172
167
  return None
173
168
 
174
169
 
175
- def run_compare_after_search(
176
- zotero_bib: str, keywords_type: str, path_main_output: str, path_conf_j_jsons: str
177
- ):
170
+ def run_compare_after_search(zotero_bib: str, keywords_type: str, path_main_output: str, path_conf_j_jsons: str):
178
171
  """
179
172
  Compare search results with Zotero bibliography and generate comparison report.
180
173
 
@@ -117,9 +117,7 @@ def generate_from_bibs_and_write(
117
117
  path_abbr = os.path.join(root, files[0])
118
118
 
119
119
  # Generate and process library
120
- library = generate_library_by_filters(
121
- path_abbr, issue_or_month_flag, year_flag, new_options
122
- )
120
+ library = generate_library_by_filters(path_abbr, issue_or_month_flag, year_flag, new_options)
123
121
 
124
122
  # Generate md, tex, pdf, html
125
123
  html_body = generate_html_from_bib_data(abbr, library, pp, new_options)
@@ -320,7 +320,7 @@ class PaperLinksGenerator(object):
320
320
  for abbr in keyword_publisher_abbr[keyword][publisher]:
321
321
  lines = []
322
322
  for ff in folder_flags:
323
- ll = os.path.join(folder_name, cj.title(), ff, publisher.lower(), abbr, f'{abbr}.html')
323
+ ll = os.path.join(folder_name, cj.title(), ff, publisher.lower(), abbr, f"{abbr}.html")
324
324
  if os.path.exists(os.path.join(self.data_base_path, ll)):
325
325
  lines.append(f"[Link]({ll})")
326
326
  else:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyeasyphd"
3
- version = "0.4.1"
3
+ version = "0.4.3"
4
4
  description = "pyeasyphd"
5
5
  license = "GPL-3.0-or-later"
6
6
  authors = ["NextAI <nextartifintell@gmail.com>"]
File without changes
File without changes