gismap 0.2.1__py3-none-any.whl → 0.2.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.
- gismap/gismo.py +2 -2
- gismap/lab/__init__.py +5 -5
- gismap/lab/egomap.py +11 -11
- gismap/lab/expansion.py +3 -3
- gismap/lab/filters.py +84 -9
- gismap/lab/graph.py +13 -7
- gismap/lab/{lab.py → labmap.py} +29 -10
- gismap/lab/lincs.py +44 -0
- gismap/lab/lip6.py +8 -4
- gismap/lab/toulouse.py +3 -3
- gismap/sources/hal.py +1 -1
- gismap/sources/multi.py +4 -2
- {gismap-0.2.1.dist-info → gismap-0.2.2.dist-info}/METADATA +1 -1
- gismap-0.2.2.dist-info/RECORD +30 -0
- gismap-0.2.1.dist-info/RECORD +0 -29
- {gismap-0.2.1.dist-info → gismap-0.2.2.dist-info}/WHEEL +0 -0
- {gismap-0.2.1.dist-info → gismap-0.2.2.dist-info}/licenses/AUTHORS.md +0 -0
gismap/gismo.py
CHANGED
|
@@ -11,7 +11,7 @@ def make_post_publi(lab):
|
|
|
11
11
|
|
|
12
12
|
Parameters
|
|
13
13
|
----------
|
|
14
|
-
lab: :class:`~gismap.lab.
|
|
14
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
15
15
|
Lab that contains the corpus publications.
|
|
16
16
|
|
|
17
17
|
Returns
|
|
@@ -32,7 +32,7 @@ def make_gismo(lab, vectorizer_parameters=None):
|
|
|
32
32
|
|
|
33
33
|
Parameters
|
|
34
34
|
----------
|
|
35
|
-
lab: :class:`~gismap.lab.
|
|
35
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
36
36
|
Lab that contains publications.
|
|
37
37
|
vectorizer_parameters: :class:`dict`
|
|
38
38
|
Overriding parameters for the Countvectorizer of the gismo.
|
gismap/lab/__init__.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
from gismap.lab.
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
from gismap.lab.labmap import (
|
|
2
|
+
LabMap as Map,
|
|
3
|
+
ListMap as ListMap,
|
|
4
4
|
)
|
|
5
|
-
from gismap.lab.lip6 import
|
|
6
|
-
from gismap.lab.toulouse import
|
|
5
|
+
from gismap.lab.lip6 import Lip6Full as Lip6Full, Lip6Map as Lip6
|
|
6
|
+
from gismap.lab.toulouse import SolaceMap as Solace, LaasMap as Laas
|
|
7
7
|
from gismap.lab.graph import lab2graph as lab2graph
|
|
8
8
|
from gismap.lab.vis import generate_html as generate_html
|
|
9
9
|
from gismap.lab.egomap import EgoMap as EgoMap
|
gismap/lab/egomap.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from gismap.lab.
|
|
1
|
+
from gismap.lab.labmap import LabMap
|
|
2
2
|
from gismap.lab.lab_author import LabAuthor
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class EgoMap(
|
|
5
|
+
class EgoMap(LabMap):
|
|
6
6
|
"""
|
|
7
7
|
Parameters
|
|
8
8
|
----------
|
|
9
|
-
|
|
9
|
+
star
|
|
10
10
|
args
|
|
11
11
|
kwargs
|
|
12
12
|
|
|
@@ -20,21 +20,21 @@ class EgoMap(Lab):
|
|
|
20
20
|
'Siu-Wai Ho', 'Sébastien Tixeuil', 'The-Dang Huynh', 'Yannick Carlinet']
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
def __init__(self,
|
|
24
|
-
if isinstance(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
self.
|
|
23
|
+
def __init__(self, star, *args, **kwargs):
|
|
24
|
+
if isinstance(star, str):
|
|
25
|
+
star = LabAuthor(star)
|
|
26
|
+
star.metadata.position = (0, 0)
|
|
27
|
+
self.star = star
|
|
28
28
|
super().__init__(*args, **kwargs)
|
|
29
29
|
|
|
30
30
|
def _author_iterator(self):
|
|
31
|
-
yield self.
|
|
31
|
+
yield self.star
|
|
32
32
|
|
|
33
33
|
def build(self, **kwargs):
|
|
34
34
|
target = kwargs.pop("target", 50)
|
|
35
35
|
group = kwargs.pop("group", "moon")
|
|
36
|
-
self.update_authors(desc="
|
|
37
|
-
self.update_publis(desc="
|
|
36
|
+
self.update_authors(desc="Star metadata")
|
|
37
|
+
self.update_publis(desc="Star publications")
|
|
38
38
|
kwargs["target"] = target - len(self.authors)
|
|
39
39
|
self.expand(group=None, desc="Planets", **kwargs)
|
|
40
40
|
kwargs.update({"target": target - len(self.authors), "group": group})
|
gismap/lab/expansion.py
CHANGED
|
@@ -53,7 +53,7 @@ def count_prospect_entries(lab):
|
|
|
53
53
|
|
|
54
54
|
Parameters
|
|
55
55
|
----------
|
|
56
|
-
lab: :class:`~gismap.lab.
|
|
56
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
57
57
|
Reference lab.
|
|
58
58
|
|
|
59
59
|
Returns
|
|
@@ -117,7 +117,7 @@ def get_prospects(lab):
|
|
|
117
117
|
"""
|
|
118
118
|
Parameters
|
|
119
119
|
----------
|
|
120
|
-
lab: :class:`~gismap.lab.
|
|
120
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
121
121
|
Reference lab.
|
|
122
122
|
|
|
123
123
|
Returns
|
|
@@ -150,7 +150,7 @@ def get_member_names(lab):
|
|
|
150
150
|
"""
|
|
151
151
|
Parameters
|
|
152
152
|
----------
|
|
153
|
-
lab: :class:`~gismap.lab.
|
|
153
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
154
154
|
Reference lab.
|
|
155
155
|
|
|
156
156
|
Returns
|
gismap/lab/filters.py
CHANGED
|
@@ -1,18 +1,93 @@
|
|
|
1
|
-
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
# editorials = re.compile(r"ditorial|foreword", re.IGNORECASE)
|
|
4
|
+
# charlatans = re.compile(r"Raoult|Kofman|Buob")
|
|
5
|
+
|
|
6
|
+
editorials = ["ditorial", "Foreword", "Brief Announcement"]
|
|
7
|
+
charlatans = ["Raoult", "Kofman", "Buob"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def re_filter(words):
|
|
11
|
+
"""
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
words: :class:`list` or :class:`str`
|
|
15
|
+
List of word(s) to filter.
|
|
16
|
+
|
|
17
|
+
Returns
|
|
18
|
+
-------
|
|
19
|
+
callable
|
|
20
|
+
Filter function.
|
|
21
|
+
"""
|
|
2
22
|
if isinstance(words, str):
|
|
3
|
-
|
|
23
|
+
taboo = re.compile(words)
|
|
4
24
|
else:
|
|
5
|
-
|
|
25
|
+
taboo = re.compile("|".join(words))
|
|
26
|
+
return lambda txt: taboo.search(txt) is None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def publication_size_filter(n_max=9):
|
|
30
|
+
"""
|
|
31
|
+
Parameters
|
|
32
|
+
----------
|
|
33
|
+
n_max: int, default=9
|
|
34
|
+
Maximum number of co-authors allowed.
|
|
35
|
+
|
|
36
|
+
Returns
|
|
37
|
+
-------
|
|
38
|
+
callable
|
|
39
|
+
Filter on number of co-authors.
|
|
40
|
+
"""
|
|
41
|
+
return lambda p: len(p.authors) <= n_max
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def publication_oneword_filter(n_min=2):
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Parameters
|
|
48
|
+
----------
|
|
49
|
+
n_min: int, default=2
|
|
50
|
+
Minimum number of words required in the title.
|
|
51
|
+
|
|
52
|
+
Returns
|
|
53
|
+
-------
|
|
54
|
+
callable
|
|
55
|
+
Filter on number of words required in the title.
|
|
56
|
+
"""
|
|
57
|
+
return lambda p: len(p.title.split()) >= n_min
|
|
6
58
|
|
|
7
|
-
def publication_size_filter(n_max=10):
|
|
8
|
-
return lambda p: len(p.authors) < n_max
|
|
9
59
|
|
|
10
60
|
def publication_taboo_filter(w=None):
|
|
61
|
+
"""
|
|
62
|
+
Parameters
|
|
63
|
+
----------
|
|
64
|
+
w: :class:`list`, optional
|
|
65
|
+
List of words to filter.
|
|
66
|
+
|
|
67
|
+
Returns
|
|
68
|
+
-------
|
|
69
|
+
Callable
|
|
70
|
+
Filter function on publications.
|
|
71
|
+
"""
|
|
11
72
|
if w is None:
|
|
12
|
-
w =
|
|
13
|
-
|
|
73
|
+
w = editorials
|
|
74
|
+
regex = re_filter(w)
|
|
75
|
+
return lambda p: regex(p.title)
|
|
76
|
+
|
|
14
77
|
|
|
15
78
|
def author_taboo_filter(w=None):
|
|
79
|
+
"""
|
|
80
|
+
Parameters
|
|
81
|
+
----------
|
|
82
|
+
w: :class:`list`, optional
|
|
83
|
+
List of words to filter.
|
|
84
|
+
|
|
85
|
+
Returns
|
|
86
|
+
-------
|
|
87
|
+
Callable
|
|
88
|
+
Filter function on authors.
|
|
89
|
+
"""
|
|
16
90
|
if w is None:
|
|
17
|
-
w =
|
|
18
|
-
|
|
91
|
+
w = charlatans
|
|
92
|
+
regex = re_filter(w)
|
|
93
|
+
return lambda p: regex(p.name)
|
gismap/lab/graph.py
CHANGED
|
@@ -189,7 +189,7 @@ def lab2graph(lab):
|
|
|
189
189
|
"""
|
|
190
190
|
Parameters
|
|
191
191
|
----------
|
|
192
|
-
lab: :class:`~gismap.lab.
|
|
192
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
193
193
|
A lab populated with searchers and publications.
|
|
194
194
|
|
|
195
195
|
Returns
|
|
@@ -200,13 +200,13 @@ def lab2graph(lab):
|
|
|
200
200
|
Examples
|
|
201
201
|
--------
|
|
202
202
|
|
|
203
|
-
>>> from gismap.lab import
|
|
204
|
-
>>> lab =
|
|
203
|
+
>>> from gismap.lab import ListMap as Map
|
|
204
|
+
>>> lab = Map(author_list=['Tixeuil Sébastien', 'Mathieu Fabien'], name='mini')
|
|
205
205
|
>>> lab.update_authors()
|
|
206
206
|
>>> lab.update_publis()
|
|
207
207
|
>>> len(lab.authors)
|
|
208
208
|
2
|
|
209
|
-
>>>
|
|
209
|
+
>>> 380 < len(lab.publications) < 440
|
|
210
210
|
True
|
|
211
211
|
>>> html = lab2graph(lab)
|
|
212
212
|
>>> html[:80] # doctest: +ELLIPSIS
|
|
@@ -216,13 +216,18 @@ def lab2graph(lab):
|
|
|
216
216
|
edges_dict = defaultdict(list)
|
|
217
217
|
for p in lab.publications.values():
|
|
218
218
|
# Strange things can happen with multiple sources. This should take care of it.
|
|
219
|
-
lauths = {
|
|
219
|
+
lauths = {
|
|
220
|
+
a.key: a
|
|
221
|
+
for source in p.sources
|
|
222
|
+
for a in source.authors
|
|
223
|
+
if a.__class__.__name__ == "LabAuthor"
|
|
224
|
+
}
|
|
220
225
|
lauths = sorted([a for a in lauths.values()], key=lambda a: str(a.key))
|
|
221
226
|
for a in lauths:
|
|
222
227
|
node_pubs[a.key].append(p)
|
|
223
228
|
for a1, a2 in combinations(lauths, 2):
|
|
224
229
|
edges_dict[a1.key, a2.key].append(p)
|
|
225
|
-
connected = {k for kl in edges_dict for k in kl}
|
|
230
|
+
# connected = {k for kl in edges_dict for k in kl}
|
|
226
231
|
|
|
227
232
|
for k, v in node_pubs.items():
|
|
228
233
|
node_pubs[k] = sorted(v, key=lambda p: -p.year)
|
|
@@ -231,7 +236,8 @@ def lab2graph(lab):
|
|
|
231
236
|
|
|
232
237
|
return generate_html(
|
|
233
238
|
nodes=[
|
|
234
|
-
to_node(s, node_pubs)
|
|
239
|
+
to_node(s, node_pubs)
|
|
240
|
+
for s in lab.authors.values() # if s.key in connected
|
|
235
241
|
],
|
|
236
242
|
edges=[to_edge(k, v, lab.authors) for k, v in edges_dict.items()],
|
|
237
243
|
)
|
gismap/lab/{lab.py → labmap.py}
RENAMED
|
@@ -17,14 +17,21 @@ from gismap.sources.multi import (
|
|
|
17
17
|
regroup_publications,
|
|
18
18
|
)
|
|
19
19
|
from gismap.lab.expansion import proper_prospects
|
|
20
|
-
from gismap.lab.filters import
|
|
20
|
+
from gismap.lab.filters import (
|
|
21
|
+
author_taboo_filter,
|
|
22
|
+
publication_taboo_filter,
|
|
23
|
+
publication_size_filter,
|
|
24
|
+
publication_oneword_filter,
|
|
25
|
+
)
|
|
21
26
|
from gismap.lab.graph import lab2graph
|
|
22
27
|
|
|
23
28
|
|
|
24
|
-
class
|
|
29
|
+
class LabMap(MixInIO):
|
|
25
30
|
"""
|
|
26
31
|
Abstract class for labs.
|
|
27
32
|
|
|
33
|
+
Actual Lab classes can be created by implementing the `_author_iterator` method.
|
|
34
|
+
|
|
28
35
|
Labs can be saved with the `dump` method and loaded with the `load` method.
|
|
29
36
|
|
|
30
37
|
Parameters
|
|
@@ -33,23 +40,31 @@ class Lab(MixInIO):
|
|
|
33
40
|
Name of the lab. Can be set as class or instance attribute.
|
|
34
41
|
dbs: :class:`list`, default=[:class:`~gismap.sources.hal.HAL`, :class:`~gismap.sources.dblp.DBLP`]
|
|
35
42
|
List of DB sources to use.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
Attributes
|
|
46
|
+
-----------
|
|
47
|
+
|
|
36
48
|
author_selectors: :class:`list`
|
|
37
|
-
Author
|
|
49
|
+
Author filters. Default: minimal filtering.
|
|
38
50
|
publication_selectors: :class:`list`
|
|
39
|
-
Publication filter. Default: less than 10 authors
|
|
51
|
+
Publication filter. Default: less than 10 authors, not an editorial, at least two words in the title.
|
|
40
52
|
"""
|
|
41
53
|
|
|
42
54
|
name = None
|
|
43
55
|
dbs = default_dbs
|
|
44
56
|
|
|
45
|
-
def __init__(
|
|
46
|
-
self, name=None, dbs=None):
|
|
57
|
+
def __init__(self, name=None, dbs=None):
|
|
47
58
|
if name is not None:
|
|
48
59
|
self.name = name
|
|
49
60
|
if dbs is not None:
|
|
50
61
|
self.dbs = list_of_objects(dbs, db_dict, default=default_dbs)
|
|
51
62
|
self.author_selectors = [author_taboo_filter()]
|
|
52
|
-
self.publication_selectors = [
|
|
63
|
+
self.publication_selectors = [
|
|
64
|
+
publication_size_filter(),
|
|
65
|
+
publication_taboo_filter(),
|
|
66
|
+
publication_oneword_filter(),
|
|
67
|
+
]
|
|
53
68
|
self.authors = None
|
|
54
69
|
self.publications = None
|
|
55
70
|
|
|
@@ -94,7 +109,9 @@ class Lab(MixInIO):
|
|
|
94
109
|
pubs = dict()
|
|
95
110
|
for author in tqdm(self.authors.values(), desc=desc):
|
|
96
111
|
pubs.update(
|
|
97
|
-
author.get_publications(
|
|
112
|
+
author.get_publications(
|
|
113
|
+
clean=False, selector=self.publication_selectors
|
|
114
|
+
)
|
|
98
115
|
)
|
|
99
116
|
regroup_authors(self.authors, pubs)
|
|
100
117
|
self.publications = regroup_publications(pubs)
|
|
@@ -118,7 +135,9 @@ class Lab(MixInIO):
|
|
|
118
135
|
author.auto_img()
|
|
119
136
|
author.metadata.group = group
|
|
120
137
|
pubs.update(
|
|
121
|
-
author.get_publications(
|
|
138
|
+
author.get_publications(
|
|
139
|
+
clean=False, selector=self.publication_selectors
|
|
140
|
+
)
|
|
122
141
|
)
|
|
123
142
|
|
|
124
143
|
for pub in self.publications.values():
|
|
@@ -145,7 +164,7 @@ class Lab(MixInIO):
|
|
|
145
164
|
display(HTML(self.html(**kwargs)))
|
|
146
165
|
|
|
147
166
|
|
|
148
|
-
class
|
|
167
|
+
class ListMap(LabMap):
|
|
149
168
|
"""
|
|
150
169
|
Simplest way to create a lab: with a list of names.
|
|
151
170
|
|
gismap/lab/lincs.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from bs4 import BeautifulSoup as Soup
|
|
2
|
+
from gismap.utils.requests import get
|
|
3
|
+
from gismap.lab.filters import re_filter
|
|
4
|
+
from gismap.lab import LabAuthor, Map
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
ghosts = [
|
|
8
|
+
"Altman",
|
|
9
|
+
"Lelarge",
|
|
10
|
+
"Teixera",
|
|
11
|
+
"Friedman",
|
|
12
|
+
"Fdida",
|
|
13
|
+
"Blaszczyszyn",
|
|
14
|
+
"Jacquet",
|
|
15
|
+
"Panafieu",
|
|
16
|
+
"Bušić",
|
|
17
|
+
]
|
|
18
|
+
no_ghost = re_filter(ghosts)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class LINCS(Map):
|
|
22
|
+
name = "LINCS"
|
|
23
|
+
|
|
24
|
+
def _author_iterator(self):
|
|
25
|
+
soup = Soup(get("https://www.lincs.fr/people/"))
|
|
26
|
+
for entry in soup.main("div", class_="trombinoscope-row"):
|
|
27
|
+
cols = entry("div")
|
|
28
|
+
name = cols[1].text
|
|
29
|
+
if not no_ghost(name):
|
|
30
|
+
continue
|
|
31
|
+
img = cols[0].img["src"]
|
|
32
|
+
url = cols[-1].a
|
|
33
|
+
if url:
|
|
34
|
+
url = url.get("href")
|
|
35
|
+
group = cols[2]("a")
|
|
36
|
+
if group:
|
|
37
|
+
group = group[-1].text
|
|
38
|
+
else:
|
|
39
|
+
group = None
|
|
40
|
+
author = LabAuthor(name)
|
|
41
|
+
author.metadata.img = img
|
|
42
|
+
author.metadata.group = group
|
|
43
|
+
author.metadata.url = url
|
|
44
|
+
yield author
|
gismap/lab/lip6.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from bs4 import BeautifulSoup as Soup
|
|
2
2
|
import re
|
|
3
3
|
|
|
4
|
-
from gismap.lab.
|
|
4
|
+
from gismap.lab.labmap import LabMap
|
|
5
5
|
from gismap.lab.lab_author import AuthorMetadata, LabAuthor
|
|
6
6
|
from gismap.utils.requests import get
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class
|
|
9
|
+
class Lip6Map(LabMap):
|
|
10
10
|
"""
|
|
11
11
|
Class for handling a LIP6 team using `https://www.lip6.fr/recherche/team_membres.php?acronyme=*team_acronym*` as entry point.
|
|
12
12
|
Default to `NPA` team.
|
|
@@ -25,10 +25,14 @@ class Lip6Lab(Lab):
|
|
|
25
25
|
previous = a.find_previous_sibling()
|
|
26
26
|
if previous is not None and "user" in previous.get("class", []):
|
|
27
27
|
metadata.url = previous["href"].strip()
|
|
28
|
+
fiche = "https://www.lip6.fr/" + a["href"].split("/", 1)[1]
|
|
29
|
+
img = Soup(get(fiche), "lxml").img
|
|
30
|
+
if img and "reflet" in img["class"] and "noPhoto" not in img["src"]:
|
|
31
|
+
metadata.img = "https://www.lip6.fr/" + img["src"].split("/", 1)[1]
|
|
28
32
|
yield LabAuthor(name=name, metadata=metadata)
|
|
29
33
|
|
|
30
34
|
|
|
31
|
-
class
|
|
35
|
+
class Lip6Full(Lip6Map):
|
|
32
36
|
"""
|
|
33
37
|
Class for handling all LIP6 teams using `https://www.lip6.fr/informations/annuaire.php` to get team names.
|
|
34
38
|
"""
|
|
@@ -40,5 +44,5 @@ class Lip6(Lip6Lab):
|
|
|
40
44
|
for group in groups.findall(
|
|
41
45
|
get("https://www.lip6.fr/informations/annuaire.php")
|
|
42
46
|
):
|
|
43
|
-
for author in
|
|
47
|
+
for author in Lip6Map(name=group)._author_iterator():
|
|
44
48
|
yield author
|
gismap/lab/toulouse.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import re
|
|
2
2
|
from bs4 import BeautifulSoup as Soup
|
|
3
|
-
from gismap.lab.
|
|
3
|
+
from gismap.lab.labmap import LabMap
|
|
4
4
|
from gismap.lab.lab_author import AuthorMetadata, LabAuthor
|
|
5
5
|
from gismap.utils.requests import get
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ def name_changer(name, rosetta):
|
|
|
9
9
|
return rosetta.get(name, name)
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
12
|
+
class LaasMap(LabMap):
|
|
13
13
|
"""
|
|
14
14
|
Class for handling a LAAS team from its name.
|
|
15
15
|
Default to `sara` team.
|
|
@@ -32,7 +32,7 @@ class LaasLab(Lab):
|
|
|
32
32
|
yield LabAuthor(name=name, metadata=AuthorMetadata(url=url, img=img))
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
class
|
|
35
|
+
class SolaceMap(LabMap):
|
|
36
36
|
"""
|
|
37
37
|
Class for handling the Solace team (`https://solace.cnrs.fr`).
|
|
38
38
|
"""
|
gismap/sources/hal.py
CHANGED
gismap/sources/multi.py
CHANGED
|
@@ -53,7 +53,10 @@ class SourcedAuthor(Author):
|
|
|
53
53
|
if selector is None:
|
|
54
54
|
selector = []
|
|
55
55
|
res = {
|
|
56
|
-
p.key: p
|
|
56
|
+
p.key: p
|
|
57
|
+
for a in self.sources
|
|
58
|
+
for p in a.get_publications()
|
|
59
|
+
if all(f(p) for f in selector)
|
|
57
60
|
}
|
|
58
61
|
if clean:
|
|
59
62
|
regroup_authors({self.key: self}, res)
|
|
@@ -157,7 +160,6 @@ def regroup_publications(pub_dict, threshold=85, length_impact=0.05, n_range=5):
|
|
|
157
160
|
res = dict()
|
|
158
161
|
|
|
159
162
|
if pub_list:
|
|
160
|
-
|
|
161
163
|
p = Process(length_impact=length_impact, n_range=n_range)
|
|
162
164
|
p.fit([paper.title for paper in pub_list])
|
|
163
165
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gismap
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
|
|
5
5
|
Project-URL: Repository, https://github.com/balouf/gismap
|
|
6
6
|
Project-URL: Documentation, https://balouf.github.io/gismap
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
gismap/__init__.py,sha256=wZhnsqnlouh2Ugsb4L36K9QG8IEGrvI7s9biEv6LjRw,735
|
|
2
|
+
gismap/author.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
gismap/gismap.py,sha256=h0hwdogXGFqerm-5ZPeT-irPn91pCcQRjiHThXsRzEk,19
|
|
4
|
+
gismap/gismo.py,sha256=oDAryl4XQzHE0tUmOWC-3G1n_zUgTeykPL-JWSDYwe0,6307
|
|
5
|
+
gismap/search.py,sha256=nsUoDsFGeEtvCZ0dB7ooRPC_6qsazkiWx_oM7dHdNV4,4932
|
|
6
|
+
gismap/lab/__init__.py,sha256=xYLZzcXn9oNbD3nNF3sLGvy_uvRkFnBoOS6fQeB3iZw,426
|
|
7
|
+
gismap/lab/egomap.py,sha256=eH2FOoB7rD4-UA3__nq9gmgNJRB6FcyCKmbgi4CviQA,1348
|
|
8
|
+
gismap/lab/expansion.py,sha256=bolmFhotkjFywUmjaqWqyZGzAmHauM5F4MTcTMeH9gI,6204
|
|
9
|
+
gismap/lab/filters.py,sha256=eNEqg7vChmXE2y-TfWghpIy1fHKUFrJ4NRsSCihFeFs,1852
|
|
10
|
+
gismap/lab/graph.py,sha256=B7S63clj4tEOnuGugDmPahCqkKbuOuuvJEcabHmBDPk,6764
|
|
11
|
+
gismap/lab/lab_author.py,sha256=jQhq1spZP5P-Bpzr5E_OP73gWy3SG6UjiVCGotjm57s,2439
|
|
12
|
+
gismap/lab/labmap.py,sha256=H1ESWeoQdVN9jWaKIzErsFi0DE51BoPiu1Di4VtVnaE,5680
|
|
13
|
+
gismap/lab/lincs.py,sha256=RblzZOkfY99dcMj_NIStFMSwmBTlACgG9LKgs9l1iU0,1103
|
|
14
|
+
gismap/lab/lip6.py,sha256=K32Jqe3-o99QYI--akmwBDFAWKgq0HFEk_psC4akR60,1740
|
|
15
|
+
gismap/lab/toulouse.py,sha256=SsQmjGIaq_ZKOPu4u-bXpehjWsWbdMvsvNlxQLstg4w,1510
|
|
16
|
+
gismap/lab/vis.py,sha256=YwMkoSa3-IsoNooQgZbluvIrQsYRbti1dlVRewypBNY,8734
|
|
17
|
+
gismap/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
gismap/sources/dblp.py,sha256=_AgPgDbHYYaeJVam43eExv1VsglvAV46eP77RL7o9Fo,5278
|
|
19
|
+
gismap/sources/hal.py,sha256=FZVKB1mjOYZMXk7M5VrpzH_IDPYjW0snFKfa5BT73vI,10021
|
|
20
|
+
gismap/sources/models.py,sha256=yJPBXcJO6MgOrSXgpGPepHDDtniJP1OsK8OSz__VzYc,543
|
|
21
|
+
gismap/sources/multi.py,sha256=UNVFiCgV-2xiEgKix2Ava6260008HmCS664K0EB3LbU,4387
|
|
22
|
+
gismap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
gismap/utils/common.py,sha256=nx1f60yNwFpl1oz08h-R5o0xK9CbJv9tmYLDk61dwYA,2898
|
|
24
|
+
gismap/utils/logger.py,sha256=1YALIaNYKTqeIyyCnYxzvZTK7x4FTSfYYl5CP9IMw8E,86
|
|
25
|
+
gismap/utils/requests.py,sha256=DA-ifVMdcOtipDSqYdVRQi-7CGR5WCTYiGyZ7Xu78q0,1291
|
|
26
|
+
gismap/utils/text.py,sha256=1_9DlduAYh7Nz-yAg-MaCTmdKbPPmuIY20bb87t7JAQ,3810
|
|
27
|
+
gismap-0.2.2.dist-info/METADATA,sha256=vAHxaSUyILKqv9brEdkaxFWA6vRSQTDzOAg2ifZw-44,2542
|
|
28
|
+
gismap-0.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
29
|
+
gismap-0.2.2.dist-info/licenses/AUTHORS.md,sha256=oDR4mptVUBMq0WKIpt19Km1Bdfz3cO2NAOVgwVfTO8g,131
|
|
30
|
+
gismap-0.2.2.dist-info/RECORD,,
|
gismap-0.2.1.dist-info/RECORD
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
gismap/__init__.py,sha256=wZhnsqnlouh2Ugsb4L36K9QG8IEGrvI7s9biEv6LjRw,735
|
|
2
|
-
gismap/author.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
gismap/gismap.py,sha256=h0hwdogXGFqerm-5ZPeT-irPn91pCcQRjiHThXsRzEk,19
|
|
4
|
-
gismap/gismo.py,sha256=kBzvlo-fqcvEgwQt-c_hHkfI1oTjBbKKb54vM8il_nI,6295
|
|
5
|
-
gismap/search.py,sha256=nsUoDsFGeEtvCZ0dB7ooRPC_6qsazkiWx_oM7dHdNV4,4932
|
|
6
|
-
gismap/lab/__init__.py,sha256=WeJkoNZmFnLoEgK_nwXqZrA4nQtpeTLPf6PPMFIGb4k,415
|
|
7
|
-
gismap/lab/egomap.py,sha256=L5OKeZR7RCfX3EPm859-jZ1jnqlC3kpa0jybofhLPPc,1328
|
|
8
|
-
gismap/lab/expansion.py,sha256=fYcUvkGi3W1GTx2gnFT1z3cI-jlZFFAicDM99wi2wzE,6186
|
|
9
|
-
gismap/lab/filters.py,sha256=LL3jeCqLBpLeaz1lz5IvduV4G1xBPaty9SHiBxoYgak,486
|
|
10
|
-
gismap/lab/graph.py,sha256=8fzxohyUWqayLKaOC7CpBaKDN63eZK6oYp7nrfDDosw,6680
|
|
11
|
-
gismap/lab/lab.py,sha256=Uc9Qg7Okf3L5K8gHTlnOv7lPbeA9OBfivCmZwRPwzp8,5331
|
|
12
|
-
gismap/lab/lab_author.py,sha256=jQhq1spZP5P-Bpzr5E_OP73gWy3SG6UjiVCGotjm57s,2439
|
|
13
|
-
gismap/lab/lip6.py,sha256=LLLjV8zNqwdkvtuV4nfmScCDlaeeGw79I0KQuOQ1_Yo,1443
|
|
14
|
-
gismap/lab/toulouse.py,sha256=Ex3lBPdYhAzAnPQw9Driho7joJNTHLpE_nNMooQH_nc,1495
|
|
15
|
-
gismap/lab/vis.py,sha256=YwMkoSa3-IsoNooQgZbluvIrQsYRbti1dlVRewypBNY,8734
|
|
16
|
-
gismap/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
gismap/sources/dblp.py,sha256=_AgPgDbHYYaeJVam43eExv1VsglvAV46eP77RL7o9Fo,5278
|
|
18
|
-
gismap/sources/hal.py,sha256=3VjiUH5amNfJYV5uAtX-JcGWMNKUkmjfXU0Osca9CC8,10021
|
|
19
|
-
gismap/sources/models.py,sha256=yJPBXcJO6MgOrSXgpGPepHDDtniJP1OsK8OSz__VzYc,543
|
|
20
|
-
gismap/sources/multi.py,sha256=HQMQ4kcDwg0rZ42av98DZ17o83dpR2fD4KtP1yFX14c,4352
|
|
21
|
-
gismap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
gismap/utils/common.py,sha256=nx1f60yNwFpl1oz08h-R5o0xK9CbJv9tmYLDk61dwYA,2898
|
|
23
|
-
gismap/utils/logger.py,sha256=1YALIaNYKTqeIyyCnYxzvZTK7x4FTSfYYl5CP9IMw8E,86
|
|
24
|
-
gismap/utils/requests.py,sha256=DA-ifVMdcOtipDSqYdVRQi-7CGR5WCTYiGyZ7Xu78q0,1291
|
|
25
|
-
gismap/utils/text.py,sha256=1_9DlduAYh7Nz-yAg-MaCTmdKbPPmuIY20bb87t7JAQ,3810
|
|
26
|
-
gismap-0.2.1.dist-info/METADATA,sha256=ZKER11xqoYCNSMmLpe-E7BdBbiLRMrAQuFEqct3ofuk,2542
|
|
27
|
-
gismap-0.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
28
|
-
gismap-0.2.1.dist-info/licenses/AUTHORS.md,sha256=oDR4mptVUBMq0WKIpt19Km1Bdfz3cO2NAOVgwVfTO8g,131
|
|
29
|
-
gismap-0.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|