gismap 0.2.2__tar.gz → 0.4.0__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 (98) hide show
  1. {gismap-0.2.2 → gismap-0.4.0}/.github/workflows/build.yml +1 -1
  2. {gismap-0.2.2 → gismap-0.4.0}/.github/workflows/docs.yml +3 -2
  3. gismap-0.4.0/.github/workflows/ldb-build.yml +98 -0
  4. gismap-0.4.0/.github/workflows/release.yml +77 -0
  5. gismap-0.4.0/HISTORY.md +69 -0
  6. {gismap-0.2.2 → gismap-0.4.0}/PKG-INFO +37 -8
  7. {gismap-0.2.2 → gismap-0.4.0}/README.md +30 -6
  8. gismap-0.4.0/binder/interactive.ipynb +63 -0
  9. gismap-0.4.0/binder/postBuild +21 -0
  10. gismap-0.4.0/binder/requirements.txt +1 -0
  11. gismap-0.4.0/binder/runtime.txt +1 -0
  12. gismap-0.4.0/docs/faq.ipynb +547 -0
  13. {gismap-0.2.2 → gismap-0.4.0}/docs/index.md +3 -1
  14. gismap-0.4.0/docs/reference/cographs.md +26 -0
  15. {gismap-0.2.2 → gismap-0.4.0}/docs/reference/database.md +16 -1
  16. gismap-0.4.0/docs/reference/examples.md +38 -0
  17. {gismap-0.2.2 → gismap-0.4.0}/docs/reference/index.md +2 -0
  18. {gismap-0.2.2 → gismap-0.4.0}/docs/reference/lab.md +0 -30
  19. {gismap-0.2.2 → gismap-0.4.0}/docs/reference/utils.md +10 -0
  20. gismap-0.4.0/docs/tutorials/cedric.ipynb +64 -0
  21. {gismap-0.2.2 → gismap-0.4.0}/docs/tutorials/egomap.ipynb +49 -14
  22. gismap-0.4.0/docs/tutorials/examples.md +9 -0
  23. gismap-0.4.0/docs/tutorials/index.md +17 -0
  24. {gismap-0.2.2 → gismap-0.4.0}/docs/tutorials/lab_tutorial.ipynb +106 -106
  25. gismap-0.4.0/docs/tutorials/lamsade.ipynb +56 -0
  26. gismap-0.4.0/docs/tutorials/lincs.ipynb +64 -0
  27. gismap-0.4.0/docs/tutorials/lip6.ipynb +111 -0
  28. gismap-0.4.0/docs/tutorials/toulouse.ipynb +130 -0
  29. {gismap-0.2.2 → gismap-0.4.0}/gismap/__init__.py +2 -0
  30. gismap-0.4.0/gismap/build.py +4 -0
  31. gismap-0.4.0/gismap/gisgraphs/builder.py +105 -0
  32. {gismap-0.2.2/gismap/lab → gismap-0.4.0/gismap/gisgraphs}/graph.py +70 -66
  33. gismap-0.4.0/gismap/gisgraphs/groups.py +70 -0
  34. gismap-0.4.0/gismap/gisgraphs/js.py +190 -0
  35. gismap-0.4.0/gismap/gisgraphs/options.py +37 -0
  36. gismap-0.4.0/gismap/gisgraphs/style.py +119 -0
  37. gismap-0.4.0/gismap/gisgraphs/widget.py +145 -0
  38. gismap-0.4.0/gismap/lab/__init__.py +6 -0
  39. {gismap-0.2.2 → gismap-0.4.0}/gismap/lab/egomap.py +6 -7
  40. {gismap-0.2.2 → gismap-0.4.0}/gismap/lab/expansion.py +7 -6
  41. {gismap-0.2.2 → gismap-0.4.0}/gismap/lab/filters.py +1 -1
  42. gismap-0.4.0/gismap/lab/lab_author.py +128 -0
  43. {gismap-0.2.2 → gismap-0.4.0}/gismap/lab/labmap.py +7 -6
  44. gismap-0.4.0/gismap/lab_examples/cedric.py +46 -0
  45. gismap-0.4.0/gismap/lab_examples/lamsade.py +43 -0
  46. {gismap-0.2.2/gismap/lab → gismap-0.4.0/gismap/lab_examples}/lincs.py +2 -2
  47. {gismap-0.2.2/gismap/lab → gismap-0.4.0/gismap/lab_examples}/toulouse.py +20 -3
  48. gismap-0.4.0/gismap/sources/__init__.py +0 -0
  49. {gismap-0.2.2 → gismap-0.4.0}/gismap/sources/dblp.py +16 -18
  50. gismap-0.4.0/gismap/sources/dblp_ttl.py +168 -0
  51. {gismap-0.2.2 → gismap-0.4.0}/gismap/sources/hal.py +19 -10
  52. gismap-0.4.0/gismap/sources/ldb.py +501 -0
  53. {gismap-0.2.2 → gismap-0.4.0}/gismap/sources/models.py +7 -0
  54. {gismap-0.2.2 → gismap-0.4.0}/gismap/sources/multi.py +25 -17
  55. gismap-0.4.0/gismap/utils/__init__.py +0 -0
  56. {gismap-0.2.2 → gismap-0.4.0}/gismap/utils/common.py +15 -10
  57. {gismap-0.2.2 → gismap-0.4.0}/gismap/utils/logger.py +2 -0
  58. {gismap-0.2.2 → gismap-0.4.0}/gismap/utils/requests.py +6 -2
  59. gismap-0.4.0/gismap/utils/zlist.py +68 -0
  60. {gismap-0.2.2 → gismap-0.4.0}/pyproject.toml +7 -2
  61. gismap-0.4.0/uv.lock +2544 -0
  62. gismap-0.2.2/.github/workflows/release.yml +0 -30
  63. gismap-0.2.2/HISTORY.md +0 -38
  64. gismap-0.2.2/docs/tutorials/index.md +0 -6
  65. gismap-0.2.2/gismap/lab/__init__.py +0 -10
  66. gismap-0.2.2/gismap/lab/lab_author.py +0 -84
  67. gismap-0.2.2/gismap/lab/vis.py +0 -329
  68. gismap-0.2.2/uv.lock +0 -2215
  69. {gismap-0.2.2 → gismap-0.4.0}/.coveragerc +0 -0
  70. {gismap-0.2.2 → gismap-0.4.0}/.editorconfig +0 -0
  71. {gismap-0.2.2 → gismap-0.4.0}/.gitattributes +0 -0
  72. {gismap-0.2.2 → gismap-0.4.0}/.github/ISSUE_TEMPLATE.md +0 -0
  73. {gismap-0.2.2 → gismap-0.4.0}/.gitignore +0 -0
  74. {gismap-0.2.2 → gismap-0.4.0}/.run/All tests.run.xml +0 -0
  75. {gismap-0.2.2 → gismap-0.4.0}/.run/Generate docs.run.xml +0 -0
  76. {gismap-0.2.2 → gismap-0.4.0}/AUTHORS.md +0 -0
  77. {gismap-0.2.2 → gismap-0.4.0}/CONTRIBUTING.md +0 -0
  78. {gismap-0.2.2 → gismap-0.4.0}/citation.cff +0 -0
  79. {gismap-0.2.2 → gismap-0.4.0}/docs/conf.py +0 -0
  80. {gismap-0.2.2 → gismap-0.4.0}/docs/favicon.ico +0 -0
  81. {gismap-0.2.2 → gismap-0.4.0}/docs/logo.png +0 -0
  82. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/authors.md +0 -0
  83. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/contributing.md +0 -0
  84. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/history.md +0 -0
  85. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/index.md +0 -0
  86. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/installation.md +0 -0
  87. {gismap-0.2.2 → gismap-0.4.0}/docs/presentation/readme.md +0 -0
  88. {gismap-0.2.2 → gismap-0.4.0}/docs/reference/gismo.md +0 -0
  89. {gismap-0.2.2 → gismap-0.4.0}/gismap/author.py +0 -0
  90. {gismap-0.2.2/gismap/sources → gismap-0.4.0/gismap/gisgraphs}/__init__.py +0 -0
  91. {gismap-0.2.2 → gismap-0.4.0}/gismap/gismap.py +0 -0
  92. {gismap-0.2.2 → gismap-0.4.0}/gismap/gismo.py +0 -0
  93. {gismap-0.2.2/gismap/utils → gismap-0.4.0/gismap/lab_examples}/__init__.py +0 -0
  94. {gismap-0.2.2/gismap/lab → gismap-0.4.0/gismap/lab_examples}/lip6.py +0 -0
  95. {gismap-0.2.2 → gismap-0.4.0}/gismap/search.py +0 -0
  96. {gismap-0.2.2 → gismap-0.4.0}/gismap/utils/text.py +0 -0
  97. {gismap-0.2.2 → gismap-0.4.0}/tests/__init__.py +0 -0
  98. {gismap-0.2.2 → gismap-0.4.0}/tests/test_gismap.py +0 -0
@@ -34,7 +34,7 @@ jobs:
34
34
  - name: Set up uv
35
35
  uses: astral-sh/setup-uv@v5
36
36
  with:
37
- version: "0.8.12"
37
+ version: "0.9.27"
38
38
 
39
39
  - name: Run tests
40
40
  run: |
@@ -12,7 +12,7 @@ on:
12
12
  jobs:
13
13
  build-and-deploy:
14
14
  runs-on: ubuntu-latest
15
- timeout-minutes: 30
15
+ timeout-minutes: 180
16
16
  steps:
17
17
 
18
18
  - name: Checkout
@@ -29,7 +29,7 @@ jobs:
29
29
  - name: Set up uv
30
30
  uses: astral-sh/setup-uv@v5
31
31
  with:
32
- version: "0.8.12"
32
+ version: "0.9.27"
33
33
 
34
34
  - name: Setup Pandoc
35
35
  uses: pandoc/actions/setup@v1
@@ -39,6 +39,7 @@ jobs:
39
39
  - name: Build Sphinx documentation
40
40
  run: |
41
41
  uv sync --all-extras
42
+ uv run python -m gismap.build
42
43
  uv run sphinx-build -a -E -b html docs build
43
44
 
44
45
  - name: Deploy Sphinx documentation on Github Pages
@@ -0,0 +1,98 @@
1
+ name: Build LDB Database
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 2 * * 0' # Weekly on Sunday 2 AM UTC
6
+ workflow_dispatch: # Manual trigger
7
+
8
+ jobs:
9
+ build-ldb:
10
+ name: Build and Upload LDB Database
11
+ runs-on: ubuntu-latest
12
+ timeout-minutes: 60 # Build takes ~30 min, allow margin
13
+ permissions:
14
+ contents: write # To upload release assets
15
+
16
+ steps:
17
+ - name: Checkout code
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python 3.12
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.12"
24
+
25
+ - name: Install uv
26
+ uses: astral-sh/setup-uv@v5
27
+ with:
28
+ version: "0.9.27"
29
+
30
+ - name: Install dependencies
31
+ run: uv sync --all-extras
32
+
33
+ - name: Build LDB database
34
+ run: |
35
+ echo "Building LDB database from DBLP TTL..."
36
+ uv run python -m gismap.build
37
+ echo "Build complete."
38
+
39
+ - name: Locate and verify database
40
+ id: locate-db
41
+ run: |
42
+ # Find database in platformdirs location
43
+ DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PATH; print(LDB_PATH)")
44
+ echo "Database path: $DB_PATH"
45
+
46
+ if [ ! -f "$DB_PATH" ]; then
47
+ echo "ERROR: Database not found at $DB_PATH"
48
+ exit 1
49
+ fi
50
+
51
+ # Get file size
52
+ DB_SIZE=$(stat -c%s "$DB_PATH")
53
+ echo "Database size: $DB_SIZE bytes ($(echo "scale=2; $DB_SIZE / 1073741824" | bc) GB)"
54
+
55
+ # Get counts
56
+ AUTHOR_COUNT=$(uv run python -c "from gismap.sources.ldb import LDB; LDB.load_db(); print(len(LDB.authors))")
57
+ PUBLI_COUNT=$(uv run python -c "from gismap.sources.ldb import LDB; LDB.load_db(); print(len(LDB.publis))")
58
+ echo "Authors: $AUTHOR_COUNT, Publications: $PUBLI_COUNT"
59
+
60
+ echo "db_path=$DB_PATH" >> $GITHUB_OUTPUT
61
+ echo "db_size=$DB_SIZE" >> $GITHUB_OUTPUT
62
+ echo "author_count=$AUTHOR_COUNT" >> $GITHUB_OUTPUT
63
+ echo "publi_count=$PUBLI_COUNT" >> $GITHUB_OUTPUT
64
+
65
+ - name: Find latest release
66
+ id: latest-release
67
+ env:
68
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69
+ run: |
70
+ LATEST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')
71
+ if [ -z "$LATEST_TAG" ]; then
72
+ echo "ERROR: No releases found"
73
+ exit 1
74
+ fi
75
+ echo "Latest release: $LATEST_TAG"
76
+ echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT
77
+
78
+ - name: Upload LDB to release
79
+ env:
80
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
81
+ run: |
82
+ echo "Uploading ldb.pkl.zst to release ${{ steps.latest-release.outputs.tag }}..."
83
+ gh release upload "${{ steps.latest-release.outputs.tag }}" \
84
+ "${{ steps.locate-db.outputs.db_path }}" \
85
+ --clobber
86
+ echo "Upload complete!"
87
+
88
+ - name: Summary
89
+ run: |
90
+ echo "## LDB Build Summary" >> $GITHUB_STEP_SUMMARY
91
+ echo "" >> $GITHUB_STEP_SUMMARY
92
+ echo "| Metric | Value |" >> $GITHUB_STEP_SUMMARY
93
+ echo "|--------|-------|" >> $GITHUB_STEP_SUMMARY
94
+ echo "| Release | ${{ steps.latest-release.outputs.tag }} |" >> $GITHUB_STEP_SUMMARY
95
+ echo "| Authors | ${{ steps.locate-db.outputs.author_count }} |" >> $GITHUB_STEP_SUMMARY
96
+ echo "| Publications | ${{ steps.locate-db.outputs.publi_count }} |" >> $GITHUB_STEP_SUMMARY
97
+ echo "| Database Size | $(echo "scale=2; ${{ steps.locate-db.outputs.db_size }} / 1073741824" | bc) GB |" >> $GITHUB_STEP_SUMMARY
98
+ echo "| Build Date | $(date -u +%Y-%m-%dT%H:%M:%SZ) |" >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,77 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ publish-pypi:
9
+ name: Publish Python Package
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 30
12
+ environment:
13
+ name: pypi
14
+ permissions:
15
+ id-token: write # Required for PyPI trusted publishing
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v5
23
+ with:
24
+ version: "0.9.11" # Pin to specific uv version
25
+
26
+ - name: Build package
27
+ run: uv build --no-sources # Recommended for production builds
28
+
29
+ - name: Publish to PyPI
30
+ run: uv publish -v dist/*
31
+
32
+ build-ldb:
33
+ name: Build LDB Database
34
+ runs-on: ubuntu-latest
35
+ timeout-minutes: 60 # Build takes ~30 min
36
+ permissions:
37
+ contents: write # To upload release assets
38
+
39
+ steps:
40
+ - name: Checkout code
41
+ uses: actions/checkout@v4
42
+
43
+ - name: Set up Python 3.12
44
+ uses: actions/setup-python@v5
45
+ with:
46
+ python-version: "3.12"
47
+
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v5
50
+ with:
51
+ version: "0.9.11"
52
+
53
+ - name: Install dependencies
54
+ run: uv sync --all-extras
55
+
56
+ - name: Build LDB database
57
+ run: |
58
+ echo "Building LDB database from DBLP TTL..."
59
+ uv run python -m gismap.build
60
+ echo "Build complete."
61
+
62
+ - name: Locate database
63
+ id: locate-db
64
+ run: |
65
+ DB_PATH=$(uv run python -c "from gismap.sources.ldb import LDB_PATH; print(LDB_PATH)")
66
+ echo "Database path: $DB_PATH"
67
+ echo "db_path=$DB_PATH" >> $GITHUB_OUTPUT
68
+
69
+ - name: Upload LDB to release
70
+ env:
71
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72
+ run: |
73
+ echo "Uploading ldb.pkl.zst to release ${{ github.event.release.tag_name }}..."
74
+ gh release upload "${{ github.event.release.tag_name }}" \
75
+ "${{ steps.locate-db.outputs.db_path }}" \
76
+ --clobber
77
+ echo "Upload complete!"
@@ -0,0 +1,69 @@
1
+ # History
2
+
3
+ ## Pipeline
4
+
5
+ - anHALyze: tools to spot HAL issues (bad author metada, DBLP comparison, widget)
6
+ - EgoConf: find your conferences journals
7
+ - Easier access to graph customization
8
+ - Additional graph option (e.g. time filtering and coloring, default group checks...)
9
+ - Custom CSS (e.g. transparent background)
10
+ - Gismo integration
11
+
12
+ ## 0.4.0 (2026-01-27): Local DB
13
+
14
+ New DB: LDB (Local DB). All the strengths of DBLP, None of its weaknesses.
15
+
16
+ - Convert the whole DBLP relational DB into a Gismap compatible local object.
17
+ - Introduces new compressed list format (Zlist) to keep the DB in memory.
18
+ - Use Bag-of-Factors to enable approximate search.
19
+ - You can build your own dataset or just rely on the one we provide and update.
20
+
21
+ Also, Lamsade added to the gallery.
22
+
23
+ ## 0.3.1 (2025-11-27): Bug fixes
24
+
25
+ - Fix BS4 dependency issue.
26
+ - Errors in readme
27
+
28
+ ## 0.3.0 (2025-11-25): Bigger, faster, prettier
29
+
30
+ - VisJS integration has been fully revamped to reduce JS errors and resource consumption.
31
+ - A gallery is now available in the documentation to showcase the possibilities:
32
+ - Lip6 (Sorbonne university CS lab, single team / whole lab);
33
+ - Laas (Toulouse university CS lab, single team / whole lab) + Solace (collab team);
34
+ - Cédric (CNAM, whole CS Lab);
35
+ - LINCS (legacy Paris-based collaboration project).
36
+ - Binder integration: you can now play with GisMap directly in your browser, no local Python required!
37
+ - A FAQ, because when the developer (me) starts to forget some how-tos, you know it’s time for a FAQ.
38
+ - GisGraphs can now have groups with automatic color selection and a selectable legend.
39
+ - Gradient-based coloring for inter-group edges (that one was no picnic).
40
+ - Lots of minor improvements here and there.
41
+
42
+ ## 0.2.2 (2025-09-08): Various upgrades
43
+
44
+ - Breaking change: renaming some methods/attributes (e.g. *sun* is now *star* in EgoMap)
45
+ - Graphs now include unconnected non-empty nodes (their display will be an option in the next version)
46
+ - Typos here and there
47
+ - New Lab class: LINCS
48
+
49
+ ## 0.2.1 (2025-09-01): Minor VisJS enhancements
50
+
51
+ - Better handling of dark/light mode (should be compatible with Pydata, Jupyter, and System).
52
+ - Responsive size
53
+
54
+ ## 0.2.0 (2025-08-31): EgoMaps!
55
+
56
+ - New lab structure: EgoMap shows the people that revolves around you!
57
+ - New lab method: expansion, which adds *moons* (neighbor researchers).
58
+ - Add filters when building authors and publications.
59
+ - Physic engine changed fo better visualization.
60
+ - Multi-source handling fine-tuned.
61
+ - Better display (size and theme).
62
+
63
+
64
+ ## 0.1.0 (2025-07-24): First release
65
+
66
+ - First release on PyPI.
67
+ - Online DBLP and HAL DB implemented.
68
+ - Lab stuctures implemented.
69
+ - Early version of collaboration graph available.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gismap
3
- Version: 0.2.2
4
- Summary: GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
3
+ Version: 0.4.0
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
7
7
  Author-email: Fabien Mathieu <fabien.mathieu@normalesup.org>
@@ -9,9 +9,14 @@ Maintainer-email: Fabien Mathieu <fabien.mathieu@normalesup.org>
9
9
  License-Expression: MIT
10
10
  License-File: AUTHORS.md
11
11
  Requires-Python: >=3.10
12
+ Requires-Dist: beautifulsoup4>=4.14.2
12
13
  Requires-Dist: bof>=0.3.5
14
+ Requires-Dist: distinctipy>=1.3.4
15
+ Requires-Dist: domonic>=0.9.13
13
16
  Requires-Dist: gismo>=0.5.2
14
17
  Requires-Dist: ipykernel>=6.30.1
18
+ Requires-Dist: ipywidgets>=8.1.8
19
+ Requires-Dist: platformdirs>=4.5.0
15
20
  Requires-Dist: tqdm>=4.67.1
16
21
  Description-Content-Type: text/markdown
17
22
 
@@ -19,12 +24,13 @@ Description-Content-Type: text/markdown
19
24
 
20
25
 
21
26
  [![PyPI Status](https://img.shields.io/pypi/v/gismap.svg)](https://pypi.python.org/pypi/gismap)
27
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fbinder%2Finteractive.ipynb)
22
28
  [![Build Status](https://github.com/balouf/gismap/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/balouf/gismap/actions?query=workflow%3Abuild)
23
29
  [![Documentation Status](https://github.com/balouf/gismap/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/balouf/gismap/actions?query=workflow%3Adocs)
24
30
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
25
31
  [![Code Coverage](https://codecov.io/gh/balouf/gismap/branch/main/graphs/badge.svg)](https://codecov.io/gh/balouf/gismap/tree/main)
26
32
 
27
- GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
33
+ GisMap leverages DBLP and HAL databases to provide cartography tools for you and your lab.
28
34
 
29
35
  - Free software: MIT
30
36
  - Documentation: <https://balouf.github.io/gismap/>.
@@ -37,25 +43,48 @@ GISMAP leverages DBLP and HAL databases to provide cartography tools for you and
37
43
  - Automatically keeps track of a Lab/Department members and publications.
38
44
  - Builds interactive collaboration graphs.
39
45
 
46
+ ## Test GisMap online!
47
+
48
+ Don't want to install GisMap on your computer (yet)? No worries, you can play with it using https://mybinder.org/.
49
+
50
+ For example:
51
+
52
+ - [A simple interface to display and save collaboration graphs](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fbinder%2Finteractive.ipynb)
53
+ - [Tutorial: Making LabMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Flab_tutorial.ipynb)
54
+ - [Tutorial: Making EgoMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Fegomap.ipynb)
55
+ - [Jupyter Lab instance with GisMap installed](https://mybinder.org/v2/gh/balouf/gismap/HEAD)
56
+
57
+
40
58
  ## Quickstart
41
59
 
42
- Install GISMAP:
60
+ Install GisMap:
43
61
 
44
62
  ```console
45
63
  $ pip install gismap
46
64
  ```
47
65
 
48
- Use GISMAP to produce a collaboration graph (HTML):
66
+ Use GisMap to display a collaboration graph (HTML) from a Notebook:
49
67
 
50
68
  ```pycon
51
- >>> from gismap.sources.hal import HAL
52
- >>> from gismap.lab import ListLab
53
- >>> lab = ListLab(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
69
+ >>> from gismap.lab import ListMap
70
+ >>> lab = ListMap(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
54
71
  >>> lab.update_authors()
55
72
  >>> lab.update_publis()
56
73
  >>> lab.show_html()
57
74
  ```
58
75
 
76
+ If you are not using Jupyter Lab/Notebook, rich display will not work.
77
+ Instead, save the HTML and display it on your browser:
78
+
79
+ ```pycon
80
+ >>> from gismap.lab import ListMap
81
+ >>> lab = ListMap(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
82
+ >>> lab.update_authors()
83
+ >>> lab.update_publis()
84
+ >>> lab.save_html("my_graph")
85
+ ```
86
+
87
+
59
88
  ## Credits
60
89
 
61
90
  This package was created with [Cookiecutter][CC] and the [Package Helper 3][PH3] project template.
@@ -2,12 +2,13 @@
2
2
 
3
3
 
4
4
  [![PyPI Status](https://img.shields.io/pypi/v/gismap.svg)](https://pypi.python.org/pypi/gismap)
5
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fbinder%2Finteractive.ipynb)
5
6
  [![Build Status](https://github.com/balouf/gismap/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/balouf/gismap/actions?query=workflow%3Abuild)
6
7
  [![Documentation Status](https://github.com/balouf/gismap/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/balouf/gismap/actions?query=workflow%3Adocs)
7
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
9
  [![Code Coverage](https://codecov.io/gh/balouf/gismap/branch/main/graphs/badge.svg)](https://codecov.io/gh/balouf/gismap/tree/main)
9
10
 
10
- GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
11
+ GisMap leverages DBLP and HAL databases to provide cartography tools for you and your lab.
11
12
 
12
13
  - Free software: MIT
13
14
  - Documentation: <https://balouf.github.io/gismap/>.
@@ -20,25 +21,48 @@ GISMAP leverages DBLP and HAL databases to provide cartography tools for you and
20
21
  - Automatically keeps track of a Lab/Department members and publications.
21
22
  - Builds interactive collaboration graphs.
22
23
 
24
+ ## Test GisMap online!
25
+
26
+ Don't want to install GisMap on your computer (yet)? No worries, you can play with it using https://mybinder.org/.
27
+
28
+ For example:
29
+
30
+ - [A simple interface to display and save collaboration graphs](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fbinder%2Finteractive.ipynb)
31
+ - [Tutorial: Making LabMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Flab_tutorial.ipynb)
32
+ - [Tutorial: Making EgoMaps](https://mybinder.org/v2/gh/balouf/gismap/HEAD?urlpath=%2Fdoc%2Ftree%2Fdocs%2Ftutorials%2Fegomap.ipynb)
33
+ - [Jupyter Lab instance with GisMap installed](https://mybinder.org/v2/gh/balouf/gismap/HEAD)
34
+
35
+
23
36
  ## Quickstart
24
37
 
25
- Install GISMAP:
38
+ Install GisMap:
26
39
 
27
40
  ```console
28
41
  $ pip install gismap
29
42
  ```
30
43
 
31
- Use GISMAP to produce a collaboration graph (HTML):
44
+ Use GisMap to display a collaboration graph (HTML) from a Notebook:
32
45
 
33
46
  ```pycon
34
- >>> from gismap.sources.hal import HAL
35
- >>> from gismap.lab import ListLab
36
- >>> lab = ListLab(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
47
+ >>> from gismap.lab import ListMap
48
+ >>> lab = ListMap(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
37
49
  >>> lab.update_authors()
38
50
  >>> lab.update_publis()
39
51
  >>> lab.show_html()
40
52
  ```
41
53
 
54
+ If you are not using Jupyter Lab/Notebook, rich display will not work.
55
+ Instead, save the HTML and display it on your browser:
56
+
57
+ ```pycon
58
+ >>> from gismap.lab import ListMap
59
+ >>> lab = ListMap(["Fabien Mathieu", "François Baccelli", "Ludovic Noirie", "Céline Comte", "Sébastien Tixeuil"], dbs="hal")
60
+ >>> lab.update_authors()
61
+ >>> lab.update_publis()
62
+ >>> lab.save_html("my_graph")
63
+ ```
64
+
65
+
42
66
  ## Credits
43
67
 
44
68
  This package was created with [Cookiecutter][CC] and the [Package Helper 3][PH3] project template.
@@ -0,0 +1,63 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "0",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Interactive collaboration graphs"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": null,
14
+ "id": "1",
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "from gismap import GismapWidget\n",
19
+ "\n",
20
+ "gs = GismapWidget()"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "markdown",
25
+ "id": "2",
26
+ "metadata": {},
27
+ "source": [
28
+ "You can use this notebook to quickly test LabMaps and EgoMaps:\n",
29
+ "\n",
30
+ "- Enter one name for an EgoMap, comma-separated names for a LabMap;\n",
31
+ "- Choose your DB:\n",
32
+ " - HAL for French researchers (fast DB);\n",
33
+ " - DBLP for CS researchers (slow DB);\n",
34
+ "- The size slider will complete your map with *moons* if necessary and feasible.\n",
35
+ "\n",
36
+ "You can save the result!\n",
37
+ "\n",
38
+ "Just execute the cell above to proceed."
39
+ ]
40
+ }
41
+ ],
42
+ "metadata": {
43
+ "kernelspec": {
44
+ "display_name": "Python 3 (ipykernel)",
45
+ "language": "python",
46
+ "name": "python3"
47
+ },
48
+ "language_info": {
49
+ "codemirror_mode": {
50
+ "name": "ipython",
51
+ "version": 3
52
+ },
53
+ "file_extension": ".py",
54
+ "mimetype": "text/x-python",
55
+ "name": "python",
56
+ "nbconvert_exporter": "python",
57
+ "pygments_lexer": "ipython3",
58
+ "version": "3.12.8"
59
+ }
60
+ },
61
+ "nbformat": 4,
62
+ "nbformat_minor": 5
63
+ }
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ set -ex
3
+
4
+ # Create gismap data directory (Linux path from platformdirs)
5
+ mkdir -p ~/.local/share/gismap
6
+
7
+ # Download LDB from the pinned release
8
+ # UPDATE THIS URL when releasing new versions
9
+ LDB_URL="https://github.com/balouf/gismap/releases/download/v0.4.0/ldb.pkl.zst"
10
+
11
+ echo "Downloading LDB database for Binder image..."
12
+ curl -L -o ~/.local/share/gismap/ldb.pkl.zst "$LDB_URL"
13
+
14
+ # Verify download
15
+ if [ ! -f ~/.local/share/gismap/ldb.pkl.zst ]; then
16
+ echo "ERROR: Failed to download ldb.pkl.zst"
17
+ exit 1
18
+ fi
19
+
20
+ ls -lh ~/.local/share/gismap/ldb.pkl.zst
21
+ echo "LDB database successfully embedded in Binder image"
@@ -0,0 +1 @@
1
+ git+https://github.com/balouf/gismap.git@v0.4.0#egg=gismap
@@ -0,0 +1 @@
1
+ python-3.12