gismap 0.4.0__tar.gz → 0.4.1__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.
Files changed (95) hide show
  1. {gismap-0.4.0 → gismap-0.4.1}/.github/ISSUE_TEMPLATE.md +1 -1
  2. {gismap-0.4.0 → gismap-0.4.1}/.github/workflows/build.yml +2 -2
  3. {gismap-0.4.0 → gismap-0.4.1}/.github/workflows/docs.yml +0 -1
  4. {gismap-0.4.0 → gismap-0.4.1}/.github/workflows/ldb-build.yml +2 -2
  5. {gismap-0.4.0 → gismap-0.4.1}/.github/workflows/release.yml +2 -2
  6. {gismap-0.4.0 → gismap-0.4.1}/.run/All tests.run.xml +2 -5
  7. {gismap-0.4.0 → gismap-0.4.1}/CONTRIBUTING.md +5 -5
  8. {gismap-0.4.0 → gismap-0.4.1}/HISTORY.md +10 -3
  9. {gismap-0.4.0 → gismap-0.4.1}/PKG-INFO +11 -9
  10. {gismap-0.4.0 → gismap-0.4.1}/README.md +4 -2
  11. {gismap-0.4.0 → gismap-0.4.1}/binder/interactive.ipynb +2 -0
  12. gismap-0.4.1/binder/requirements.txt +1 -0
  13. {gismap-0.4.0 → gismap-0.4.1}/citation.cff +2 -2
  14. {gismap-0.4.0 → gismap-0.4.1}/docs/conf.py +1 -1
  15. {gismap-0.4.0 → gismap-0.4.1}/docs/faq.ipynb +11 -11
  16. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/installation.md +4 -4
  17. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/cedric.ipynb +5 -1
  18. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/egomap.ipynb +1 -3
  19. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/lab_tutorial.ipynb +5 -5
  20. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/lamsade.ipynb +5 -0
  21. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/lincs.ipynb +4 -0
  22. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/lip6.ipynb +1 -1
  23. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/toulouse.ipynb +4 -0
  24. gismap-0.4.1/gismap/build.py +26 -0
  25. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/builder.py +23 -8
  26. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/graph.py +15 -0
  27. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/widget.py +28 -8
  28. gismap-0.4.1/gismap/lab/egomap.py +63 -0
  29. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab/expansion.py +35 -1
  30. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab/lab_author.py +30 -0
  31. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab/labmap.py +44 -3
  32. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/cedric.py +19 -6
  33. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/lamsade.py +9 -7
  34. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/toulouse.py +6 -2
  35. {gismap-0.4.0 → gismap-0.4.1}/gismap/search.py +61 -1
  36. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/dblp.py +22 -0
  37. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/dblp_ttl.py +30 -11
  38. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/hal.py +38 -0
  39. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/ldb.py +315 -100
  40. gismap-0.4.1/gismap/sources/models.py +121 -0
  41. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/multi.py +65 -0
  42. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/common.py +58 -1
  43. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/text.py +1 -1
  44. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/zlist.py +24 -4
  45. {gismap-0.4.0 → gismap-0.4.1}/pyproject.toml +10 -10
  46. {gismap-0.4.0 → gismap-0.4.1}/uv.lock +107 -442
  47. gismap-0.4.0/binder/requirements.txt +0 -1
  48. gismap-0.4.0/gismap/build.py +0 -4
  49. gismap-0.4.0/gismap/lab/egomap.py +0 -41
  50. gismap-0.4.0/gismap/sources/models.py +0 -38
  51. {gismap-0.4.0 → gismap-0.4.1}/.coveragerc +0 -0
  52. {gismap-0.4.0 → gismap-0.4.1}/.editorconfig +0 -0
  53. {gismap-0.4.0 → gismap-0.4.1}/.gitattributes +0 -0
  54. {gismap-0.4.0 → gismap-0.4.1}/.gitignore +0 -0
  55. {gismap-0.4.0 → gismap-0.4.1}/.run/Generate docs.run.xml +0 -0
  56. {gismap-0.4.0 → gismap-0.4.1}/AUTHORS.md +0 -0
  57. {gismap-0.4.0 → gismap-0.4.1}/binder/postBuild +0 -0
  58. {gismap-0.4.0 → gismap-0.4.1}/binder/runtime.txt +0 -0
  59. {gismap-0.4.0 → gismap-0.4.1}/docs/favicon.ico +0 -0
  60. {gismap-0.4.0 → gismap-0.4.1}/docs/index.md +0 -0
  61. {gismap-0.4.0 → gismap-0.4.1}/docs/logo.png +0 -0
  62. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/authors.md +0 -0
  63. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/contributing.md +0 -0
  64. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/history.md +0 -0
  65. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/index.md +0 -0
  66. {gismap-0.4.0 → gismap-0.4.1}/docs/presentation/readme.md +0 -0
  67. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/cographs.md +0 -0
  68. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/database.md +0 -0
  69. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/examples.md +0 -0
  70. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/gismo.md +0 -0
  71. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/index.md +0 -0
  72. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/lab.md +0 -0
  73. {gismap-0.4.0 → gismap-0.4.1}/docs/reference/utils.md +0 -0
  74. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/examples.md +0 -0
  75. {gismap-0.4.0 → gismap-0.4.1}/docs/tutorials/index.md +0 -0
  76. {gismap-0.4.0 → gismap-0.4.1}/gismap/__init__.py +0 -0
  77. {gismap-0.4.0 → gismap-0.4.1}/gismap/author.py +0 -0
  78. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/__init__.py +0 -0
  79. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/groups.py +0 -0
  80. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/js.py +0 -0
  81. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/options.py +0 -0
  82. {gismap-0.4.0 → gismap-0.4.1}/gismap/gisgraphs/style.py +0 -0
  83. {gismap-0.4.0 → gismap-0.4.1}/gismap/gismap.py +0 -0
  84. {gismap-0.4.0 → gismap-0.4.1}/gismap/gismo.py +0 -0
  85. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab/__init__.py +0 -0
  86. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab/filters.py +0 -0
  87. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/__init__.py +0 -0
  88. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/lincs.py +0 -0
  89. {gismap-0.4.0 → gismap-0.4.1}/gismap/lab_examples/lip6.py +0 -0
  90. {gismap-0.4.0 → gismap-0.4.1}/gismap/sources/__init__.py +0 -0
  91. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/__init__.py +0 -0
  92. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/logger.py +0 -0
  93. {gismap-0.4.0 → gismap-0.4.1}/gismap/utils/requests.py +0 -0
  94. {gismap-0.4.0 → gismap-0.4.1}/tests/__init__.py +0 -0
  95. {gismap-0.4.0 → gismap-0.4.1}/tests/test_gismap.py +0 -0
@@ -1,4 +1,4 @@
1
- * Generic Information Search: Mapping and Analysis of Publications version:
1
+ * GisMap version:
2
2
  * Python version:
3
3
  * Operating System:
4
4
 
@@ -12,7 +12,7 @@ on:
12
12
  schedule:
13
13
  - cron: '30 5 1,15 * *'
14
14
  env:
15
- NUMBA_DISABLE_JIT: 1
15
+ NUMBA_DISABLE_JIT: 0
16
16
 
17
17
  jobs:
18
18
  build:
@@ -20,7 +20,7 @@ jobs:
20
20
  timeout-minutes: 30
21
21
  strategy:
22
22
  matrix:
23
- python-version: ["3.10", "3.11", "3.12", "3.13"]
23
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
24
24
  steps:
25
25
 
26
26
  - name: Checkout
@@ -39,7 +39,6 @@ jobs:
39
39
  - name: Build Sphinx documentation
40
40
  run: |
41
41
  uv sync --all-extras
42
- uv run python -m gismap.build
43
42
  uv run sphinx-build -a -E -b html docs build
44
43
 
45
44
  - name: Deploy Sphinx documentation on Github Pages
@@ -33,14 +33,14 @@ jobs:
33
33
  - name: Build LDB database
34
34
  run: |
35
35
  echo "Building LDB database from DBLP TTL..."
36
- uv run python -m gismap.build
36
+ uv run python -m gismap.build --no-search
37
37
  echo "Build complete."
38
38
 
39
39
  - name: Locate and verify database
40
40
  id: locate-db
41
41
  run: |
42
42
  # Find database in platformdirs location
43
- DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PATH; print(LDB_PATH)")
43
+ DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PARAMETERS; print(LDB_PARAMETERS.io.destination)")
44
44
  echo "Database path: $DB_PATH"
45
45
 
46
46
  if [ ! -f "$DB_PATH" ]; then
@@ -56,13 +56,13 @@ jobs:
56
56
  - name: Build LDB database
57
57
  run: |
58
58
  echo "Building LDB database from DBLP TTL..."
59
- uv run python -m gismap.build
59
+ uv run python -m gismap.build --no-search
60
60
  echo "Build complete."
61
61
 
62
62
  - name: Locate database
63
63
  id: locate-db
64
64
  run: |
65
- DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PATH; print(LDB_PATH)")
65
+ DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PARAMETERS; print(LDB_PARAMETERS.io.destination)")
66
66
  echo "Database path: $DB_PATH"
67
67
  echo "db_path=$DB_PATH" >> $GITHUB_OUTPUT
68
68
 
@@ -4,11 +4,8 @@
4
4
  <option name="ENV_FILES" value="" />
5
5
  <option name="INTERPRETER_OPTIONS" value="" />
6
6
  <option name="PARENT_ENVS" value="true" />
7
- <envs>
8
- <env name="NUMBA_DISABLE_JIT" value="1" />
9
- </envs>
10
7
  <option name="SDK_HOME" value="" />
11
- <option name="SDK_NAME" value="Python 3.12 (gismap)" />
8
+ <option name="SDK_NAME" value="uv (gismap)" />
12
9
  <option name="WORKING_DIRECTORY" value="" />
13
10
  <option name="IS_MODULE_SDK" value="false" />
14
11
  <option name="ADD_CONTENT_ROOTS" value="true" />
@@ -21,4 +18,4 @@
21
18
  <option name="_new_targetType" value="&quot;PATH&quot;" />
22
19
  <method v="2" />
23
20
  </configuration>
24
- </component>
21
+ </component>
@@ -29,8 +29,8 @@ and "help wanted" is open to whoever wants to implement it.
29
29
 
30
30
  ### Write Documentation
31
31
 
32
- Generic Information Search: Mapping and Analysis of Publications could always use more documentation, whether as part of the
33
- official Generic Information Search: Mapping and Analysis of Publications docs, in docstrings, or even on the web in blog posts,
32
+ GisMap could always use more documentation, whether as part of the
33
+ official GisMap docs, in docstrings, or even on the web in blog posts,
34
34
  articles, and such.
35
35
 
36
36
  ### Submit Feedback
@@ -50,7 +50,7 @@ Ready to contribute? Here's how to set up `gismap` for local development.
50
50
 
51
51
  1. Fork the `gismap` repo on GitHub.
52
52
 
53
- 2. Clone your fork locally::
53
+ 2. Clone your fork locally:
54
54
  ```console
55
55
  $ git clone git@github.com:your_name_here/gismap.git
56
56
  ```
@@ -61,7 +61,7 @@ Ready to contribute? Here's how to set up `gismap` for local development.
61
61
  $ uv sync --all-extras
62
62
  ```
63
63
 
64
- 4. Create a branch for local development::
64
+ 4. Create a branch for local development:
65
65
  ```console
66
66
  $ git checkout -b name-of-your-bugfix-or-feature
67
67
  ```
@@ -73,7 +73,7 @@ Ready to contribute? Here's how to set up `gismap` for local development.
73
73
  $ uv run pytest
74
74
  ```
75
75
 
76
- 6. Commit your changes and push your branch to GitHub::
76
+ 6. Commit your changes and push your branch to GitHub:
77
77
  ```bash
78
78
  $ git add .
79
79
  $ git commit -m "Your detailed description of your changes."
@@ -2,13 +2,20 @@
2
2
 
3
3
  ## Pipeline
4
4
 
5
- - anHALyze: tools to spot HAL issues (bad author metada, DBLP comparison, widget)
5
+ - anHALyze: tools to spot HAL issues (bad author metadata, DBLP comparison, widget)
6
6
  - EgoConf: find your conferences journals
7
7
  - Easier access to graph customization
8
8
  - Additional graph option (e.g. time filtering and coloring, default group checks...)
9
9
  - Custom CSS (e.g. transparent background)
10
10
  - Gismo integration
11
11
 
12
+ ## 0.4.1 (2026-02-02): Python 3.14 support
13
+
14
+ - Add Python 3.14 compatibility (requires gismo>=0.5.4).
15
+ - Drop Python 3.10 support (now requires 3.11+).
16
+ - LDB search engine fine-tuned.
17
+ - Various typo fixes.
18
+
12
19
  ## 0.4.0 (2026-01-27): Local DB
13
20
 
14
21
  New DB: LDB (Local DB). All the strengths of DBLP, None of its weaknesses.
@@ -56,7 +63,7 @@ Also, Lamsade added to the gallery.
56
63
  - New lab structure: EgoMap shows the people that revolves around you!
57
64
  - New lab method: expansion, which adds *moons* (neighbor researchers).
58
65
  - Add filters when building authors and publications.
59
- - Physic engine changed fo better visualization.
66
+ - Physic engine changed for better visualization.
60
67
  - Multi-source handling fine-tuned.
61
68
  - Better display (size and theme).
62
69
 
@@ -65,5 +72,5 @@ Also, Lamsade added to the gallery.
65
72
 
66
73
  - First release on PyPI.
67
74
  - Online DBLP and HAL DB implemented.
68
- - Lab stuctures implemented.
75
+ - Lab structures implemented.
69
76
  - Early version of collaboration graph available.
@@ -1,26 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gismap
3
- Version: 0.4.0
4
- Summary: GisMap leverages DBLP and HAL databases to provide cartography tools for you and your lab.
3
+ Version: 0.4.1
4
+ Summary: GisMap: for researchers, by researchers. Research cartography tools leveraging DBLP and HAL.
5
5
  Project-URL: Repository, https://github.com/balouf/gismap
6
6
  Project-URL: Documentation, https://balouf.github.io/gismap
7
7
  Author-email: Fabien Mathieu <fabien.mathieu@normalesup.org>
8
8
  Maintainer-email: Fabien Mathieu <fabien.mathieu@normalesup.org>
9
9
  License-Expression: MIT
10
10
  License-File: AUTHORS.md
11
- Requires-Python: >=3.10
12
- Requires-Dist: beautifulsoup4>=4.14.2
13
- Requires-Dist: bof>=0.3.5
11
+ Requires-Python: <3.15,>=3.11
12
+ Requires-Dist: beautifulsoup4>=4.14.3
13
+ Requires-Dist: bof>=0.4.2
14
14
  Requires-Dist: distinctipy>=1.3.4
15
15
  Requires-Dist: domonic>=0.9.13
16
- Requires-Dist: gismo>=0.5.2
16
+ Requires-Dist: gismo>=0.5.4
17
17
  Requires-Dist: ipykernel>=6.30.1
18
18
  Requires-Dist: ipywidgets>=8.1.8
19
- Requires-Dist: platformdirs>=4.5.0
19
+ Requires-Dist: platformdirs>=4.5.1
20
20
  Requires-Dist: tqdm>=4.67.1
21
21
  Description-Content-Type: text/markdown
22
22
 
23
- # Generic Information Search: Mapping and Analysis of Publications
23
+ # GisMap: for researchers, by researchers
24
24
 
25
25
 
26
26
  [![PyPI Status](https://img.shields.io/pypi/v/gismap.svg)](https://pypi.python.org/pypi/gismap)
@@ -30,7 +30,7 @@ Description-Content-Type: text/markdown
30
30
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
31
31
  [![Code Coverage](https://codecov.io/gh/balouf/gismap/branch/main/graphs/badge.svg)](https://codecov.io/gh/balouf/gismap/tree/main)
32
32
 
33
- GisMap leverages DBLP and HAL databases to provide cartography tools for you and your lab.
33
+ GisMap (Generic Information Search: Mapping and Analysis of Publications) leverages DBLP and HAL databases to provide cartography tools for you and your lab.
34
34
 
35
35
  - Free software: MIT
36
36
  - Documentation: <https://balouf.github.io/gismap/>.
@@ -41,6 +41,7 @@ GisMap leverages DBLP and HAL databases to provide cartography tools for you and
41
41
  - Can be used by all researchers in Computer Science (DBLP endpoint) or based in France (HAL endpoint).
42
42
  - Aggregate publications from multiple databases, including multiple author keys inside the same database.
43
43
  - Automatically keeps track of a Lab/Department members and publications.
44
+ - DBLP database can be used locally (LDB endpoint) to improve speed and reliability.
44
45
  - Builds interactive collaboration graphs.
45
46
 
46
47
  ## Test GisMap online!
@@ -54,6 +55,7 @@ For example:
54
55
  - [Tutorial: Making EgoMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Fegomap.ipynb)
55
56
  - [Jupyter Lab instance with GisMap installed](https://mybinder.org/v2/gh/balouf/gismap/HEAD)
56
57
 
58
+ **WARNING**: don't use LDB on `binder`, which does not provide enough memory yet. Only HAL and legacy DBLP work on binder.
57
59
 
58
60
  ## Quickstart
59
61
 
@@ -1,4 +1,4 @@
1
- # Generic Information Search: Mapping and Analysis of Publications
1
+ # GisMap: for researchers, by researchers
2
2
 
3
3
 
4
4
  [![PyPI Status](https://img.shields.io/pypi/v/gismap.svg)](https://pypi.python.org/pypi/gismap)
@@ -8,7 +8,7 @@
8
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
9
  [![Code Coverage](https://codecov.io/gh/balouf/gismap/branch/main/graphs/badge.svg)](https://codecov.io/gh/balouf/gismap/tree/main)
10
10
 
11
- GisMap leverages DBLP and HAL databases to provide cartography tools for you and your lab.
11
+ GisMap (Generic Information Search: Mapping and Analysis of Publications) leverages DBLP and HAL databases to provide cartography tools for you and your lab.
12
12
 
13
13
  - Free software: MIT
14
14
  - Documentation: <https://balouf.github.io/gismap/>.
@@ -19,6 +19,7 @@ GisMap leverages DBLP and HAL databases to provide cartography tools for you and
19
19
  - Can be used by all researchers in Computer Science (DBLP endpoint) or based in France (HAL endpoint).
20
20
  - Aggregate publications from multiple databases, including multiple author keys inside the same database.
21
21
  - Automatically keeps track of a Lab/Department members and publications.
22
+ - DBLP database can be used locally (LDB endpoint) to improve speed and reliability.
22
23
  - Builds interactive collaboration graphs.
23
24
 
24
25
  ## Test GisMap online!
@@ -32,6 +33,7 @@ For example:
32
33
  - [Tutorial: Making EgoMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Fegomap.ipynb)
33
34
  - [Jupyter Lab instance with GisMap installed](https://mybinder.org/v2/gh/balouf/gismap/HEAD)
34
35
 
36
+ **WARNING**: don't use LDB on `binder`, which does not provide enough memory yet. Only HAL and legacy DBLP work on binder.
35
37
 
36
38
  ## Quickstart
37
39
 
@@ -31,8 +31,10 @@
31
31
  "- Choose your DB:\n",
32
32
  " - HAL for French researchers (fast DB);\n",
33
33
  " - DBLP for CS researchers (slow DB);\n",
34
+ " - Note that MyBinder does not have enough memory for using the current version of LDB.\n",
34
35
  "- The size slider will complete your map with *moons* if necessary and feasible.\n",
35
36
  "\n",
37
+ "\n",
36
38
  "You can save the result!\n",
37
39
  "\n",
38
40
  "Just execute the cell above to proceed."
@@ -0,0 +1 @@
1
+ git+https://github.com/balouf/gismap.git@main#egg=gismap
@@ -1,6 +1,6 @@
1
1
 
2
2
  cff-version: 1.2.0
3
- title: Generic Information Search: Mapping and Analysis of Publications
3
+ title: GisMap
4
4
  message: >-
5
5
  If you use this software, please cite it using the
6
6
  metadata from this file.
@@ -11,5 +11,5 @@ authors:
11
11
  email: fabien.mathieu@normalesup.org
12
12
  repository-code: "https://github.com/balouf/gismap/"
13
13
  url: "https://balouf.github.io/gismap/"
14
- abstract: GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
14
+ abstract: "GisMap: for researchers, by researchers. Generic Information Search: Mapping and Analysis of Publications. Leverages DBLP and HAL databases to provide research cartography tools."
15
15
  license: MIT
@@ -87,7 +87,7 @@ source_suffix = [".rst", ".md"]
87
87
  master_doc = "index"
88
88
 
89
89
  # General information about the project.
90
- project = "Generic Information Search: Mapping and Analysis of Publications"
90
+ project = "GisMap"
91
91
  copyright = "2025, Fabien Mathieu"
92
92
  author = "Fabien Mathieu"
93
93
 
@@ -54,7 +54,7 @@
54
54
  "source": [
55
55
  "The internal structure of GisMap interleaves simple concepts, like author, DB, publication, and lab.\n",
56
56
  "\n",
57
- "- An `Author` is a reseacher that has published papers. Internally, it's just a name.\n",
57
+ "- An `Author` is a researcher that has published papers. Internally, it's just a name.\n",
58
58
  "- A `DB` is where the information comes from, like the [HAL portal](https://hal.science/) or\n",
59
59
  "the [The DBLP Computer Science Bibliography](https://dblp.org/).\n",
60
60
  "- A DB should provide a method to search authors and retrieve author's publications.\n",
@@ -181,12 +181,12 @@
181
181
  "metadata": {},
182
182
  "outputs": [],
183
183
  "source": [
184
- "from gismap import HALAuthor, DBLPAuthor\n",
184
+ "from gismap import HALAuthor, LDBAuthor\n",
185
185
  "\n",
186
186
  "fd = LabAuthor.from_sources(\n",
187
187
  " [\n",
188
188
  " HALAuthor(name=\"François Durand\", key=\"fradurand\"),\n",
189
- " DBLPAuthor(name=\"François Durand\", key=\"38/11269\"),\n",
189
+ " LDBAuthor(name=\"François Durand\", key=\"38/11269\"),\n",
190
190
  " ]\n",
191
191
  ")\n",
192
192
  "fd.sources"
@@ -207,7 +207,7 @@
207
207
  "metadata": {},
208
208
  "outputs": [],
209
209
  "source": [
210
- "fd = LabAuthor(\"François Durand (hal: fradurand, dblp: 38/11269)\")\n",
210
+ "fd = LabAuthor(\"François Durand (hal: fradurand, ldb: 38/11269)\")\n",
211
211
  "fd.sources"
212
212
  ]
213
213
  },
@@ -220,7 +220,7 @@
220
220
  "\n",
221
221
  "- The parenthesis notation can also be used to specify other metadata (URL, image, group) with the same \"key: value, ...\"format\n",
222
222
  "- For proper parsing, a name should contain no parenthesis, a key should not contain \",\" or \":\", and a value should not contain \",\"\n",
223
- "- You can enter mutiple keys for the same DB, e.g. \"My name (hal: key1, hal: key2)\"\n",
223
+ "- You can enter multiple keys for the same DB, e.g. \"My name (hal: key1, hal: key2)\"\n",
224
224
  "\n",
225
225
  ":::"
226
226
  ]
@@ -314,7 +314,7 @@
314
314
  " - The title should have at least 2 words.\n",
315
315
  " - The title should not contain *taboo* words like *Editorial*, *Foreword*, *Brief Announcement*, *Preface*.\n",
316
316
  "\n",
317
- "Feel free to change the existing filters or add new oned to adapt to your need.\n",
317
+ "Feel free to change the existing filters or add new ones to adapt to your needs.\n",
318
318
  "\n",
319
319
  "For example, to build the EgoMap of François Durand, taking account some specificities:"
320
320
  ]
@@ -491,11 +491,11 @@
491
491
  "id": "45",
492
492
  "metadata": {},
493
493
  "source": [
494
- "| Database | Pros | Cons |\n",
495
- "|------------|--------------------------------------|-----------------------------------------------------------------|\n",
496
- "| HAL | Fast; Rich metadata (e.g. abstracts) | France-based research only; Errors and gaps exist |\n",
497
- "| DBLP | Highly accurate; Unified venue names | Computer Science only; Very slow |\n",
498
- "| Local DBLP | Ultra-fast | Not integrated yet! All DBLP cons + No unique search keys |"
494
+ "| Database | Pros | Cons |\n",
495
+ "|----------|---------------------------------------------|---------------------------------------------------|\n",
496
+ "| HAL | Fast; Rich metadata (e.g. abstracts) | France-based research only; Errors and gaps exist |\n",
497
+ "| DBLP | Highly accurate; Unified venue names | Computer Science only; Very slow |\n",
498
+ "| LDB | Fast; Highly accurate; Unified venue names | Computer Science only; 3GB RAM recommended |"
499
499
  ]
500
500
  },
501
501
  {
@@ -2,19 +2,19 @@
2
2
 
3
3
  ## Stable release
4
4
 
5
- To install Generic Information Search: Mapping and Analysis of Publications, run this command in your terminal:
5
+ To install GisMap, run this command in your terminal:
6
6
 
7
7
  ```console
8
8
  $ pip install gismap
9
9
  ```
10
10
 
11
- This is the preferred method to install Generic Information Search: Mapping and Analysis of Publications, as it will always install the most recent stable release.
11
+ This is the preferred method to install GisMap, as it will always install the most recent stable release.
12
12
 
13
13
  If you don't have [pip] installed, this [Python installation guide] can guide
14
14
  you through the process.
15
15
 
16
16
  ````{note}
17
- If you want to use Generic Information Search: Mapping and Analysis of Publications as a dependency in a UV-managed project, add it with
17
+ If you want to use GisMap as a dependency in a UV-managed project, add it with
18
18
  ```console
19
19
  $ uv add gismap
20
20
  ```
@@ -22,7 +22,7 @@ $ uv add gismap
22
22
 
23
23
  ## From sources
24
24
 
25
- The sources for Generic Information Search: Mapping and Analysis of Publications can be downloaded from the [Github repo].
25
+ The sources for GisMap can be downloaded from the [Github repo].
26
26
 
27
27
  You can either clone the public repository:
28
28
 
@@ -23,7 +23,11 @@
23
23
  "metadata": {},
24
24
  "outputs": [],
25
25
  "source": [
26
- "from gismap.lab_examples.cedric import CedricFull"
26
+ "from gismap.lab_examples.cedric import CedricFull\n",
27
+ "from gismap.utils.logger import logger\n",
28
+ "import logging\n",
29
+ "\n",
30
+ "logger.setLevel(logging.ERROR)"
27
31
  ]
28
32
  },
29
33
  {
@@ -118,9 +118,7 @@
118
118
  "metadata": {},
119
119
  "outputs": [],
120
120
  "source": [
121
- "nidhi = Map(\n",
122
- " \"Nidhi Hegde (img: https://sites.ualberta.ca/~nidhih/images/circle1.png)\"\n",
123
- ")\n",
121
+ "nidhi = Map(\"Nidhi Hegde (img: https://sites.ualberta.ca/~nidhih/images/circle1.png)\")\n",
124
122
  "nidhi.build(target=80)"
125
123
  ]
126
124
  },
@@ -15,7 +15,7 @@
15
15
  "source": [
16
16
  ":::note\n",
17
17
  "\n",
18
- "By defaut, we query both HAL and LDB. Don't hesitate to adapt depending on the use case.\n",
18
+ "By default, we query both HAL and LDB. Don't hesitate to adapt depending on the use case.\n",
19
19
  ":::"
20
20
  ]
21
21
  },
@@ -217,7 +217,7 @@
217
217
  " \"Marc-Olivier Buob\",\n",
218
218
  " \"Mohamed Lamine Lamali (hal:mohamed-lamine-lamali, ldb: 43/11358)\",\n",
219
219
  " ],\n",
220
- " name=\"Gangsta\"\n",
220
+ " name=\"Gangsta\",\n",
221
221
  ")\n",
222
222
  "lab.update_authors()\n",
223
223
  "lab.update_publis()\n",
@@ -229,7 +229,7 @@
229
229
  "id": "21",
230
230
  "metadata": {},
231
231
  "source": [
232
- "Maps can be saved withe the `dump` method so you don't have to re-update them all the time."
232
+ "Maps can be saved with the `dump` method so you don't have to re-update them all the time."
233
233
  ]
234
234
  },
235
235
  {
@@ -249,7 +249,7 @@
249
249
  "metadata": {},
250
250
  "outputs": [],
251
251
  "source": [
252
- "groups = {'Gangsta': {\"color\": \"rgb(255, 0, 255)\"}}\n",
252
+ "groups = {\"Gangsta\": {\"color\": \"rgb(255, 0, 255)\"}}\n",
253
253
  "lab.show_html(groups=groups)"
254
254
  ]
255
255
  },
@@ -289,7 +289,7 @@
289
289
  "source": [
290
290
  "Few things about the generated graph:\n",
291
291
  "\n",
292
- "- Authors are represented with their initials unless some picture url is provided (implicitly or explictly).\n",
292
+ "- Authors are represented with their initials unless some picture url is provided (implicitly or explicitly).\n",
293
293
  "- Comets are singletons (authors with no co-publications with the other nodes). They are hidden by default. For example, if you only show the moons / usual suspects, Bernard becomes a comet and is hidden.\n",
294
294
  "- You can hover an author to get her name. If you click, you have a modal with the list of publications.\n",
295
295
  "- The width and length of an edge depend on the number of co-publications. If you click you have a modal with the list of co-publications."
@@ -24,6 +24,11 @@
24
24
  "outputs": [],
25
25
  "source": [
26
26
  "from gismap.lab_examples.lamsade import Lamsade\n",
27
+ "from gismap.utils.logger import logger\n",
28
+ "import logging\n",
29
+ "\n",
30
+ "logger.setLevel(logging.ERROR)\n",
31
+ "\n",
27
32
  "lamsade = Lamsade()\n",
28
33
  "lamsade.update_authors()\n",
29
34
  "lamsade.update_publis()\n",
@@ -32,6 +32,10 @@
32
32
  "outputs": [],
33
33
  "source": [
34
34
  "from gismap.lab_examples.lincs import LINCS\n",
35
+ "from gismap.utils.logger import logger\n",
36
+ "import logging\n",
37
+ "\n",
38
+ "logger.setLevel(logging.ERROR)\n",
35
39
  "\n",
36
40
  "lincs = LINCS()\n",
37
41
  "lincs.update_authors()\n",
@@ -23,7 +23,7 @@
23
23
  "id": "2",
24
24
  "metadata": {},
25
25
  "source": [
26
- "There will be a lot of warnings in this, so do not display them."
26
+ "There will be a lot of warnings in this notebook, so we disable them."
27
27
  ]
28
28
  },
29
29
  {
@@ -32,6 +32,10 @@
32
32
  "outputs": [],
33
33
  "source": [
34
34
  "from gismap.lab_examples.toulouse import SolaceMap as Solace\n",
35
+ "from gismap.utils.logger import logger\n",
36
+ "import logging\n",
37
+ "\n",
38
+ "logger.setLevel(logging.ERROR)\n",
35
39
  "\n",
36
40
  "solace = Solace()\n",
37
41
  "solace.update_authors()\n",
@@ -0,0 +1,26 @@
1
+ """
2
+ Build script for creating the LDB (Local DBLP) database.
3
+
4
+ Run as a module to download and process the DBLP dataset:
5
+
6
+ python -m gismap.build
7
+
8
+ This will fetch the DBLP RDF dump from the website and create a compressed local database.
9
+ """
10
+
11
+ if __name__ == "__main__":
12
+ import argparse
13
+ from gismap.sources.ldb import LDB
14
+
15
+ parser = argparse.ArgumentParser(
16
+ description="Build LDB database from DBLP TTL dump."
17
+ )
18
+ parser.add_argument(
19
+ "--no-search",
20
+ action="store_true",
21
+ help="Exclude search engine from output (for GitHub assets).",
22
+ )
23
+ args = parser.parse_args()
24
+
25
+ LDB.build_db()
26
+ LDB.dump_db(include_search=not args.no_search)
@@ -27,22 +27,37 @@ gislink = tags.a(
27
27
 
28
28
  def make_vis(lab, **kwargs):
29
29
  """
30
+ Generate HTML visualization of a lab's collaboration network.
31
+
30
32
  Parameters
31
33
  ----------
32
34
  lab: :class:`~gismap.lab.labmap.LabMap`
33
35
  Lab to display.
34
-
35
- Other parameters
36
- ----------------
37
- uid: :class:`str`
38
- Unique identifier.
39
- vis_url: :class:`str`
40
- Location of visJS network.
36
+ uid: :class:`str`, optional
37
+ Unique identifier for DOM elements. Auto-generated if not provided.
38
+ vis_url: :class:`str`, optional
39
+ URL to vis-network library.
40
+ groups: :class:`dict`, optional
41
+ Group styling configuration.
42
+ draw_legend: :class:`bool`, optional
43
+ Whether to draw the legend. Defaults to True if multiple groups.
44
+ physics: :class:`dict`, optional
45
+ Physics engine configuration.
46
+ nodes_options: :class:`dict`, optional
47
+ Node styling options.
48
+ edges_options: :class:`dict`, optional
49
+ Edge styling options.
50
+ interaction_options: :class:`dict`, optional
51
+ Interaction settings.
52
+ style: :class:`string.Template`, optional
53
+ CSS template.
54
+ script: :class:`string.Template`, optional
55
+ JavaScript template.
41
56
 
42
57
  Returns
43
58
  -------
44
59
  :class:`str`
45
- HTML code.
60
+ HTML code as a string.
46
61
  """
47
62
  uid = kwargs.pop("uid", None)
48
63
  if uid is None:
@@ -21,6 +21,21 @@ def initials(name):
21
21
 
22
22
 
23
23
  def linkify(name, url):
24
+ """
25
+ Wrap a name in an HTML link if URL is provided.
26
+
27
+ Parameters
28
+ ----------
29
+ name : :class:`str`
30
+ Display text.
31
+ url : :class:`str` or None
32
+ Target URL, or None for no link.
33
+
34
+ Returns
35
+ -------
36
+ :class:`str`
37
+ HTML anchor tag or span.
38
+ """
24
39
  if url:
25
40
  return f'<a href="{url}" target="_blank">{name}</a>'
26
41
  else: