Skip to content

Commit 4c8bb49

Browse files
committed
Add crate-version to CLI
1 parent ce63601 commit 4c8bb49

3 files changed

Lines changed: 22 additions & 3 deletions

File tree

rocrate/cli.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,15 @@ def cli():
9292
metavar="NAME",
9393
help="Exclude files or directories from the metadata file. NAME may be a single name or a comma-separated list of names.",
9494
)
95+
@click.option(
96+
"--crate-version",
97+
default="1.2",
98+
type=str,
99+
help="Version of the RO-Crate standard to initialize the crate with.",
100+
)
95101
@OPTION_CRATE_PATH
96-
def init(crate_dir, gen_preview, exclude):
97-
crate = ROCrate(crate_dir, init=True, gen_preview=gen_preview, exclude=exclude)
102+
def init(crate_dir, gen_preview, exclude, crate_version):
103+
crate = ROCrate(crate_dir, init=True, gen_preview=gen_preview, exclude=exclude, version=crate_version)
98104
crate.metadata.write(crate_dir)
99105
if crate.preview:
100106
crate.preview.write(crate_dir)

rocrate/rocrate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def __init__(self,
143143
self.mode = Mode.INIT
144144
if isinstance(source, dict):
145145
raise ValueError("parameter 'init' is not compatible with a dict source")
146-
self.__init_from_tree(source, gen_preview=gen_preview)
146+
self.__init_from_tree(source, gen_preview=gen_preview, version=version)
147147
else:
148148
self.mode = Mode.READ
149149
source = self.__read(source, gen_preview=gen_preview)

test/test_cli.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,19 @@ def test_cli_init(test_data_dir, helpers, monkeypatch, cwd, gen_preview):
120120
assert json_entities["sort-and-change-case.ga"]["@type"] == "File"
121121

122122

123+
@pytest.mark.parametrize("version", ["1.0", "1.1"])
124+
def test_cli_init_version(test_data_dir, helpers, version):
125+
crate_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
126+
metadata_path = crate_dir / helpers.METADATA_FILE_NAME
127+
metadata_path.unlink()
128+
args = ["init", "-c", str(crate_dir), "--crate-version", version]
129+
130+
CliRunner().invoke(cli, args)
131+
132+
with metadata_path.open('r') as file:
133+
assert json.load(file)['@context'] == f"https://w3id.org/ro/crate/{version}/context"
134+
135+
123136
def test_cli_init_exclude(test_data_dir, helpers):
124137
crate_dir = test_data_dir / "ro-crate-galaxy-sortchangecase"
125138
(crate_dir / helpers.METADATA_FILE_NAME).unlink()

0 commit comments

Comments
 (0)