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.
- pyeasyphd/.python-version +1 -0
- pyeasyphd/Main.sublime-menu +43 -0
- pyeasyphd/__init__.py +0 -0
- pyeasyphd/bib/__init__.py +1 -0
- pyeasyphd/bib/bibtexbase/__init__.py +7 -0
- pyeasyphd/bib/bibtexbase/standardize/_base.py +36 -0
- pyeasyphd/bib/bibtexbase/standardize/default_data.py +97 -0
- pyeasyphd/bib/bibtexbase/standardize/do_on_bib.py +54 -0
- pyeasyphd/bib/bibtexbase/standardize/do_on_comment_block.py +38 -0
- pyeasyphd/bib/bibtexbase/standardize/do_on_entry_block.py +310 -0
- pyeasyphd/bib/bibtexbase/standardize/do_on_preamble_block.py +35 -0
- pyeasyphd/bib/bibtexbase/standardize/do_on_string_block.py +34 -0
- pyeasyphd/bib/bibtexbase/standardize_bib.py +75 -0
- pyeasyphd/bib/bibtexparser/__init__.py +47 -0
- pyeasyphd/bib/bibtexparser/bibtex_format.py +87 -0
- pyeasyphd/bib/bibtexparser/exceptions.py +64 -0
- pyeasyphd/bib/bibtexparser/library.py +207 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/add.py +94 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/authors.py +22 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/doi_url.py +62 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_normalize.py +47 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_keys_replace.py +31 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_field_values_normalize.py +222 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_delete.py +34 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_keep.py +33 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_fields_sort.py +70 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/entry_types.py +15 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/journal_booktitle.py +113 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/month_year.py +34 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/number_volume.py +21 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/pages.py +28 -0
- pyeasyphd/bib/bibtexparser/middlewares/block/title.py +20 -0
- pyeasyphd/bib/bibtexparser/middlewares/library/generating_entrykeys.py +98 -0
- pyeasyphd/bib/bibtexparser/middlewares/library/keeping_blocks.py +29 -0
- pyeasyphd/bib/bibtexparser/middlewares/library/sorting_blocks.py +124 -0
- pyeasyphd/bib/bibtexparser/middlewares/middleware.py +222 -0
- pyeasyphd/bib/bibtexparser/middlewares/parsestack.py +13 -0
- pyeasyphd/bib/bibtexparser/middlewares/utils.py +226 -0
- pyeasyphd/bib/bibtexparser/middlewares_library_to_library.py +414 -0
- pyeasyphd/bib/bibtexparser/middlewares_library_to_str.py +42 -0
- pyeasyphd/bib/bibtexparser/middlewares_str_to_library.py +35 -0
- pyeasyphd/bib/bibtexparser/middlewares_str_to_str.py +29 -0
- pyeasyphd/bib/bibtexparser/model.py +481 -0
- pyeasyphd/bib/bibtexparser/splitter.py +151 -0
- pyeasyphd/bib/core/__init__.py +18 -0
- pyeasyphd/bib/core/convert_library_to_library.py +31 -0
- pyeasyphd/bib/core/convert_library_to_str.py +199 -0
- pyeasyphd/bib/core/convert_str_to_library.py +34 -0
- pyeasyphd/bib/core/convert_str_to_str.py +27 -0
- pyeasyphd/main/__init__.py +17 -0
- pyeasyphd/main/basic_input.py +149 -0
- pyeasyphd/main/pandoc_md_to.py +361 -0
- pyeasyphd/main/python_run_bib.py +73 -0
- pyeasyphd/main/python_run_md.py +235 -0
- pyeasyphd/main/python_run_tex.py +149 -0
- pyeasyphd/main/python_writers.py +212 -0
- pyeasyphd/pyeasyphd.py +72 -0
- pyeasyphd/pyeasyphd.sublime-settings +235 -0
- pyeasyphd/pyeasyphd.sublime-syntax +5 -0
- pyeasyphd/tools/__init__.py +30 -0
- pyeasyphd/tools/compare/compare_bibs.py +234 -0
- pyeasyphd/tools/experiments_base.py +203 -0
- pyeasyphd/tools/format_save_bibs.py +178 -0
- pyeasyphd/tools/generate/generate_from_bibs.py +447 -0
- pyeasyphd/tools/generate/generate_links.py +356 -0
- pyeasyphd/tools/py_run_bib_md_tex.py +378 -0
- pyeasyphd/tools/replace/replace.py +81 -0
- pyeasyphd/tools/search/data.py +318 -0
- pyeasyphd/tools/search/search_base.py +118 -0
- pyeasyphd/tools/search/search_core.py +326 -0
- pyeasyphd/tools/search/search_keywords.py +227 -0
- pyeasyphd/tools/search/search_writers.py +288 -0
- pyeasyphd/tools/search/utils.py +152 -0
- pyeasyphd/tools/spider/process_spider_bib.py +247 -0
- pyeasyphd/tools/spider/process_spider_url.py +74 -0
- pyeasyphd/tools/spider/process_spider_url_bib.py +62 -0
- pyeasyphd/utils/utils.py +62 -0
- pyeasyphd-0.0.2.dist-info/METADATA +27 -0
- pyeasyphd-0.0.2.dist-info/RECORD +80 -0
- 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
|
pyeasyphd/utils/utils.py
ADDED
|
@@ -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,,
|