pyeasyphd 0.0.2__py3-none-any.whl

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 (80) hide show
  1. pyeasyphd/.python-version +1 -0
  2. pyeasyphd/Main.sublime-menu +43 -0
  3. pyeasyphd/__init__.py +0 -0
  4. pyeasyphd/bib/__init__.py +1 -0
  5. pyeasyphd/bib/bibtexbase/__init__.py +7 -0
  6. pyeasyphd/bib/bibtexbase/standardize/_base.py +36 -0
  7. pyeasyphd/bib/bibtexbase/standardize/default_data.py +97 -0
  8. pyeasyphd/bib/bibtexbase/standardize/do_on_bib.py +54 -0
  9. pyeasyphd/bib/bibtexbase/standardize/do_on_comment_block.py +38 -0
  10. pyeasyphd/bib/bibtexbase/standardize/do_on_entry_block.py +310 -0
  11. pyeasyphd/bib/bibtexbase/standardize/do_on_preamble_block.py +35 -0
  12. pyeasyphd/bib/bibtexbase/standardize/do_on_string_block.py +34 -0
  13. pyeasyphd/bib/bibtexbase/standardize_bib.py +75 -0
  14. pyeasyphd/bib/bibtexparser/__init__.py +47 -0
  15. pyeasyphd/bib/bibtexparser/bibtex_format.py +87 -0
  16. pyeasyphd/bib/bibtexparser/exceptions.py +64 -0
  17. pyeasyphd/bib/bibtexparser/library.py +207 -0
  18. pyeasyphd/bib/bibtexparser/middlewares/block/add.py +94 -0
  19. pyeasyphd/bib/bibtexparser/middlewares/block/authors.py +22 -0
  20. pyeasyphd/bib/bibtexparser/middlewares/block/doi_url.py +62 -0
  21. pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_normalize.py +47 -0
  22. pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_replace.py +31 -0
  23. pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_values_normalize.py +222 -0
  24. pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_delete.py +34 -0
  25. pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_keep.py +33 -0
  26. pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_sort.py +70 -0
  27. pyeasyphd/bib/bibtexparser/middlewares/block/entry_types.py +15 -0
  28. pyeasyphd/bib/bibtexparser/middlewares/block/journal_booktitle.py +113 -0
  29. pyeasyphd/bib/bibtexparser/middlewares/block/month_year.py +34 -0
  30. pyeasyphd/bib/bibtexparser/middlewares/block/number_volume.py +21 -0
  31. pyeasyphd/bib/bibtexparser/middlewares/block/pages.py +28 -0
  32. pyeasyphd/bib/bibtexparser/middlewares/block/title.py +20 -0
  33. pyeasyphd/bib/bibtexparser/middlewares/library/generating_entrykeys.py +98 -0
  34. pyeasyphd/bib/bibtexparser/middlewares/library/keeping_blocks.py +29 -0
  35. pyeasyphd/bib/bibtexparser/middlewares/library/sorting_blocks.py +124 -0
  36. pyeasyphd/bib/bibtexparser/middlewares/middleware.py +222 -0
  37. pyeasyphd/bib/bibtexparser/middlewares/parsestack.py +13 -0
  38. pyeasyphd/bib/bibtexparser/middlewares/utils.py +226 -0
  39. pyeasyphd/bib/bibtexparser/middlewares_library_to_library.py +414 -0
  40. pyeasyphd/bib/bibtexparser/middlewares_library_to_str.py +42 -0
  41. pyeasyphd/bib/bibtexparser/middlewares_str_to_library.py +35 -0
  42. pyeasyphd/bib/bibtexparser/middlewares_str_to_str.py +29 -0
  43. pyeasyphd/bib/bibtexparser/model.py +481 -0
  44. pyeasyphd/bib/bibtexparser/splitter.py +151 -0
  45. pyeasyphd/bib/core/__init__.py +18 -0
  46. pyeasyphd/bib/core/convert_library_to_library.py +31 -0
  47. pyeasyphd/bib/core/convert_library_to_str.py +199 -0
  48. pyeasyphd/bib/core/convert_str_to_library.py +34 -0
  49. pyeasyphd/bib/core/convert_str_to_str.py +27 -0
  50. pyeasyphd/main/__init__.py +17 -0
  51. pyeasyphd/main/basic_input.py +149 -0
  52. pyeasyphd/main/pandoc_md_to.py +361 -0
  53. pyeasyphd/main/python_run_bib.py +73 -0
  54. pyeasyphd/main/python_run_md.py +235 -0
  55. pyeasyphd/main/python_run_tex.py +149 -0
  56. pyeasyphd/main/python_writers.py +212 -0
  57. pyeasyphd/pyeasyphd.py +72 -0
  58. pyeasyphd/pyeasyphd.sublime-settings +235 -0
  59. pyeasyphd/pyeasyphd.sublime-syntax +5 -0
  60. pyeasyphd/tools/__init__.py +30 -0
  61. pyeasyphd/tools/compare/compare_bibs.py +234 -0
  62. pyeasyphd/tools/experiments_base.py +203 -0
  63. pyeasyphd/tools/format_save_bibs.py +178 -0
  64. pyeasyphd/tools/generate/generate_from_bibs.py +447 -0
  65. pyeasyphd/tools/generate/generate_links.py +356 -0
  66. pyeasyphd/tools/py_run_bib_md_tex.py +378 -0
  67. pyeasyphd/tools/replace/replace.py +81 -0
  68. pyeasyphd/tools/search/data.py +318 -0
  69. pyeasyphd/tools/search/search_base.py +118 -0
  70. pyeasyphd/tools/search/search_core.py +326 -0
  71. pyeasyphd/tools/search/search_keywords.py +227 -0
  72. pyeasyphd/tools/search/search_writers.py +288 -0
  73. pyeasyphd/tools/search/utils.py +152 -0
  74. pyeasyphd/tools/spider/process_spider_bib.py +247 -0
  75. pyeasyphd/tools/spider/process_spider_url.py +74 -0
  76. pyeasyphd/tools/spider/process_spider_url_bib.py +62 -0
  77. pyeasyphd/utils/utils.py +62 -0
  78. pyeasyphd-0.0.2.dist-info/METADATA +27 -0
  79. pyeasyphd-0.0.2.dist-info/RECORD +80 -0
  80. pyeasyphd-0.0.2.dist-info/WHEEL +4 -0
@@ -0,0 +1,74 @@
1
+ import os
2
+ import re
3
+ from typing import Dict, List
4
+
5
+ from pyadvtools import IterateSortDict, read_list, sort_int_str, write_list
6
+
7
+
8
+ class ProcessSpiderUrl(object):
9
+ """Process spider URL.
10
+
11
+ Args:
12
+ path_abbr (str): path to abbreviation
13
+ abbr_standard (str): abbreviation standard
14
+
15
+ Attributes:
16
+ path_abbr (str): path to abbreviation
17
+ abbr_standard (str): abbreviation standard
18
+ """
19
+
20
+ def __init__(self, path_abbr, abbr_standard: str) -> None:
21
+ self.path_abbr = os.path.expandvars(os.path.expanduser(path_abbr))
22
+ self.abbr_standard = abbr_standard
23
+
24
+ def check_spider_url(
25
+ self,
26
+ folder_start_swith: str = "url",
27
+ extension: str = ".txt",
28
+ write_flag: bool = False,
29
+ iterate_check_url: bool = False,
30
+ ) -> None:
31
+ if os.path.exists(self.path_abbr):
32
+ for i in [f for f in os.listdir(self.path_abbr) if f.startswith(folder_start_swith)]:
33
+ print("*" * 5 + f" Check *{extension} ./{os.path.basename(self.path_abbr)}/{i}")
34
+ self._check_delete(os.path.join(self.path_abbr, i), extension, write_flag, iterate_check_url)
35
+
36
+ def _check_delete(
37
+ self, path_storage: str, extension: str = ".txt", write_flag: bool = False, iterate_check_url: bool = False
38
+ ) -> None:
39
+ data_dict: Dict[str, Dict[str, List[str]]] = {}
40
+ files = [f for f in os.listdir(path_storage) if f.endswith(extension)]
41
+ for f in files:
42
+ mch = re.match(r"([a-zA-Z]+)_([\w\-]+)", f)
43
+ if mch:
44
+ a, b = mch.groups()
45
+ data_dict.setdefault(a, {}).setdefault(b, []).extend(read_list(f, "r", path_storage))
46
+
47
+ for a in IterateSortDict(False).dict_update(data_dict):
48
+ b_list = sort_int_str(list(data_dict[a].keys()))
49
+
50
+ for b in b_list:
51
+ new_temp_list: List[str] = []
52
+ duplicate_dict: Dict[str, List[str]] = {}
53
+ for line in data_dict[a][b]:
54
+ line_flag = False
55
+ if iterate_check_url:
56
+ for bb in b_list[: b_list.index(b)]:
57
+ if line in data_dict[a][bb]:
58
+ duplicate_dict.setdefault(f"{a}_{b} and {a}_{bb}", []).append(line.strip())
59
+ line_flag = True
60
+ break
61
+
62
+ if (not line_flag) and (line not in new_temp_list):
63
+ new_temp_list.append(line)
64
+ elif line in new_temp_list:
65
+ print(f"Duplicate item {line.strip()} in {a}_{b}{extension}.\n")
66
+
67
+ data_dict[a][b] = new_temp_list
68
+
69
+ if duplicate_dict:
70
+ print(f"Duplicate items in {extension}:\n", duplicate_dict)
71
+
72
+ if write_flag:
73
+ write_list(new_temp_list, f"{a}_{b}{extension}", "w", path_storage, False, True, True, True)
74
+ return None
@@ -0,0 +1,62 @@
1
+ import os
2
+ from typing import Any, Dict
3
+
4
+ from pyadvtools import standard_path
5
+
6
+ from ..experiments_base import generate_standard_publisher_abbr_options_dict
7
+ from ..spider.process_spider_bib import ProcessSpiderBib
8
+ from ..spider.process_spider_url import ProcessSpiderUrl
9
+
10
+
11
+ class CheckDeleteFormatMoveSpideredBibs(object):
12
+ """Experiment for check.
13
+
14
+ Args:
15
+ path_storage (str): path to storage
16
+ path_shutil (str): path to shutil
17
+ options (Dict[str, Any]): options for check, delete, format
18
+
19
+ Attributes:
20
+ path_storage (str): path to storage
21
+ path_shutil (str): path to shutil
22
+ publisher_abbr_dict (Dict[str, Dict[str, Any]]): publisher abbreviation options dict
23
+ """
24
+
25
+ def __init__(self, path_storage: str, path_shutil: str, options: Dict[str, Any]) -> None:
26
+ self.path_storage = standard_path(path_storage)
27
+ self.path_shutil = standard_path(path_shutil)
28
+ self.publisher_abbr_dict = generate_standard_publisher_abbr_options_dict(self.path_storage, options)
29
+
30
+ def check_delete_format_move(self) -> None:
31
+ publisher_abbr_dict = self.publisher_abbr_dict
32
+ for publisher in self.publisher_abbr_dict:
33
+ for abbr_standard in publisher_abbr_dict[publisher]:
34
+ self._check_format_check_move(publisher, abbr_standard, publisher_abbr_dict[publisher][abbr_standard])
35
+
36
+ def _check_format_check_move(self, publisher: str, abbr_standard: str, options: Dict[str, Any]) -> None:
37
+ path_abbr = os.path.join(self.path_storage, f"{publisher.lower()}/{abbr_standard}")
38
+
39
+ # for urls
40
+ if options.get("check_duplicate_url", False) is True:
41
+ ddu = options.get("delete_duplicate_url", False)
42
+ icdu = options.get("iterate_check_duplicate_url", False)
43
+ for extension in [".txt", ".csv"]:
44
+ ProcessSpiderUrl(path_abbr, abbr_standard).check_spider_url("url", extension, ddu, icdu)
45
+
46
+ # for bibs
47
+ if options.get("format_bib", False) is True:
48
+ wb = options.get("write_bib", False)
49
+ ProcessSpiderBib(path_abbr, abbr_standard).format_spider_bib(wb)
50
+
51
+ if options.get("check_duplicate_bib", False) is True:
52
+ ddb = options.get("delete_duplicate_bib", False)
53
+ ProcessSpiderBib(path_abbr, abbr_standard).check_spider_bib(ddb)
54
+
55
+ if options.get("move_bib", False) is True:
56
+ ps = os.path.join(self.path_shutil, publisher.lower())
57
+ ProcessSpiderBib(path_abbr, abbr_standard).move_spider_bib(ps)
58
+
59
+ # for early access
60
+ if options.get("early_access", False):
61
+ ProcessSpiderBib(path_abbr, abbr_standard).simplify_early_access()
62
+ return None
@@ -0,0 +1,62 @@
1
+ import os
2
+ import re
3
+
4
+ from pyadvtools import (
5
+ combine_content_in_list,
6
+ read_list,
7
+ write_list,
8
+ )
9
+
10
+ html_head = """<!DOCTYPE html>
11
+ <html>
12
+ <head>
13
+ <meta charset="utf-8">
14
+ <title>{}</title>
15
+ """
16
+
17
+ html_style = """ <style>
18
+ html {font-size: 22px;}
19
+ body {margin: 0 auto; max-width: 76em;}
20
+ #copyID {font-size: 18px;}
21
+ </style>
22
+ <script>
23
+ function copy(element) {
24
+ if (element.type == "button"){
25
+ element.type="text";
26
+ }
27
+ element.style.color="black";
28
+ element.style.backgroundColor="#C7EDCC";
29
+ element.select();
30
+ element.setSelectionRange(0, 99999);
31
+ navigator.clipboard.writeText(element.value);
32
+ window.getSelection().removeAllRanges();
33
+ element.type="button";
34
+ }
35
+ </script>
36
+ </head>
37
+ <body>
38
+ """
39
+
40
+ html_tail = """
41
+ </body>
42
+ </html>
43
+ """
44
+
45
+ textarea_header = '<textarea id="copyID" onclick="copy(this)" rows="16" cols="145">\n'
46
+ textarea_tail = "\n</textarea>"
47
+
48
+
49
+ def operate_on_generate_html(html_name: str) -> None:
50
+ if not (data_list := read_list(html_name, "r", None)):
51
+ return None
52
+
53
+ head_list = [html_head.format(os.path.basename(html_name).split('.')[0].strip()), html_style, "\n"]
54
+ tail_list = [html_tail]
55
+
56
+ content = "".join(data_list)
57
+ content = content.replace("<pre><code>", textarea_header).replace("</code></pre>", textarea_tail)
58
+ for i in re.findall(r"<li>(.*?)<details>", content, re.DOTALL):
59
+ content = content.replace(rf"<li>{i}<details>", f"<li><details>\n<summary>\n{i.strip()}\n</summary>")
60
+ data_list = combine_content_in_list([head_list, [content], tail_list])
61
+ write_list(data_list, html_name, "w", None, False)
62
+ return None
@@ -0,0 +1,27 @@
1
+ Metadata-Version: 2.3
2
+ Name: pyeasyphd
3
+ Version: 0.0.2
4
+ Summary: pyeasyphd
5
+ License: GPL-3.0-or-later
6
+ Keywords: Python,Markdown,LaTex
7
+ Author: NextAI
8
+ Author-email: nextartifintell@gmail.com
9
+ Maintainer: NextAI
10
+ Maintainer-email: nextartifintell@gmail.com
11
+ Requires-Python: >=3.8.1
12
+ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Requires-Dist: pyadvtools (>=0.0.3,<0.0.4)
21
+ Project-URL: Documentation, https://github.com/NextArtifIntell/pyeasyphd
22
+ Project-URL: Homepage, https://github.com/NextArtifIntell/pyeasyphd
23
+ Project-URL: Repository, https://github.com/NextArtifIntell/pyeasyphd
24
+ Description-Content-Type: text/markdown
25
+
26
+ # pyeasyphd
27
+
@@ -0,0 +1,80 @@
1
+ pyeasyphd/.python-version,sha256=D6BK33IU5_SPJZB59_rpMy1cN6QwcHafPQUvGpjilS8,3
2
+ pyeasyphd/Main.sublime-menu,sha256=6IKSvXyUSqq-eXrzSVGbzakbrPzw9n7hKe-p-FXmDXM,1561
3
+ pyeasyphd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ pyeasyphd/bib/__init__.py,sha256=lmagLbnGjT6-G_l-hUYxqjVJzgy-M_adA5tWcRRDOQc,22
5
+ pyeasyphd/bib/bibtexbase/__init__.py,sha256=vUlnW7ZdoKIaWJpJ5wQWWln33YlQ9rqutwBq2FVOOcw,103
6
+ pyeasyphd/bib/bibtexbase/standardize/_base.py,sha256=LEoU3XlaXAme6QVQtrb7_Q1_rmC9btr_qyLknF3T7gQ,1179
7
+ pyeasyphd/bib/bibtexbase/standardize/default_data.py,sha256=g1O6PBv0XQXMiZiOadXbGGrWF42pw-2XM3YztkkwUnE,1661
8
+ pyeasyphd/bib/bibtexbase/standardize/do_on_bib.py,sha256=1XBUBrregg_7l2XhTZkVfaBP3e5ApKEeGfHivg75nw0,1745
9
+ pyeasyphd/bib/bibtexbase/standardize/do_on_comment_block.py,sha256=TTlkgtCxBUw7qfMdfB62R-zzgnQ0ypvRG2EpV3hFygM,1266
10
+ pyeasyphd/bib/bibtexbase/standardize/do_on_entry_block.py,sha256=OfPMwWsmFLETY5uKl1QS7wgwFdngVabJlt5ywY3vRDk,11488
11
+ pyeasyphd/bib/bibtexbase/standardize/do_on_preamble_block.py,sha256=D1nEEbzn_jbFLD3v1qgi8Kty13p-VF5jthBjNYHw3LQ,1194
12
+ pyeasyphd/bib/bibtexbase/standardize/do_on_string_block.py,sha256=4ZUx6UuYc3J6uFuWGsR22Xl7UcmRqCIQc3S-tMuuXBY,1159
13
+ pyeasyphd/bib/bibtexbase/standardize_bib.py,sha256=4uVL0z89sUzroAR1cyFy4nx4ARiVU3n52HCxOYJyXDQ,3020
14
+ pyeasyphd/bib/bibtexparser/__init__.py,sha256=AuUumw0aSvRS9oUcTHd-RNKBvAAJHD-YdKEfAuKVubY,1215
15
+ pyeasyphd/bib/bibtexparser/bibtex_format.py,sha256=uetBL8GFwrEqLJDe1_78MoY5lghfT9dZ6FwlgqKbv2E,3120
16
+ pyeasyphd/bib/bibtexparser/exceptions.py,sha256=46MT8CHDj8pLq_951MWx-DXHWGo3zo9uZ58Zie7AjHc,2069
17
+ pyeasyphd/bib/bibtexparser/library.py,sha256=Cw7nwxDr3k7sOAkhkbyHvtT6TY_xrSFN8n0TCJ57nbM,8341
18
+ pyeasyphd/bib/bibtexparser/middlewares/block/add.py,sha256=UjabXwPYd6m9XDo2N3uHovQdTbmzbv5lCzW6XRcn-CQ,3300
19
+ pyeasyphd/bib/bibtexparser/middlewares/block/authors.py,sha256=oggBBDg8ps5i6jLWad-JOKxKfa1cikTZUCFzwlx-qx0,863
20
+ pyeasyphd/bib/bibtexparser/middlewares/block/doi_url.py,sha256=lfbO8_mtKsA4Jcl0FDcjQVOIuaWmjF-6BCDJ3I7WypY,2326
21
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_normalize.py,sha256=DfT2EkwFSQ2svhz5rktKuZp2Q1seqgINYrBjKvQNppE,1915
22
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_replace.py,sha256=2l4Tb5oAuVQjIU34CIwoKaLmhlPgFc9pMz6D02XpxWA,1020
23
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_values_normalize.py,sha256=r85H_eWm2HTuz2GnIJsM8NsEKGoUd692IKcWSh23fX8,9538
24
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_delete.py,sha256=QWiyh1cBMxJmkGnDVcnxbxqSY17-ZA8P9LD2w4NjUYA,1069
25
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_keep.py,sha256=Hqkne-SQX2VYsgpM0YGzfPs0X83LqDDbn2x6B7sjiuw,1277
26
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_sort.py,sha256=YJCGdDmiFODLZe8Pzol0LYtSEokOWsQeGvdzqp10F8c,2521
27
+ pyeasyphd/bib/bibtexparser/middlewares/block/entry_types.py,sha256=FhO_3gOQhSh0BUowi0Xn5jQHxwoBvXApOqIR8zm2dAs,541
28
+ pyeasyphd/bib/bibtexparser/middlewares/block/journal_booktitle.py,sha256=cpTy9Yag__0UnPGhBuctvwBw79MilboqSbGPtXJsE64,4441
29
+ pyeasyphd/bib/bibtexparser/middlewares/block/month_year.py,sha256=NXZF6kxixYc7yNc0_MkBVyWe5PaHLf3UfD5lO2CAv1g,1430
30
+ pyeasyphd/bib/bibtexparser/middlewares/block/number_volume.py,sha256=1KmlBhLppjqww8OVmiDGgf7kXMD2VcGoBBVKOL0Q054,811
31
+ pyeasyphd/bib/bibtexparser/middlewares/block/pages.py,sha256=71pWY1nuhV_d7aWkVeYU6iIAKnUY_3Q9w-KTzwJz83Y,1180
32
+ pyeasyphd/bib/bibtexparser/middlewares/block/title.py,sha256=m_La5n795PT8LU-1cKubn57Bd6U0iChwUHmgX9rEcrM,727
33
+ pyeasyphd/bib/bibtexparser/middlewares/library/generating_entrykeys.py,sha256=KospQjj7aO8FbY0HSlg35BlR9zPCXt1Ba2nILjQIEKo,3567
34
+ pyeasyphd/bib/bibtexparser/middlewares/library/keeping_blocks.py,sha256=DpQxFdGXkF27x8ojV3DN8qwsBU1J44VsDcwV1AVR5u8,897
35
+ pyeasyphd/bib/bibtexparser/middlewares/library/sorting_blocks.py,sha256=S8bQLuKcB9t0ox1Kq3GBXnhjhntKBrvuA7vVDHbkvaY,4758
36
+ pyeasyphd/bib/bibtexparser/middlewares/middleware.py,sha256=mV4rn7aDJxqbBiAbo34xT2CsnNGewldcjWdE7Edu0dk,8860
37
+ pyeasyphd/bib/bibtexparser/middlewares/parsestack.py,sha256=p1IG2glZyg0dywCYHhRx3eMC5GaX9IlepV3uzbFEb8s,464
38
+ pyeasyphd/bib/bibtexparser/middlewares/utils.py,sha256=mLInKc651KIvkgt4_k73E6dz6WCmDpQmabxzwDKm3hk,4753
39
+ pyeasyphd/bib/bibtexparser/middlewares_library_to_library.py,sha256=HopklPZl4Vm2xgRYFOA8hVSyW0BeeRwaNcCGVDIzCCk,20411
40
+ pyeasyphd/bib/bibtexparser/middlewares_library_to_str.py,sha256=LZk06IyZFaga1WETU6IhqO3Lm7m-F5caWzGit3b-pOM,2008
41
+ pyeasyphd/bib/bibtexparser/middlewares_str_to_library.py,sha256=931mKNxiP6zlBFtYP8xHd7x2n12My01dF_VWGIXySIU,1090
42
+ pyeasyphd/bib/bibtexparser/middlewares_str_to_str.py,sha256=2JcfiYDk6dpJ51-EUwKUjG6-WAyI3qDgCalpbxbdGVg,1086
43
+ pyeasyphd/bib/bibtexparser/model.py,sha256=YSMUznMRRsNGThRKjof6JeEyFrSpEG9dw9FUM6x-drw,15346
44
+ pyeasyphd/bib/bibtexparser/splitter.py,sha256=waiNi5jnN6q8Iwbtzgy3soYKCEMU_1433VLc62TMM9k,6365
45
+ pyeasyphd/bib/core/__init__.py,sha256=YRclQ4sZJFwOujh2eyhfhytui0LiTGNX6xzz90BuLiQ,662
46
+ pyeasyphd/bib/core/convert_library_to_library.py,sha256=kSiFVkGyANUGX4e1zAy-L4YyPo4-e1rjnCWkN1a_dm4,1092
47
+ pyeasyphd/bib/core/convert_library_to_str.py,sha256=yvea1NUobcn2NF9CtvrjmNN1IU23z7bJZ_G3-QwyWQI,7303
48
+ pyeasyphd/bib/core/convert_str_to_library.py,sha256=CNB5UfSOcCqPPypxm9yIY7R7kvLQ_fzRPIqKwdegToY,1017
49
+ pyeasyphd/bib/core/convert_str_to_str.py,sha256=jUxXD3v7t042OaMXPFlWGHjNNukpuoel12TpYt1krD4,900
50
+ pyeasyphd/main/__init__.py,sha256=7_x6_RNSeha2zrgIbKjJgEvFWK62btOW9v6RUU1Ygm8,390
51
+ pyeasyphd/main/basic_input.py,sha256=Oh-JG4BtdVimJHtINq4zkfvN4av1bJ39ZErmJISaJHE,6767
52
+ pyeasyphd/main/pandoc_md_to.py,sha256=hRajMqlPl879qQKOE-MLtCE-KL9U5y2GO6et8cgkm8w,14806
53
+ pyeasyphd/main/python_run_bib.py,sha256=RRVeGXXs1MELpAYex9vT3x97Rqr211TP1aeHhD-8hXU,2891
54
+ pyeasyphd/main/python_run_md.py,sha256=6K4zqYtl298-iS1XVGH4jY9FkDD9ezwpGfZk0NIgk2Q,10353
55
+ pyeasyphd/main/python_run_tex.py,sha256=LQirSh_5Mv5t-SdAtV5Ge2aCTTkvaPNAloFTH6hkzCI,5691
56
+ pyeasyphd/main/python_writers.py,sha256=VQpaAbdNNa1s327ADgl8Wy-rKBZy1alqmtmx6E3RDWI,8510
57
+ pyeasyphd/pyeasyphd.py,sha256=vPM4uPmr6jSxVOy0zYetoijc8wUkQdXExUVdJyWynVQ,2875
58
+ pyeasyphd/pyeasyphd.sublime-settings,sha256=ZtclkJnOoZUmCLhWWsEDu3eiHyHv1JGP7g6gOMG6yEY,8664
59
+ pyeasyphd/pyeasyphd.sublime-syntax,sha256=pXylbA-tye-K5dCTjEJLFVRqtY1T7AgWZ4laxo-dnaE,73
60
+ pyeasyphd/tools/__init__.py,sha256=4l2e19MWmVrAvIH3IOA7v1EPaaBBvuq1UbXhmd6_bts,1041
61
+ pyeasyphd/tools/compare/compare_bibs.py,sha256=QZlqVHbF133nnZZpzDa6jYlkHnai_x7kqgq62hpIzw0,10156
62
+ pyeasyphd/tools/experiments_base.py,sha256=mx-vt0dpgjhsYcRyVpQkzdbJw_CFXcaaYt81w13y4Tc,7639
63
+ pyeasyphd/tools/format_save_bibs.py,sha256=vChgzsg45MT6IkeN8ZuJhMdGDMIvwmH8NGr16IuQwy4,7043
64
+ pyeasyphd/tools/generate/generate_from_bibs.py,sha256=RP-ADsmUsM6lEUaHDMAv6DSVrsx5wHyHsRVDVZwjaeM,17794
65
+ pyeasyphd/tools/generate/generate_links.py,sha256=lnPf8FmksPDBtb30wHarr7y9cdFm3ELnKZwXIKHukyw,13700
66
+ pyeasyphd/tools/py_run_bib_md_tex.py,sha256=lc6JqfXeJSMA8icTJTC7X1pq4tgurOaXq9f0-LSJK7g,14657
67
+ pyeasyphd/tools/replace/replace.py,sha256=wXdO72PpqZ-Iyzq5AjVCIpx8h2d1YCTiWY9VSbQAVvs,3337
68
+ pyeasyphd/tools/search/data.py,sha256=7uHXfHTcn88zkfqAGZMNcSd2OjS2LhkpE9paNuSUUqw,10754
69
+ pyeasyphd/tools/search/search_base.py,sha256=Q8IWqVLk-rGZwRZ316WkZNs0qyF7PVHP6lx6Ul5mLKI,4507
70
+ pyeasyphd/tools/search/search_core.py,sha256=16nVB2j3mtrTxUJKgtYg65ux6bI81ofTHn1IAB3twPc,13783
71
+ pyeasyphd/tools/search/search_keywords.py,sha256=mNlwLWSgi19KiErCb5IB433L96sBWVFWgjd5IO_GQuU,10372
72
+ pyeasyphd/tools/search/search_writers.py,sha256=TuQGm9QwHy0bZHNtO_qg-MYEcip_rUPfwHyvPKO-sEg,12551
73
+ pyeasyphd/tools/search/utils.py,sha256=yLKrMmM2x-fHdm6P8haFZzagd9sLkViTdwJTHyGRgXY,6092
74
+ pyeasyphd/tools/spider/process_spider_bib.py,sha256=p1UNUaLAxMZPYtuwjNi20e1ms--cyjlB7CIZFP3SX6U,10443
75
+ pyeasyphd/tools/spider/process_spider_url.py,sha256=YKG4GER5TiFDjyk94n1ocUQ8bM7ZvXImx0lKNvnyVC4,2970
76
+ pyeasyphd/tools/spider/process_spider_url_bib.py,sha256=1b0FnUlTt5BzaOqFZJmnY5gnAhdD4pbQolHR1e3wiyE,2705
77
+ pyeasyphd/utils/utils.py,sha256=yuHy6D2mTsd2aAwNBSMC7CU4LV-MkWwzKeO_0Iehbyg,1655
78
+ pyeasyphd-0.0.2.dist-info/METADATA,sha256=pK0O12eHXWGFLRBzOsmyxyd4hXmjVjGBT9j-I1D-blg,1043
79
+ pyeasyphd-0.0.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
80
+ pyeasyphd-0.0.2.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.1.3
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any