scisoftdev-tmp-HiPOP 1.0.3__tar.gz → 1.0.5__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 (52) hide show
  1. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/.github/workflows/deploy.yaml +3 -5
  2. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/.gitignore +3 -0
  3. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/CMakeLists.txt +2 -1
  4. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/PKG-INFO +17 -1
  5. scisoftdev_tmp_hipop-1.0.5/VERSION.txt +1 -0
  6. scisoftdev_tmp_hipop-1.0.5/conda/env.yaml +20 -0
  7. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/pyproject.toml +44 -9
  8. scisoftdev_tmp_hipop-1.0.5/python/hipop/__init__.py.template +1 -0
  9. scisoftdev_tmp_hipop-1.0.5/python/tests/test_VersionConsistency.py +13 -0
  10. scisoftdev_tmp_hipop-1.0.3/conda/env.yaml +0 -17
  11. scisoftdev_tmp_hipop-1.0.3/conda/recipe/README.md +0 -11
  12. scisoftdev_tmp_hipop-1.0.3/conda/recipe/build-hipoplib.sh +0 -16
  13. scisoftdev_tmp_hipop-1.0.3/conda/recipe/meta.yaml +0 -57
  14. scisoftdev_tmp_hipop-1.0.3/python/hipop/__init__.py +0 -1
  15. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/.github/workflows/ci.yaml +0 -0
  16. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/LICENSE +0 -0
  17. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/README.md +0 -0
  18. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/bump_version.py +0 -0
  19. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/CMakeLists.txt +0 -0
  20. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/cmake/HipopConfig.cmake.in +0 -0
  21. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/examples/CMakeLists.txt +0 -0
  22. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/examples/ParallelKShortestPath.cpp +0 -0
  23. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/include/hipop/create.h +0 -0
  24. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/include/hipop/graph.h +0 -0
  25. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/include/hipop/shortest_path.h +0 -0
  26. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/src/create.cpp +0 -0
  27. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/src/graph.cpp +0 -0
  28. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/src/shortest_path.cpp +0 -0
  29. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/CMakeLists.txt +0 -0
  30. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/helpers.h +0 -0
  31. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testCopyGraph.cpp +0 -0
  32. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testDijkstra1.cpp +0 -0
  33. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testDijkstra2.cpp +0 -0
  34. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testGraph.cpp +0 -0
  35. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testGraphMerge.cpp +0 -0
  36. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testKShortestPath.cpp +0 -0
  37. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testManhattan.cpp +0 -0
  38. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testYenKShortestPath.cpp +0 -0
  39. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/cpp/tests/testparallelKShortestPath.cpp +0 -0
  40. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/pytest.toml +0 -0
  41. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/CMakeLists.txt +0 -0
  42. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/examples/UpdateCosts.py +0 -0
  43. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/examples/ksp.py +0 -0
  44. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/examples/merge.py +0 -0
  45. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/examples/test.py +0 -0
  46. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/cpp/graph.cpp +0 -0
  47. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/cpp/main.cpp +0 -0
  48. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/cpp/shortest_path.cpp +0 -0
  49. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/graph.py +0 -0
  50. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/render.py +0 -0
  51. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/hipop/shortest_path.py +0 -0
  52. {scisoftdev_tmp_hipop-1.0.3 → scisoftdev_tmp_hipop-1.0.5}/python/tests/test_Graph.py +0 -0
@@ -2,7 +2,9 @@ name: Deploy to PyPI
2
2
 
3
3
  on:
4
4
  push:
5
- workflow_dispatch: # TODO define the trigger with EMobLab once the workflow is stable
5
+ tags:
6
+ - 'v*.*.*' # Trigger on version tags like v1.2.3
7
+ # TODO define the trigger with EMobLab once the workflow is stable
6
8
 
7
9
  jobs:
8
10
 
@@ -79,9 +81,5 @@ jobs:
79
81
  path: dist
80
82
  merge-multiple: true
81
83
 
82
- - name: Debug # TODO to remove
83
- run: |
84
- ls -al dist
85
-
86
84
  - name: Publish package distributions to PyPI
87
85
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -8,6 +8,9 @@ __pycache__/
8
8
  /dist/
9
9
  /wheelhouse/
10
10
 
11
+ # Temporary/cache directories created by miscellaneous development tools
12
+ /.pytest_cache/
13
+
11
14
  # Python virtual environments (usual names)
12
15
  env/
13
16
  venv/
@@ -1,7 +1,8 @@
1
1
  cmake_minimum_required(VERSION 3.19)
2
2
 
3
+ file(STRINGS VERSION.txt HIPOP_VERSION)
3
4
  project(HiPOP
4
- VERSION 0.0.3 # TODO synchronize version number with pyproject.toml
5
+ VERSION "${HIPOP_VERSION}"
5
6
  DESCRIPTION "High Performance Optimal Path module"
6
7
  HOMEPAGE_URL "https://github.com/EMob-Lab/HiPOP"
7
8
  LANGUAGES CXX
@@ -1,9 +1,25 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scisoftdev-tmp-HiPOP
3
- Version: 1.0.3
3
+ Version: 1.0.5
4
4
  Summary: High Performance Optimal Path module
5
+ Keywords: graph,graph-theory,shortest-path,dijkstra
5
6
  License-Expression: LGPL-3.0-only
6
7
  License-File: LICENSE
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Topic :: Scientific/Engineering
12
+ Classifier: Programming Language :: C++
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ 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
7
23
  Project-URL: Repository, https://github.com/EMob-Lab/HiPOP
8
24
  Project-URL: Issues, https://github.com/EMob-Lab/HiPOP/issues
9
25
  Requires-Python: >=3.10
@@ -0,0 +1 @@
1
+ 1.0.5
@@ -0,0 +1,20 @@
1
+ # Development environment for HiPOP.
2
+ #
3
+ # Usage:
4
+ # conda create -f conda/env.yaml # Only once, to create the environment.
5
+ # conda activate hipop-dev # Each time you want to work on HiPOP.
6
+ #
7
+ # Using this environment (and more generally, using conda) is optional:
8
+ # if the dependencies listed here are already available on your system,
9
+ # you can use them directly without creating a conda environment.
10
+ #
11
+ name: hipop-dev
12
+ channels:
13
+ - conda-forge
14
+ - nodefaults # Disable the default Anaconda channel.
15
+ dependencies:
16
+ - cmake
17
+ - cxx-compiler
18
+ - llvm-openmp # Other OpenMP implementations are OK for HiPOP, LLVM/OpenMP is not mandatory.
19
+ - pip
20
+ - python=3.10
@@ -1,14 +1,35 @@
1
1
  [project]
2
- name = "scisoftdev-tmp-HiPOP" # TODO Project name modified to test deployment, to restore.
3
- version = "1.0.3" # TODO Project version modified to test deployment, to restore.
2
+ name = "scisoftdev-tmp-HiPOP" # TODO Project name (and VERSION !!) modified to test deployment, to restore.
3
+ dynamic = ["version"]
4
4
  description = "High Performance Optimal Path module"
5
5
  readme = "README.md"
6
6
  requires-python = ">= 3.10"
7
7
  license = "LGPL-3.0-only"
8
8
  license-files = ["LICENSE"]
9
9
  # TODO authors/maintainers
10
- # TODO keywords
11
- # TODO classifiers
10
+ keywords = [
11
+ "graph",
12
+ "graph-theory",
13
+ "shortest-path",
14
+ "dijkstra",
15
+ ]
16
+ classifiers = [
17
+ "Development Status :: 5 - Production/Stable",
18
+ "Intended Audience :: Developers",
19
+ "Intended Audience :: Science/Research",
20
+ "Topic :: Scientific/Engineering",
21
+ "Programming Language :: C++",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "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",
32
+ ]
12
33
 
13
34
  [project.urls]
14
35
  Repository = "https://github.com/EMob-Lab/HiPOP"
@@ -16,11 +37,12 @@ Issues = "https://github.com/EMob-Lab/HiPOP/issues"
16
37
 
17
38
  [dependency-groups]
18
39
  build = [ # Dependencies needed for build tasks. Must be maintained identical to "build-system".requires
40
+ "dynamic-metadata >= 0.5",
41
+ "pybind11 >= 3.1",
19
42
  "scikit-build-core >= 1.0",
20
- "pybind11", # TODO pybind11 version requirements?
21
43
  ]
22
44
  test = [ # Dependencies needed for test tasks. Must be maintained identical to tool.cibuildwheel."test-requires"
23
- "pytest >= 9.0",
45
+ "pytest >= 9.1",
24
46
  ]
25
47
  dev = [ # All dependencies needed for development tasks.
26
48
  { include-group = "build" },
@@ -33,14 +55,23 @@ distrib = [ # Dependencies needed to build distribution files (wheels & source d
33
55
 
34
56
  [build-system]
35
57
  requires = [ # Must be maintained identical to "dependency-groups".build
58
+ "dynamic-metadata >= 0.5",
59
+ "pybind11 >= 3.1",
36
60
  "scikit-build-core >= 1.0",
37
- "pybind11", # TODO pybind11 version requirements?
38
61
  ]
39
62
  build-backend = "scikit_build_core.build"
40
63
 
64
+ [[tool.dynamic-metadata]]
65
+ provider = "dynamic_metadata.from_file"
66
+ field = "version"
67
+ path = "VERSION.txt"
68
+
41
69
  [tool.scikit-build]
42
70
  wheel.packages = ["python/hipop"] # Location of the pure Python package to include in the wheel...
43
- wheel.exclude = ["**/*.cpp"] # ... but the C++ sources of the wrapper must be excluded.
71
+ wheel.exclude = [
72
+ "**/*.cpp", # ... but the C++ sources of the wrapper must be excluded...
73
+ "**/*.py.template", # ... and so are the templates of the dynamically-generated Python files.
74
+ ]
44
75
  build-dir = "build-scikit"
45
76
  editable.verbose = true
46
77
  editable.rebuild = true
@@ -50,6 +81,10 @@ HIPOP_WITH_PYTHON = "ON"
50
81
  HIPOP_WITH_TESTS = "OFF"
51
82
  HIPOP_WITH_EXAMPLES = "OFF"
52
83
 
84
+ [[tool.scikit-build.generate]]
85
+ path = "hipop/__init__.py"
86
+ template-path = "python/hipop/__init__.py.template"
87
+
53
88
  [tool.cibuildwheel]
54
89
  build = [ # Build Linux + Win for x64, and MacOS for ARM64. TODO is it enough?
55
90
  "*-manylinux_x86_64",
@@ -60,7 +95,7 @@ skip = [
60
95
  "cp3??t-*", # Free-threaded standard interpreter (https://docs.python.org/3/glossary.html#term-free-threading).
61
96
  ]
62
97
  test-requires = [ # Must be maintained identical to "dependency-groups".test
63
- "pytest >= 9.0",
98
+ "pytest >= 9.1",
64
99
  ]
65
100
  test-command = "pytest {project}"
66
101
 
@@ -0,0 +1 @@
1
+ __version__ = "${version}"
@@ -0,0 +1,13 @@
1
+ import hipop
2
+ import importlib.metadata
3
+
4
+
5
+ def test_version_consistency() -> None:
6
+
7
+ # "Package version" is the version defined in `cpp/hipop/__init__.py`.
8
+ package_version = hipop.__version__
9
+
10
+ # "Distribution version" is the version defined in `pyproject.toml`.
11
+ distribution_version = importlib.metadata.version("scisoftdev-tmp-hipop") # Name of the project in `pyproject.toml` TODO change it
12
+
13
+ assert package_version == distribution_version, "Package version and distribution version must be identical"
@@ -1,17 +0,0 @@
1
- # Development / CI environment for HiPOP.
2
- #
3
- # Usage:
4
- # conda create -f conda/env.yaml # Only once, to create the environment.
5
- # conda activate hipop-dev # Each time you want to work on HiPOP.
6
- #
7
- name: hipop-dev
8
- channels:
9
- - conda-forge
10
- - nodefaults # Disable the default Anaconda channel. TODO still some warnings in CI logs...
11
- dependencies:
12
- - cxx-compiler
13
- - cmake
14
- - ninja
15
- - llvm-openmp
16
- - pip
17
- - python=3.10
@@ -1,11 +0,0 @@
1
- # Build conda pkgs
2
-
3
- You need to have the conda package `conda-build` installed in your `base` environment.
4
-
5
- At the root of `hipop` run the following command inside a terminal:
6
-
7
- ```shell
8
- conda build . -c conda-forge --output-folder conda-bld
9
- ```
10
-
11
- If it is a success, you will find the package inside the `conda-bld` folder.
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -ex
3
-
4
- cd cpp
5
-
6
- cmake \
7
- -DCMAKE_PREFIX_PATH=$PREFIX\
8
- -DCMAKE_INSTALL_PREFIX=$PREFIX\
9
- -DBUILD_TESTS=ON\
10
- -DCMAKE_BUILD_TYPE=Release\
11
- -B build
12
-
13
- cmake --build build --parallel "${CPU_COUNT}"
14
- cmake --install build --config Release
15
-
16
- cd build && ctest
@@ -1,57 +0,0 @@
1
- {% set version = "0.0.3" %}
2
- package:
3
- name: hipop-pkgs
4
- version: {{ version }}
5
-
6
- source:
7
- path: ../..
8
-
9
- build:
10
- number: 0
11
- skip: true # [win]
12
-
13
- outputs:
14
- - name: hipoplib
15
- version: {{ version }}
16
- build:
17
- script: ${RECIPE_DIR}/build-hipoplib.sh
18
- requirements:
19
- build:
20
- - {{ compiler('cxx') }}
21
- - make
22
- - cmake
23
- - openmp
24
- test:
25
- script: ${RECIPE_DIR}/test-hipoplib.sh
26
-
27
- - name: hipop
28
- version: {{ version }}
29
- build:
30
- script: $PYTHON -m pip install --no-deps ./python
31
- requirements:
32
- build:
33
- - {{ compiler('cxx') }}
34
- - make
35
- - cmake
36
- - python=3.10
37
- host:
38
- - python=3.10
39
- - hipoplib
40
- - pybind11
41
- run:
42
- - python=3.10
43
- - hipoplib
44
- - numpy
45
- - matplotlib
46
- test:
47
- imports:
48
- - hipop.cpp
49
-
50
- about:
51
- # license: LGPL 3.0
52
- # license_file:
53
- summary: 'HiPOP is a graph implementation for traffic simulation in C++ with python bindings.'
54
- description: |
55
- HiPOP is a graph implementation for traffic simulation in C++ with python bindings.
56
- # doc_url:
57
- dev_url: https://github.com/licit-lab/HiPOP
@@ -1 +0,0 @@
1
- __version__ = "0.0.3"