scisoftdev-tmp-HiPOP 1.0.5__tar.gz → 1.0.9__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 (48) hide show
  1. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/.github/workflows/ci.yaml +6 -2
  2. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/.github/workflows/deploy.yaml +22 -0
  3. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/PKG-INFO +7 -6
  4. scisoftdev_tmp_hipop-1.0.9/VERSION.txt +1 -0
  5. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/pyproject.toml +13 -12
  6. scisoftdev_tmp_hipop-1.0.5/VERSION.txt +0 -1
  7. scisoftdev_tmp_hipop-1.0.5/bump_version.py +0 -48
  8. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/.gitignore +0 -0
  9. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/CMakeLists.txt +0 -0
  10. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/LICENSE +0 -0
  11. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/README.md +0 -0
  12. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/conda/env.yaml +0 -0
  13. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/CMakeLists.txt +0 -0
  14. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/cmake/HipopConfig.cmake.in +0 -0
  15. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/examples/CMakeLists.txt +0 -0
  16. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/examples/ParallelKShortestPath.cpp +0 -0
  17. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/include/hipop/create.h +0 -0
  18. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/include/hipop/graph.h +0 -0
  19. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/include/hipop/shortest_path.h +0 -0
  20. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/src/create.cpp +0 -0
  21. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/src/graph.cpp +0 -0
  22. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/src/shortest_path.cpp +0 -0
  23. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/CMakeLists.txt +0 -0
  24. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/helpers.h +0 -0
  25. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testCopyGraph.cpp +0 -0
  26. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testDijkstra1.cpp +0 -0
  27. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testDijkstra2.cpp +0 -0
  28. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testGraph.cpp +0 -0
  29. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testGraphMerge.cpp +0 -0
  30. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testKShortestPath.cpp +0 -0
  31. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testManhattan.cpp +0 -0
  32. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testYenKShortestPath.cpp +0 -0
  33. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/cpp/tests/testparallelKShortestPath.cpp +0 -0
  34. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/pytest.toml +0 -0
  35. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/CMakeLists.txt +0 -0
  36. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/examples/UpdateCosts.py +0 -0
  37. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/examples/ksp.py +0 -0
  38. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/examples/merge.py +0 -0
  39. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/examples/test.py +0 -0
  40. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/__init__.py.template +0 -0
  41. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/cpp/graph.cpp +0 -0
  42. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/cpp/main.cpp +0 -0
  43. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/cpp/shortest_path.cpp +0 -0
  44. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/graph.py +0 -0
  45. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/render.py +0 -0
  46. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/hipop/shortest_path.py +0 -0
  47. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/tests/test_Graph.py +0 -0
  48. {scisoftdev_tmp_hipop-1.0.5 → scisoftdev_tmp_hipop-1.0.9}/python/tests/test_VersionConsistency.py +0 -0
@@ -10,7 +10,8 @@ on:
10
10
 
11
11
  jobs:
12
12
  build-and-test:
13
- name: Build & run tests (${{ matrix.os }})
13
+
14
+ name: Build & test (py ${{ matrix.python-version }} on ${{ matrix.os }})
14
15
  runs-on: ${{ matrix.os }}
15
16
 
16
17
  strategy:
@@ -20,13 +21,16 @@ jobs:
20
21
  - ubuntu-latest # Arch: x64
21
22
  - windows-latest # Arch: x64
22
23
  - macos-latest # Arch: arm64
24
+ python-version:
25
+ - '3.10' # Oldest supported version (must be kept consistent with the classifiers in `pyproject.toml`).
26
+ - '3.14' # Most recent supported version (must be kept consistent with the classifiers in `pyproject.toml`).
23
27
 
24
28
  steps:
25
29
  - uses: actions/checkout@v7
26
30
 
27
31
  - uses: actions/setup-python@v7
28
32
  with:
29
- python-version: '3.10'
33
+ python-version: ${{ matrix.python-version }}
30
34
 
31
35
  - name: Install OpenMP (macOS only)
32
36
  if: runner.os == 'macOS'
@@ -8,9 +8,28 @@ on:
8
8
 
9
9
  jobs:
10
10
 
11
+ check-version:
12
+ name: Check git tag
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@v7
17
+
18
+ - name: Ensure git tag corresponds to project version
19
+ run: |
20
+ project_version="v$(tr -d '[:space:]' < VERSION.txt)"
21
+ echo "Git tag = [$GITHUB_REF_NAME]"
22
+ echo "Project version = [$project_version]"
23
+ if [ "$GITHUB_REF_NAME" != "$project_version" ]; then
24
+ echo "Mismatch between git tag and project version (VERSION.txt), aborting deployment..."
25
+ exit 1
26
+ fi
27
+
11
28
  build-wheels:
12
29
  name: Build wheels (${{ matrix.os }})
13
30
  runs-on: ${{ matrix.os }}
31
+ needs:
32
+ - check-version
14
33
 
15
34
  strategy:
16
35
  fail-fast: false
@@ -42,6 +61,8 @@ jobs:
42
61
  build-sdist:
43
62
  name: Build source distribution
44
63
  runs-on: ubuntu-latest
64
+ needs:
65
+ - check-version
45
66
 
46
67
  steps:
47
68
  - uses: actions/checkout@v7
@@ -64,6 +85,7 @@ jobs:
64
85
  name: Publish to PyPI
65
86
  runs-on: ubuntu-latest
66
87
  needs:
88
+ - check-version
67
89
  - build-wheels
68
90
  - build-sdist
69
91
  # TODO keep? if: github.event_name == 'release'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scisoftdev-tmp-HiPOP
3
- Version: 1.0.5
3
+ Version: 1.0.9
4
4
  Summary: High Performance Optimal Path module
5
5
  Keywords: graph,graph-theory,shortest-path,dijkstra
6
6
  License-Expression: LGPL-3.0-only
@@ -8,18 +8,19 @@ License-File: LICENSE
8
8
  Classifier: Development Status :: 5 - Production/Stable
9
9
  Classifier: Intended Audience :: Developers
10
10
  Classifier: Intended Audience :: Science/Research
11
- Classifier: Topic :: Scientific/Engineering
11
+ Classifier: Operating System :: MacOS
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Operating System :: POSIX :: Linux
12
14
  Classifier: Programming Language :: C++
13
15
  Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3 :: Only
14
17
  Classifier: Programming Language :: Python :: 3.10
15
18
  Classifier: Programming Language :: Python :: 3.11
16
19
  Classifier: Programming Language :: Python :: 3.12
17
20
  Classifier: Programming Language :: Python :: 3.13
18
21
  Classifier: Programming Language :: Python :: 3.14
19
- Classifier: Programming Language :: Python :: 3.15
20
- Classifier: Operating System :: MacOS
21
- Classifier: Operating System :: Microsoft :: Windows
22
- Classifier: Operating System :: POSIX :: Linux
22
+ Classifier: Topic :: Scientific/Engineering
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
24
  Project-URL: Repository, https://github.com/EMob-Lab/HiPOP
24
25
  Project-URL: Issues, https://github.com/EMob-Lab/HiPOP/issues
25
26
  Requires-Python: >=3.10
@@ -0,0 +1 @@
1
+ 1.0.9
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "scisoftdev-tmp-HiPOP" # TODO Project name (and VERSION !!) modified to test deployment, to restore.
3
- dynamic = ["version"]
3
+ dynamic = ["version"] # Version number is defined in file VERSION.txt.
4
4
  description = "High Performance Optimal Path module"
5
5
  readme = "README.md"
6
6
  requires-python = ">= 3.10"
@@ -17,18 +17,19 @@ classifiers = [
17
17
  "Development Status :: 5 - Production/Stable",
18
18
  "Intended Audience :: Developers",
19
19
  "Intended Audience :: Science/Research",
20
- "Topic :: Scientific/Engineering",
20
+ "Operating System :: MacOS",
21
+ "Operating System :: Microsoft :: Windows",
22
+ "Operating System :: POSIX :: Linux",
21
23
  "Programming Language :: C++",
22
24
  "Programming Language :: Python :: 3",
23
- "Programming Language :: Python :: 3.10",
25
+ "Programming Language :: Python :: 3 :: Only",
26
+ "Programming Language :: Python :: 3.10", # Oldest supported version (must be kept consistent with `ci.yaml`).
24
27
  "Programming Language :: Python :: 3.11",
25
28
  "Programming Language :: Python :: 3.12",
26
29
  "Programming Language :: Python :: 3.13",
27
- "Programming Language :: Python :: 3.14",
28
- "Programming Language :: Python :: 3.15",
29
- "Operating System :: MacOS",
30
- "Operating System :: Microsoft :: Windows",
31
- "Operating System :: POSIX :: Linux",
30
+ "Programming Language :: Python :: 3.14", # Most recent supported version (must be kept consistent with `ci.yaml`).
31
+ "Topic :: Scientific/Engineering",
32
+ "Topic :: Software Development :: Libraries :: Python Modules",
32
33
  ]
33
34
 
34
35
  [project.urls]
@@ -36,12 +37,12 @@ Repository = "https://github.com/EMob-Lab/HiPOP"
36
37
  Issues = "https://github.com/EMob-Lab/HiPOP/issues"
37
38
 
38
39
  [dependency-groups]
39
- build = [ # Dependencies needed for build tasks. Must be maintained identical to "build-system".requires
40
+ build = [ # Dependencies needed for build tasks. Must be kept identical to "build-system".requires
40
41
  "dynamic-metadata >= 0.5",
41
42
  "pybind11 >= 3.1",
42
43
  "scikit-build-core >= 1.0",
43
44
  ]
44
- test = [ # Dependencies needed for test tasks. Must be maintained identical to tool.cibuildwheel."test-requires"
45
+ test = [ # Dependencies needed for test tasks. Must be kept identical to tool.cibuildwheel."test-requires"
45
46
  "pytest >= 9.1",
46
47
  ]
47
48
  dev = [ # All dependencies needed for development tasks.
@@ -54,7 +55,7 @@ distrib = [ # Dependencies needed to build distribution files (wheels & source d
54
55
  ]
55
56
 
56
57
  [build-system]
57
- requires = [ # Must be maintained identical to "dependency-groups".build
58
+ requires = [ # Must be kept identical to "dependency-groups".build
58
59
  "dynamic-metadata >= 0.5",
59
60
  "pybind11 >= 3.1",
60
61
  "scikit-build-core >= 1.0",
@@ -94,7 +95,7 @@ build = [ # Build Linux + Win for x64, and MacOS for ARM64. TODO is it enough?
94
95
  skip = [
95
96
  "cp3??t-*", # Free-threaded standard interpreter (https://docs.python.org/3/glossary.html#term-free-threading).
96
97
  ]
97
- test-requires = [ # Must be maintained identical to "dependency-groups".test
98
+ test-requires = [ # Must be kept identical to "dependency-groups".test
98
99
  "pytest >= 9.1",
99
100
  ]
100
101
  test-command = "pytest {project}"
@@ -1 +0,0 @@
1
- 1.0.5
@@ -1,48 +0,0 @@
1
- import re
2
- from pathlib import Path
3
- import argparse
4
-
5
- PATTERN_VERSION = r"\d+\.\d+\.\d+"
6
-
7
- files = [("cpp/CMakeLists.txt", re.compile(rf"(project\(HiPOP VERSION )({PATTERN_VERSION})(\))")),
8
- ("python/hipop/__init__.py", re.compile(rf'(__version__ = ")({PATTERN_VERSION})(")')),
9
- ("conda/recipe/meta.yaml", re.compile(r'({% set version = ")('+PATTERN_VERSION+r')(" %})'))]
10
-
11
-
12
- def read(file):
13
- with open(file, "r") as f:
14
- contents = f.read()
15
- return contents
16
-
17
-
18
- def write(file, new_contents):
19
- with open(file, "w") as f:
20
- f.write(new_contents)
21
-
22
-
23
- cwd = Path(__file__).parent.resolve()
24
-
25
-
26
- def show_diff(contents, new_contents):
27
- for i, (lc, lnc) in enumerate(zip(contents.split("\n"), new_contents.split("\n"))):
28
- if lc != lnc:
29
- print(f"\tline {i}: {lc} -> {lnc}")
30
-
31
-
32
- if __name__ == "__main__":
33
- import argparse
34
- parser = argparse.ArgumentParser()
35
- parser.add_argument('MAJOR', help='major version number', type=int)
36
- parser.add_argument('MINOR', help='minor version number', type=int)
37
- parser.add_argument('PATCH', help='patch version number', type=int)
38
- args = parser.parse_args()
39
-
40
- new_version = f"{args.MAJOR}.{args.MINOR}.{args.PATCH}"
41
-
42
- for f, pattern in files:
43
- print("Bumping version in file:", f)
44
- f_path = cwd.joinpath(f)
45
- contents = read(f_path)
46
- new_contents = pattern.sub(f"\g<1>{new_version}\g<3>", contents, count=1)
47
- show_diff(contents, new_contents)
48
- write(f_path, new_contents)