diff --git a/.gitignore b/.gitignore
index 688569368..d77a41f61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ venv*
venv3.11/
.idea/*
.pytest_cache/*
+build/*
+*.egg-info
\ No newline at end of file
diff --git a/README.md b/README.md
index bbae4081d..56e919750 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,8 @@ Camille Maumet ([@cmaumet](https://github.com/cmaumet)) and Satrajit Ghosh ([@sa
- Cyril Regan ([@cyril-data](https://github.com/cyril-data))💻👀📖
🐛
+- Boris Clénet ([@bclenet](https://github.com/bclenet))💻📖🐛
+
This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!
@@ -80,7 +82,41 @@ Mature building blocks of NIDM:
[New features (to be included)](new_features.md)
-## Run parsers on the SPM, FSL and AFNI data
+## Using the code
+
+### Visualize your BIDSprov data
+
+To visualize your BIDSprov data, perform the following steps :
+1. [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the code inside a `BEP028_BIDSprov` directory, and cd into this directory :
+
+```shell
+git clone git@github.com:bids-standard/BEP028_BIDSprov.git
+cd BEP028_BIDSprov
+```
+
+3. install the `bids_prov` python package :
+
+```shell
+pip install .
+```
+
+4. you should be able to launch the visualizer on your .jsonld files with the command `bids_prov_visualizer`
+
+```shell
+bids_prov_visualizer --input_file graph.jsonld --output_file graph.png
+
+bids_prov -h
+ usage: bids_prov_visualizer [-h] --input_file INPUT_FILE [--output_file OUTPUT_FILE]
+
+ options:
+ -h, --help show this help message and exit
+ --input_file INPUT_FILE
+ input BIDSprov data as a .jsonld file
+ --output_file OUTPUT_FILE
+ output .png file showing BIDSprov graph
+```
+
+### Run parsers on the SPM, FSL and AFNI data
To obtain data in **bids-prov format**, you can use the developed parsers.
* [Tutorial](https://github.com/bids-standard/BEP028_BIDSprov/blob/master/bids_prov/README.md)
diff --git a/bids_prov/visualize.py b/bids_prov/visualize.py
index fc1783116..5f8bd900d 100644
--- a/bids_prov/visualize.py
+++ b/bids_prov/visualize.py
@@ -111,12 +111,15 @@ def main(filename: str, output_file=None, omit_details=True) -> None:
viz_jsonld11(jsonld11, output_file)
-if __name__ == "__main__":
-
+def entry_point():
+ """ A command line tool for the visualize module """
parser = argparse.ArgumentParser()
- parser.add_argument("--input_file", type=str, default="res.jsonld", help="data jsonld file ")
- parser.add_argument("--output_file", type=str, default="res.png", help="output dir where results are written")
+ parser.add_argument("--input_file", type=str, help="input BIDSprov data as a .jsonld file ", required=True)
+ parser.add_argument("--output_file", type=str, default="output_graph.png", help="output .png file showing BIDSprov graph")
opt = parser.parse_args()
main(opt.input_file, output_file=opt.output_file, omit_details=True)
# >> python -m bids_prov.visualize --input_file ./res_temp.jsonld --output_file res.png
+
+if __name__ == "__main__":
+ entry_point()
diff --git a/examples/from_parsers/context_2024_05_23_08h10m05s.txt b/examples/from_parsers/context_2024_10_04_14h05m36s.txt
similarity index 98%
rename from examples/from_parsers/context_2024_05_23_08h10m05s.txt
rename to examples/from_parsers/context_2024_10_04_14h05m36s.txt
index 6faa5841c..67e630347 100644
--- a/examples/from_parsers/context_2024_05_23_08h10m05s.txt
+++ b/examples/from_parsers/context_2024_10_04_14h05m36s.txt
@@ -1,4 +1,4 @@
-Date : 2024_05_23_08h10m05s
+Date : 2024_10_04_14h05m36s
Processing files...
file= nidmresults-examples/afni_alt_onesided_proc.sub_001
file= nidmresults-examples/afni_alt_onesided_proc.sub_001
@@ -69,4 +69,4 @@ Processing files...
file= nidmresults-examples/spm_thr_voxelfdrp05_batch.m
file= nidmresults-examples/spm_thr_voxelfwep05_batch.m
file= nidmresults-examples/spm_thr_voxelunct4_batch.m
-End of processed files. Results in dir : 'examples/from_parsers'. Time required: 0:00:01.882820
+End of processed files. Results in dir : 'examples/from_parsers'. Time required: 0:00:01.927037
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 000000000..9f6db35d4
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,56 @@
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "bids_prov"
+authors = [
+ "Camille Maumet",
+ "Satrajit Ghosh",
+ "Stefan Appelhoff",
+ "Chris Markiewicz",
+ "Yaroslav Halchenko",
+ "Jean-Baptiste Poline",
+ "Rémi Adon",
+ "Hermann Courteille",
+ "Thomas Betton",
+ "Cyril Regan",
+ "Boris Clénet"
+]
+description = "BIDS extension proposal 28 : BIDS Provenance"
+version = "0.1.0"
+readme = "README.md"
+requires-python = ">=3.10, <3.11"
+license = "CC-BY-4.0"
+classifiers = [
+ "Intended Audience :: Science/Research",
+ "Programming Language :: Python :: 3",
+ "Topic :: Scientific/Engineering",
+ "Topic :: Scientific/Engineering :: Medical Science Apps."
+]
+include = ["bids_prov/visualize.py"]
+exclude = ["bids_prov*"]
+
+[tool.poetry.dependencies]
+python = "^3.10.0"
+beautifulsoup4 = "^4.12.3"
+boutiques = "^0.5.26"
+click = "^8.1.7"
+deepdiff = "^7.0.1"
+graphviz = "^0.20.3"
+rdflib = "^7.0.0"
+rdflib-jsonld = "^0.6.2"
+prov = "^2.0.0"
+pydot = "^2.0.0"
+pyld = "^2.0.4"
+pyyaml = "^6.0.1"
+requests = "^2.32.3"
+
+[tool.poetry.group.dev.dependencies]
+black = "^24.4.2"
+markdownify = "^0.12.1"
+pre-commit = "^3.7.1"
+pytest-cov = "^5.0.0"
+
+[tool.poetry.scripts]
+bids_prov_visualizer = "bids_prov.visualize:entry_point"