Skip to main content

rocrate-action-recorder

PyPI DOI Research Software Directory Badge github repo badge github license badge CI readthedocs

Python package to record calls of Python CLI commands into a Research Object Crate (RO-Crate). Useful to track which commands were executed, which files were used as input or output, and which software was used to execute the command.

Supports RO-Crate 1.1 specification. Specifically the Process Run Crate profile.

Provides adapters for CLIs based on:

Install

pip install rocrate-action-recorder

For Click support, install the optional extra:

pip install "rocrate-action-recorder[click]"

For Cyclopts support, install the optional extra:

pip install "rocrate-action-recorder[cyclopts]"

Usage

Example of recording a CLI command (example-cli input.txt output.txt) implemented with argparse.

import argparse
from pathlib import Path
import sys

from rocrate_action_recorder import recorded_argparse

parser = argparse.ArgumentParser(prog="example-cli", description="Example CLI")
parser.add_argument("--version", action="version", version="%(prog)s 1.2.3")
parser.add_argument("--no-record", action="store_false", help="Disable RO-Crate recording.")
parser.add_argument("input", type=Path, help="Input file")
parser.add_argument("output", type=Path, help="Output file")


@recorded_argparse(
    parser=parser,
    input_files=["input"],
    output_files=["output"],
    dataset_license="CC-BY-4.0",
    enabled_argument="no_record",
)
def handler(args: argparse.Namespace):
    # For demonstration, just upper case input to output, replace with real logic
    args.output.write_text(args.input.read_text().upper())


# Prepare input
Path("input.txt").write_text("hello")
# Simulate command-line arguments
sys.argv.extend(["input.txt", "output.txt"])

args = parser.parse_args()
handler(args)

After execution, a ro-crate-metadata.json file (like this one) will be generated in the current working directory, describing the execution of the CLI command.

You can also call the low-level record function directly.

See documentation for more details.

Contributions

See AGENTS.md for commands and hints for contributions.

Citation

See CITATION.cff for citation information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rocrate_action_recorder-0.7.0.tar.gz (91.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rocrate_action_recorder-0.7.0-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file rocrate_action_recorder-0.7.0.tar.gz.

File metadata

  • Download URL: rocrate_action_recorder-0.7.0.tar.gz
  • Upload date:
  • Size: 91.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for rocrate_action_recorder-0.7.0.tar.gz
Algorithm Hash digest
SHA256 043e1fa682511616b8d2ed6dc755e9b40b2b95ef51ecfa48a4d01215e7e38466
MD5 7bb66c8c584449eeea1ab6e04c6b016b
BLAKE2b-256 5cb45112432ba2f773660259261829488affafefde45c4ac3c02f1aaf3901aa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocrate_action_recorder-0.7.0.tar.gz:

Publisher: publish.yml on i-VRESSE/rocrate-action-recorder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocrate_action_recorder-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rocrate_action_recorder-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 688413e7d4e3d8581b12d4cbe8322bc87185220df9a9b48d1a8eadb9ff392289
MD5 c3fb6e7f9014a7c64f4066074c40f909
BLAKE2b-256 2039c40d52bb2e189763f1fe038b769209b64f523f1544fae5e970edab7e0dc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocrate_action_recorder-0.7.0-py3-none-any.whl:

Publisher: publish.yml on i-VRESSE/rocrate-action-recorder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.7.1

2 files

This release

0.7.0 This release

2 files

0.6.0

2 files

0.5.3

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page