oh-my-batch 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

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.
@@ -1,6 +1,7 @@
1
+ GREEN='\033[0;32m'
2
+ NC='\033[0m'
1
3
 
2
4
  checkpoint() {
3
- # Usage: checkpoint <flag_file> <command> [arg1] [arg2] ...
4
5
  local flag_file="$1"
5
6
  shift # Remove the first argument so $@ contains only the command and its arguments
6
7
  if [ -f "$flag_file" ]; then
@@ -10,6 +11,7 @@ checkpoint() {
10
11
  local exit_code=$?
11
12
  if [ $exit_code -eq 0 ]; then
12
13
  local current_time=$(date '+%Y-%m-%d %H:%M:%S')
14
+ mkdir -p "$(dirname "$flag_file")"
13
15
  printf 'Command succeeded at %s\n' "$current_time" > "$flag_file"
14
16
  echo "Created flag file '$flag_file' with timestamp: $current_time"
15
17
  else
@@ -18,3 +20,16 @@ checkpoint() {
18
20
  fi
19
21
  fi
20
22
  }
23
+
24
+ echo -e "${GREEN}Functiion: checkpoint${NC}"
25
+ cat <<EOF
26
+ Usage:
27
+ checkpoint <flag_file> <command> [arg1] [arg2] ...
28
+
29
+ Set a flag file to indicate the completion of a command,
30
+ so that it will not be executed again next time.
31
+
32
+ Example:
33
+ checkpoint lmp.done lmp -in in.lmp
34
+
35
+ EOF
oh_my_batch/cli.py CHANGED
@@ -23,6 +23,9 @@ class OhMyBatch:
23
23
  def job(self):
24
24
  return JobCli()
25
25
 
26
+ def misc(self):
27
+ from .misc import Misc
28
+ return Misc()
26
29
 
27
30
  def main():
28
31
  fire.Fire(OhMyBatch)
oh_my_batch/misc.py ADDED
@@ -0,0 +1,14 @@
1
+ from .assets import get_asset
2
+
3
+ class Misc:
4
+
5
+ def export_shell_func(self):
6
+ """
7
+ Export shell functions for batch scripts
8
+
9
+ For example, you can load them to you shell environment with the following command:
10
+ omb misc export-shell-func > omb-func.sh && source omb-func.sh
11
+ """
12
+ shell_func = get_asset('functions.sh')
13
+ with open(shell_func, 'r', encoding='utf-8') as f:
14
+ print(f.read())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oh-my-batch
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary:
5
5
  License: GPL
6
6
  Author: weihong.xu
@@ -22,19 +22,33 @@ Description-Content-Type: text/markdown
22
22
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/oh-my-batch)](https://pypi.org/project/oh-my-batch/)
23
23
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oh-my-batch)](https://pypi.org/project/oh-my-batch/)
24
24
 
25
- A simple tool to manipulate batch tasks designed for scientific computing community.
25
+ A toolkit to manipulate batch tasks with command line. Designed for scientific computing community.
26
26
 
27
27
  ## Features
28
28
  * `omb combo`: generate folders/files from different combinations of parameters
29
29
  * `omb batch`: generate batch scripts from multiple working directories
30
30
  * `omb job`: track the state of job in job schedular
31
31
 
32
+ ## Shell Tips
33
+ `oh-my-batch` is intended to help you implement computational workflows with shell scripts.
34
+ To make the best use of `oh-my-batch`, you need to know some shell tips.
35
+
36
+ * [Retry commands until success in shell script](https://stackoverflow.com/a/79191004/3099733)
37
+
32
38
  ## Install
33
39
  ```bash
34
40
  pip install oh-my-batch
35
41
  ```
36
42
 
37
43
  ## Use cases
44
+ ### Load useful functions to your shell script
45
+ You can load useful functions from `oh-my-batch` this way:
46
+
47
+ ```bash
48
+ omb misc export-shell-func > omb-func.sh && source omb-func.sh
49
+ ```
50
+
51
+ This will load some useful functions to your shell script, for example, `checkpoint` function.
38
52
 
39
53
  ### Generate files from different combinations of parameters
40
54
 
@@ -1,14 +1,15 @@
1
1
  oh_my_batch/__init__.py,sha256=BsRNxZbqDWfaIZJGxzIDqCubRWztMGFDceW08TECuFs,98
2
2
  oh_my_batch/__main__.py,sha256=sWyFZMwWNvhkanwZSJRGfBBDoIevhC028dTSB67i6yI,61
3
3
  oh_my_batch/assets/__init__.py,sha256=Exub46UbQaz2V2eXpQeiVfnThQpXaNeuyjlGY6gBSZc,130
4
- oh_my_batch/assets/functions.sh,sha256=eORxFefV-XrWbG-2I6u-c8uf1XxOQ31LaeVHBumwzJ4,708
4
+ oh_my_batch/assets/functions.sh,sha256=dvPGpOKz4CyUSlE5IAewQc8HUrQJuaZ0j-WZIuxB3Tg,1002
5
5
  oh_my_batch/batch.py,sha256=6qnaXEVyA493heGzzbCrdZXCcnYk8zgl7WP0rmo7KlU,3690
6
- oh_my_batch/cli.py,sha256=uelW9ms1N30DipJOcsiuG5K-5VN8O6yu1RNEqex00GY,475
6
+ oh_my_batch/cli.py,sha256=jMSM_orAamNoEP7jPsbp0UYPX-UDY1-kHSHO31zELHs,548
7
7
  oh_my_batch/combo.py,sha256=R_WTO4v-LWHIQ0O46bIgeRlL_RGrFcf8305S9auqeQk,7679
8
8
  oh_my_batch/job.py,sha256=8kZnWtvpr1rAl4tc9I_Vlhi-T0o3rh4RQZZgMNBCGho,5800
9
+ oh_my_batch/misc.py,sha256=G_iOovRCrShBJJCc82QLN0CvMqW4adOefEoY1GedEiw,452
9
10
  oh_my_batch/util.py,sha256=okg_kY8dJouyJ2BYCXRl7bxDUAtNH6GLh2UjXRnkoW0,2385
10
- oh_my_batch-0.2.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
11
- oh_my_batch-0.2.0.dist-info/METADATA,sha256=_qeLyk6LEg2--NU9NqgMoV2WU96125A0eiIOdJFY760,4759
12
- oh_my_batch-0.2.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
13
- oh_my_batch-0.2.0.dist-info/entry_points.txt,sha256=ZY2GutSoNjjSyJ4qO2pTeseKUFgoTYdvmgkuZZkwi68,77
14
- oh_my_batch-0.2.0.dist-info/RECORD,,
11
+ oh_my_batch-0.2.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
12
+ oh_my_batch-0.2.1.dist-info/METADATA,sha256=T1BENQ_GWqbWw3u-H5jMmigUCsuoTs3eNox-uaFjORA,5328
13
+ oh_my_batch-0.2.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
14
+ oh_my_batch-0.2.1.dist-info/entry_points.txt,sha256=ZY2GutSoNjjSyJ4qO2pTeseKUFgoTYdvmgkuZZkwi68,77
15
+ oh_my_batch-0.2.1.dist-info/RECORD,,