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 CHANGED
@@ -11,7 +11,7 @@ def make_post_publi(lab):
11
11
 
12
12
  Parameters
13
13
  ----------
14
- lab: :class:`~gismap.lab.lab.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.lab.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.lab import (
2
- Lab as Lab,
3
- ListLab as ListLab,
1
+ from gismap.lab.labmap import (
2
+ LabMap as Map,
3
+ ListMap as ListMap,
4
4
  )
5
- from gismap.lab.lip6 import Lip6 as Lip6, Lip6Lab as Lip6Lab
6
- from gismap.lab.toulouse import Solace as Solace, LaasLab as LaasLab
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.lab import Lab
1
+ from gismap.lab.labmap import LabMap
2
2
  from gismap.lab.lab_author import LabAuthor
3
3
 
4
4
 
5
- class EgoMap(Lab):
5
+ class EgoMap(LabMap):
6
6
  """
7
7
  Parameters
8
8
  ----------
9
- sun
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, sun, *args, **kwargs):
24
- if isinstance(sun, str):
25
- sun = LabAuthor(sun)
26
- sun.metadata.position = (0, 0)
27
- self.sun = sun
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.sun
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="Sun metadata")
37
- self.update_publis(desc="Sun publications")
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.lab.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.lab.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.lab.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
- def taboos(txt, words):
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
- return words not in txt
23
+ taboo = re.compile(words)
4
24
  else:
5
- return all(w not in txt for w in words)
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 = ["Editorial", "Foreword"]
13
- return lambda p: taboos(p.title, w)
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 = ["Buob", "Kofman"]
18
- return lambda a: taboos(a.name, w)
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.lab.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 ListLab
204
- >>> lab = ListLab(author_list=['Tixeuil Sébastien', 'Mathieu Fabien'], name='mini')
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
- >>> 400 < len(lab.publications) < 440
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 = {a.key: a for source in p.sources for a in source.authors if a.__class__.__name__ == "LabAuthor"}
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) for s in lab.authors.values() if s.key in connected
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
  )
@@ -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 author_taboo_filter, publication_taboo_filter, publication_size_filter
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 Lab(MixInIO):
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 filter. Default: minimal filtering.
49
+ Author filters. Default: minimal filtering.
38
50
  publication_selectors: :class:`list`
39
- Publication filter. Default: less than 10 authors to remove black holes.
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 = [publication_size_filter(), publication_taboo_filter()]
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(clean=False, selector=self.publication_selectors)
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(clean=False, selector=self.publication_selectors)
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 ListLab(Lab):
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.lab import 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 Lip6Lab(Lab):
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 Lip6(Lip6Lab):
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 Lip6Lab(name=group)._author_iterator():
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.lab import 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 LaasLab(Lab):
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 Solace(Lab):
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
@@ -139,7 +139,7 @@ class HAL(DB):
139
139
  >>> len(HAL.from_author(maria[0]))
140
140
  26
141
141
  >>> len(maria[1].get_publications())
142
- 123
142
+ 124
143
143
 
144
144
  Note: an error is raised if not enough data is provided
145
145
 
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 for a in self.sources for p in a.get_publications() if all(f(p) for f in selector)
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.1
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,,
@@ -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