From 567c54515254cfe7ae1a8270e7c20bea681831e8 Mon Sep 17 00:00:00 2001 From: ferrari <maxence.ferrari@gmail.com> Date: Mon, 26 Jun 2023 12:09:32 +0200 Subject: [PATCH] Add documentation --- READLE.md | 51 ++++++++++++++++++++++++++++++++++++++++++++ src/auto_git_info.py | 10 ++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 READLE.md diff --git a/READLE.md b/READLE.md new file mode 100644 index 0000000..d204568 --- /dev/null +++ b/READLE.md @@ -0,0 +1,51 @@ +Auto Git info +============== + +`auto_git_info.py` is a python module made to save a run parameters and git versions. +It will create a json file with those information. + +Installation +------------ +To install `auto_git_info.py` +``` +pip install git+https://gitlab.lis-lab.fr/maxence.ferrari/auto_git_info.git +``` +To uninstall, just type `pip uninstall auto_git_info` + +Basic usage +----- + +```python +from auto_git_info import log_info +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument("input", type=str, help="Input file") + parser.add_argument("--output", type=str, default=None, help="Output file") + + args = parser.parse_args() + log_info(args) +``` +This will create a json file in `run_log/` by default, with the current time as a name. +The json file created will be: +```json +{"script": "/home/xxx/Documents/Python/auto_git_info/test_auto_git.py", + "commit": "7ce86099e62e7ffdfe77fbbcafbe48b862c269b9", + "parameters": {"input": "rnd_input", + "output": null}, + "time": "2023-06-23T18:04:30.894271"} +``` + + +Advance usage +------------- +#### args +Instead of passing the `Namespace` object from the `ArgumentParser` parser, you can also directly pass the parser itself. +Alternatively, you can pass a dictionary or any serializable object. +You can also use `None` if you don't have any arguments. + + +#### path +If you don't want the default path you can use the `path` named argument to specify the path to save the info. +Any intermediate directories will be created. diff --git a/src/auto_git_info.py b/src/auto_git_info.py index 5e3bd40..8328725 100644 --- a/src/auto_git_info.py +++ b/src/auto_git_info.py @@ -7,7 +7,15 @@ import warnings import __main__ -def log_info(args, path=None): +def log_info(args, *, path=None): + """ + Create a json file with script, commit, parameters, and time keys. + The commit is the commit sha and script is the main script executed + + args: An argparse object, None or any serializable objet + path: Path to the json file. default to 'run_log/current_time.json' + + """ time = datetime.datetime.now().isoformat() if isinstance(args, argparse.Namespace): args = args.__dict__ -- GitLab