runem 0.5.0__py3-none-any.whl → 0.7.0__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.
@@ -0,0 +1,162 @@
1
+ Metadata-Version: 2.4
2
+ Name: runem
3
+ Version: 0.7.0
4
+ Summary: Awesome runem created by lursight
5
+ Author: lursight
6
+ License: Specify your license here
7
+ Project-URL: Homepage, https://github.com/lursight/runem/
8
+ Keywords: example,runem
9
+ Classifier: Programming Language :: Python :: 3.7
10
+ Classifier: Programming Language :: Python :: 3.8
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Requires-Python: >=3.7
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: packaging>=22.0
18
+ Requires-Dist: PyYAML>=5.0.0
19
+ Requires-Dist: jsonschema>=4.22
20
+ Requires-Dist: rich>10.0.0
21
+ Requires-Dist: typing_extensions>3.0.0
22
+ Provides-Extra: tests
23
+ Requires-Dist: coverage==7.5; extra == "tests"
24
+ Requires-Dist: flake8-bugbear==24.2.6; extra == "tests"
25
+ Requires-Dist: flake8==7.0.0; extra == "tests"
26
+ Requires-Dist: gitchangelog==3.0.4; extra == "tests"
27
+ Requires-Dist: mkdocs==1.5.3; extra == "tests"
28
+ Requires-Dist: mypy==1.9.0; extra == "tests"
29
+ Requires-Dist: pydocstyle==6.3.0; extra == "tests"
30
+ Requires-Dist: pylint==3.3.6; extra == "tests"
31
+ Requires-Dist: pylama==8.4.1; extra == "tests"
32
+ Requires-Dist: pytest-cov==6.1.1; extra == "tests"
33
+ Requires-Dist: pytest-profiling==1.7.0; extra == "tests"
34
+ Requires-Dist: pytest-xdist==3.6.1; extra == "tests"
35
+ Requires-Dist: pytest==8.3.5; extra == "tests"
36
+ Requires-Dist: ruff==0.11.6; extra == "tests"
37
+ Requires-Dist: setuptools; extra == "tests"
38
+ Requires-Dist: termplotlib==0.3.9; extra == "tests"
39
+ Requires-Dist: tox; extra == "tests"
40
+ Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "tests"
41
+ Requires-Dist: requests-mock==1.11.0; extra == "tests"
42
+ Requires-Dist: types-jsonschema; extra == "tests"
43
+ Requires-Dist: types-setuptools; extra == "tests"
44
+ Dynamic: license-file
45
+
46
+ <!-- [![codecov](https://codecov.io/gh/lursight/runem/branch/main/graph/badge.svg?token=run-test_token_here)](https://codecov.io/gh/lursight/runem) -->
47
+ [![CI](https://github.com/lursight/runem/actions/workflows/main.yml/badge.svg)](https://github.com/lursight/runem/actions/workflows/main.yml)
48
+ [![DOCS](https://lursight.github.io/runem/docs/VIEW-DOCS-31c553.svg)](https://lursight.github.io/runem/)
49
+
50
+ # Run’em
51
+
52
+ **Your Blueprint of Commands. Your Engine of Parallel Execution.**
53
+ Run’em is your definitive blueprint of tasks and commands—instantly discoverable, effortlessly parallel, and elegantly extensible.
54
+
55
+ ## Core Strengths
56
+
57
+ **Blueprint** - discover tasks and onboard smoothly\
58
+ **Parallel** - get results quicker\
59
+ **Simple** - define task easily\
60
+ **Extensible** - add tasks quickly\
61
+ **Filters** - powerful task selection\
62
+ **Reports** - see metrics on tasks
63
+
64
+ ## Why Run’em?
65
+ - **Command Blueprint:** Instantly see and run all your tasks. No guesswork, no rummaging.
66
+ - **Effortless Parallelism:** Execute tasks side-by-side to obliterate downtime.
67
+ - **Simple YAML Declarations:** Define everything in one `.runem.yml`.
68
+ - **Extensible & Smart:** Adapt to monorepos, complex workflows, and evolving needs.
69
+ - **Discoverable by Design:** `runem --help` guides your team, new hires, or contributors to every defined command.
70
+
71
+ ## Contents
72
+ - [Run’em](#runem)
73
+ - [Core Strengths](#core-strengths)
74
+ - [Why Run’em?](#why-runem)
75
+ - [Contents](#contents)
76
+ - [Highlights](#highlights)
77
+ - [Quick Start](#quick-start)
78
+ - [Basic Use](#basic-use)
79
+ - [Advanced Use](#advanced-use)
80
+ - [Help & Discovery](#help--discovery)
81
+ - [Troubleshooting](#troubleshooting)
82
+ - [Contribute & Support](#contribute--support)
83
+ - [About Run’em](#about-runem)
84
+
85
+ # Highlights
86
+ ## Blueprint of Commands:
87
+ The blueprint (available via `--help`) gives you a manifest of all jobs and tasks in a
88
+ project. A single source of truth for all tasks.
89
+ ## Parallel Execution:
90
+ Maximise speed with automatic concurrency. Runem tries to run all tasks as quickly as
91
+ possible, looking at resources, with dependencies. It is not yet a full
92
+ dependency-execution graph, but by version 1.0.0 it will be.
93
+ ## Filtering:
94
+ Use powerful and flexible filtering. Select or excluded tasks by `tags`, `name` and
95
+ `phase`. Chose the task to be run based on your needs, right now.
96
+
97
+ You can also customise filtering by adding your own command `options`.
98
+
99
+ See `--tags`, `--not-tags`, `--jobs`, `--not-jobs`, `--phases` and `--not-phases`.
100
+ ## Powerful Insights:** Understand what ran, how fast, and what failed.
101
+ **Quiet by Default:** Focus on what matters, and reveal detail only when needed.
102
+
103
+ # Quick Start
104
+ **Install:**
105
+ ```bash
106
+ pip install runem
107
+ ```
108
+ **Define a task:**
109
+
110
+ ```yaml
111
+ `# .runem.yml
112
+ - job:
113
+ command: echo "hello world!"
114
+ ```
115
+
116
+ **Run:**
117
+
118
+ ```bash
119
+ runem
120
+ ```
121
+
122
+ Run multiple commands in parallel, see timing, and keep output minimal. Need detail?
123
+
124
+ ```bash
125
+ runem --verbose
126
+ ```
127
+
128
+ [Quick Start Docs](https://lursight.github.io/runem/docs/quick_start.html)
129
+
130
+ # Basic Use
131
+
132
+ Get comfortable with typical workflows:
133
+ [Basic Use Docs](https://lursight.github.io/runem/docs/basic_use.html)
134
+
135
+ # Advanced Use
136
+
137
+ Scale up with multi-phase configs, filtered execution, and custom reporting:
138
+ [Advanced Configuration](https://lursight.github.io/runem/docs/configuration.html)
139
+ [Custom Reporting](https://lursight.github.io/runem/docs/reports.html)
140
+
141
+ # Help & Discovery
142
+
143
+ `runem --help` is your radar—instantly mapping out every available task:
144
+ [Help & Job Discovery](https://lursight.github.io/runem/docs/help_and_job_discovery.html)
145
+
146
+ # Troubleshooting
147
+
148
+ Swift solutions to common issues:
149
+ [Troubleshooting & Known Issues](https://lursight.github.io/runem/docs/troubleshooting_known_issues.html)
150
+
151
+ ---
152
+
153
+ # Contribute & Support
154
+
155
+ Brought to you by [Lursight Ltd.](https://lursight.com) and an open community.
156
+ [CONTRIBUTING.md](CONTRIBUTING.md)
157
+ [❤️ Sponsor](https://github.com/sponsors/lursight/)
158
+
159
+ # About Run’em
160
+
161
+ Run’em exists to accelerate your team’s delivery and reduce complexity. Learn about our [Mission](https://lursight.github.io/runem/docs/mission.html).
162
+
@@ -0,0 +1,56 @@
1
+ runem/VERSION,sha256=ln2a-xATRmZxZvLnboGRC8GQSI19QdUMoAcunZLwDjI,6
2
+ runem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ runem/__main__.py,sha256=dsOiVZegpfK9JOs5n7UmbX5iwwbj7iFkEbLoVeEgAn4,136
4
+ runem/base.py,sha256=EZfR7FIlwEdU9Vfe47Wk2DOO8GQqpKxxLNKp6YHueZ4,316
5
+ runem/blocking_print.py,sha256=2nCvc10zXl1DRJldkruKthKjfmZKErcmxQzt3pjmN-c,2289
6
+ runem/cli.py,sha256=wEt_Jnumhl8SiOdKdSJzLkJpWv6n3_Odhi_HeIixr1k,134
7
+ runem/command_line.py,sha256=Q5xH7kGzc3YpIbGpU43B_pwKvp-LchSW7IgfGnf2Ke0,14437
8
+ runem/config.py,sha256=PWj4wj90WrRiGuXOUy6mpevJXQM57epDWG5NYDrGK2w,6049
9
+ runem/config_metadata.py,sha256=krDomUcADsAeUQrxwNmOS58eeaNIlqmhWIKWv8mUH4A,3300
10
+ runem/config_parse.py,sha256=d23dtmh4bd14R4odrZtIVTQFfnzxrRGdTHhfVAf-dbA,13843
11
+ runem/config_validate.py,sha256=gtatObD1qBkEK-0CJ2rJPT5A7EBTWE_9V_AiGZZ1FQI,1424
12
+ runem/files.py,sha256=59boeFvUANYOS-PllIjeKIht6lNINZ43WxahDg90oAc,4392
13
+ runem/hook_manager.py,sha256=H0TL3HCqU2mgKm_-dgCD7TsK5T1bLT4g7x6kpytMPhU,4350
14
+ runem/informative_dict.py,sha256=4UUE_RU6zEX1JFFlVUK5EMdmPdJ5ZOo5scU93fYi0iU,1831
15
+ runem/job.py,sha256=SX_uHaFxocFm2QT2hRTfAv7mADnMj2th85L_JzYwS-4,3440
16
+ runem/job_execute.py,sha256=Sn5v7KoyCOw2FH-bJaur_zYChwmvCXhmdZ692B3SZA8,4792
17
+ runem/job_filter.py,sha256=4KMjsI5-tiK0b90RTlivxm5Xdt0gWdRz30voqqL_ijI,5374
18
+ runem/job_runner_simple_command.py,sha256=iP5an6yixW8o4C0ZBtu6csb-oVK3Q62ZZgtHBmxlXaU,2428
19
+ runem/job_wrapper.py,sha256=q5GtopZ5vhSJ581rwU4-lF9KnbL3ZYgOC8fqaCnXD_g,983
20
+ runem/job_wrapper_python.py,sha256=os6BruA3bOqeXB0Jiwm20P5TyxlMb-wSILFtkccDN2s,4302
21
+ runem/log.py,sha256=MEGWEBeFs0YVkr_U9UXnl4Isqc5MvGbEn_I3fo-V35Q,1422
22
+ runem/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ runem/report.py,sha256=qiGu0PPcbeFh9KJHtFKjH_LQHDfYuDgLVbUA81fNsLI,9124
24
+ runem/run_command.py,sha256=jz-vP9yw3WDM_0mc5KrBpqFcASSQUFB9zz9u_le-m8A,7692
25
+ runem/runem.py,sha256=Lm0mg8oTe7pCvQVZob6KR6zq7G5xoMTjrCfhBlCQwZQ,13436
26
+ runem/runem_version.py,sha256=MbETwZO2Tb1Y3hX_OYZjKepEMKA1cjNvr-7Cqhz6e3s,271
27
+ runem/schema.yml,sha256=LmQVtVbziaH_Z3aaE5-njR7qPYTP8qqruNQt8rVfv5M,3720
28
+ runem/utils.py,sha256=MEYfox09rLvb6xmay_3rV1cWmdqMbhaAjOomYGNk15k,602
29
+ runem/yaml_utils.py,sha256=RyAvEp679JvavE0Kbs263Ofh8_tTXXHUdtblSeHovfU,554
30
+ runem/yaml_validation.py,sha256=j8vnufeV8FRwg15wbitL_QLP4nh25Rx1L_14Oc2puwU,877
31
+ runem/cli/initialise_options.py,sha256=91QjAHdfhUNI9nWVDnHAqNshxCXytXQfbsEaQo3FMLc,917
32
+ runem/types/__init__.py,sha256=0bWG7hE7VeqJ2oIu-xhrqQud8hcNp6WNbF3uMfT_n9g,314
33
+ runem/types/common.py,sha256=gPMSoJ3yRUYjHnoviRrpSg0gRwsGLFGWGpbTWkq4jX0,279
34
+ runem/types/errors.py,sha256=9A4V5qT3ofolqRxrqBI9i9jX3r60x8nQnQnt9w1Y3co,403
35
+ runem/types/filters.py,sha256=8R5fyMssN0ISGBilJhEtbdHFl6OP7uI51WKkB5SH6EA,255
36
+ runem/types/hooks.py,sha256=9Q5THuBEH0Asdx5cj0caNmO54RckwR0tT3AgRXFROhs,292
37
+ runem/types/options.py,sha256=y8_hyWYvhalC9-kZbvoDtxm0trZgyyGcswQqfuQy_pM,265
38
+ runem/types/runem_config.py,sha256=qG_bghm5Nr-ZTbaZbf1v8Fx447V-hgEvvRy5NZ3t-Io,5141
39
+ runem/types/types_jobs.py,sha256=99b2TLwBiqjOurxRWWU7E9BlphR0KketUUSqUD_Kh5c,4432
40
+ runem-0.7.0.dist-info/licenses/LICENSE,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
41
+ scripts/test_hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ scripts/test_hooks/json_validators.py,sha256=N2FyWcpjWzfFGycXLo-ecNLJkxTFPPbqPfVBcJLBlb4,967
43
+ scripts/test_hooks/py.py,sha256=Nku44p6ZqJb5d9uo2bPfpeqf8g1LDHRDqL4ou0Y0G_k,10520
44
+ scripts/test_hooks/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ scripts/test_hooks/runem_hooks.py,sha256=FJMuDBEOz3dr9gBW3WW6yKbUJs_LFXb3klpqSzCAZRk,628
46
+ scripts/test_hooks/yarn.py,sha256=1QsG1rKAclpZoqp86ntkuvzYaYN4UkEvO0JhO2Kf5C8,1082
47
+ tests/cli/test_initialise_options.py,sha256=Ogwfqz39r2o1waXMqCC22OJsgZoLF2stwGVO5AZUc4s,3148
48
+ tests/data/help_output.3.10.txt,sha256=5TUpNITVL6pD5BpFAl-Orh3vkOpStveijZzvgJuI_sA,4280
49
+ tests/data/help_output.3.11.txt,sha256=ycrF-xKgdQ8qrWzkkR-vbHe7NulUTsCsS0_Gda8xYDs,4162
50
+ tests/test_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ tests/test_types/test_public_api.py,sha256=QHiwt7CetQur65JSbFRnOzQxhCJkX5MVLymHHVd_6yc,160
52
+ runem-0.7.0.dist-info/METADATA,sha256=MqlLB5gsFKqQbmmvieTPHUy3JNiSrEAnRq94gKdM6f8,5894
53
+ runem-0.7.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
54
+ runem-0.7.0.dist-info/entry_points.txt,sha256=nu0g_vBeuPihYtimbtlNusxWovylMppvJ8UxdJlJfvM,46
55
+ runem-0.7.0.dist-info/top_level.txt,sha256=NkdxkwLKNNhxItveR2KqNqTshTZ268m5D7SjJEmG4-Y,20
56
+ runem-0.7.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (79.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
scripts/test_hooks/py.py CHANGED
@@ -9,7 +9,69 @@ from runem.run_command import RunCommandUnhandledError, run_command
9
9
  from runem.types import FilePathList, JobKwargs, JobName, JobReturnData, Options
10
10
 
11
11
 
12
- def _job_py_code_reformat(
12
+ def _job_py_code_ruff_reformat(
13
+ **kwargs: typing.Any,
14
+ ) -> None:
15
+ """Runs python formatting code in serial order as one influences the other."""
16
+ label: JobName = kwargs["label"]
17
+ options: Options = kwargs["options"]
18
+ python_files: FilePathList = kwargs["file_list"]
19
+
20
+ # put into 'check' mode if requested on the command line
21
+ extra_args = []
22
+ if options["check-only"]:
23
+ extra_args.append("--check")
24
+
25
+ if not options["ruff"]:
26
+ # Do not run `ruff` if opted-out
27
+ return
28
+
29
+ # If ruff is enabled we do NOT run black etc. because ruff does that
30
+ # for us, faster and better.
31
+ ruff_format_cmd = [
32
+ "python3",
33
+ "-m",
34
+ "ruff",
35
+ "format",
36
+ *extra_args,
37
+ *python_files,
38
+ ]
39
+ kwargs["label"] = f"{label} ruff"
40
+ run_command(cmd=ruff_format_cmd, **kwargs)
41
+
42
+
43
+ def _job_py_ruff_lint(
44
+ **kwargs: typing.Any,
45
+ ) -> None:
46
+ """Runs python formatting code in serial order as one influences the other."""
47
+ label: JobName = kwargs["label"]
48
+ options: Options = kwargs["options"]
49
+ python_files: FilePathList = kwargs["file_list"]
50
+
51
+ # try to auto-fix issues (one benefit of ruff over flake8 etc.)
52
+ extra_args = []
53
+ if options["fix"]:
54
+ extra_args.append("--fix")
55
+
56
+ if not options["ruff"]:
57
+ # Do not run `ruff` if opted-out
58
+ return
59
+
60
+ # If ruff is enabled we do NOT run black etc. because ruff does that
61
+ # for us, faster and better.
62
+ ruff_lint_cmd = [
63
+ "python3",
64
+ "-m",
65
+ "ruff",
66
+ "check",
67
+ *extra_args,
68
+ *python_files,
69
+ ]
70
+ kwargs["label"] = f"{label} ruff"
71
+ run_command(cmd=ruff_lint_cmd, **kwargs)
72
+
73
+
74
+ def _job_py_code_reformat_deprecated(
13
75
  **kwargs: Unpack[JobKwargs],
14
76
  ) -> None:
15
77
  """Runs python formatting code in serial order as one influences the other."""
@@ -1,164 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: runem
3
- Version: 0.5.0
4
- Summary: Awesome runem created by lursight
5
- Author: lursight
6
- License: Specify your license here
7
- Project-URL: Homepage, https://github.com/lursight/runem/
8
- Keywords: example,runem
9
- Classifier: Programming Language :: Python :: 3.7
10
- Classifier: Programming Language :: Python :: 3.8
11
- Classifier: Programming Language :: Python :: 3.9
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Requires-Python: >=3.7
15
- Description-Content-Type: text/markdown
16
- License-File: LICENSE
17
- Requires-Dist: packaging>=22.0
18
- Requires-Dist: PyYAML>=5.0.0
19
- Requires-Dist: rich>10.0.0
20
- Requires-Dist: typing_extensions>3.0.0
21
- Provides-Extra: tests
22
- Requires-Dist: black==24.10.0; extra == "tests"
23
- Requires-Dist: coverage==7.5; extra == "tests"
24
- Requires-Dist: docformatter==1.7.5; extra == "tests"
25
- Requires-Dist: flake8-bugbear==24.2.6; extra == "tests"
26
- Requires-Dist: flake8==7.0.0; extra == "tests"
27
- Requires-Dist: gitchangelog==3.0.4; extra == "tests"
28
- Requires-Dist: isort==5.13.2; extra == "tests"
29
- Requires-Dist: mkdocs==1.5.3; extra == "tests"
30
- Requires-Dist: mypy==1.9.0; extra == "tests"
31
- Requires-Dist: pydocstyle==6.3.0; extra == "tests"
32
- Requires-Dist: pylint==3.1.0; extra == "tests"
33
- Requires-Dist: pylama==8.4.1; extra == "tests"
34
- Requires-Dist: pytest-cov==6.0.0; extra == "tests"
35
- Requires-Dist: pytest-profiling==1.7.0; extra == "tests"
36
- Requires-Dist: pytest-xdist==3.6.1; extra == "tests"
37
- Requires-Dist: pytest==8.3.3; extra == "tests"
38
- Requires-Dist: setuptools; extra == "tests"
39
- Requires-Dist: termplotlib==0.3.9; extra == "tests"
40
- Requires-Dist: tox; extra == "tests"
41
- Requires-Dist: types-PyYAML==6.0.12.20240311; extra == "tests"
42
- Requires-Dist: requests-mock==1.11.0; extra == "tests"
43
- Requires-Dist: types-setuptools; extra == "tests"
44
-
45
- <!-- [![codecov](https://codecov.io/gh/lursight/runem/branch/main/graph/badge.svg?token=run-test_token_here)](https://codecov.io/gh/lursight/runem) -->
46
- [![CI](https://github.com/lursight/runem/actions/workflows/main.yml/badge.svg)](https://github.com/lursight/runem/actions/workflows/main.yml)
47
- [![DOCS](https://lursight.github.io/runem/docs/VIEW-DOCS-31c553.svg)](https://lursight.github.io/runem/)
48
-
49
- # Run'em: Accelerate Your Development Workflow
50
- **Boost Efficiency and Save Time**
51
- Runem is a flexible, multi-process tool designed to speed up your everyday tasks by running them in parallel. Whether you're testing, linting, or deploying, runem helps you work smarter and faster.
52
-
53
- ## Why Choose Run'em?
54
- - **Streamlined Task Management**: Configure tasks with ease using declarative .runem.yml files.
55
- - **Multiprocess Execution**: Run multiple tasks simultaneously, minimizing wall-clock time.
56
- - **Optimized for Monorepos**: Supports multiple projects and task types, with easy filtering and configuration.
57
- - **Detailed Reporting**: Get insights into task execution time and efficiency gains.
58
-
59
- ## Contents
60
- - [Run'em: Accelerate Your Development Workflow](#runem-accelerate-your-development-workflow)
61
- - [Why Choose Run'em?](#why-choose-runem)
62
- - [Contents](#contents)
63
- - [Features At A Glance:](#features-at-a-glance)
64
- - [Using Run'em](#using-runem)
65
- - [Installation](#installation)
66
- - [Quick-start](#quick-start)
67
- - [Basic quick-start](#basic-quick-start)
68
- - [A more complete quick-start](#a-more-complete-quick-start)
69
- - [Basic Use](#basic-use)
70
- - [Advanced Use](#advanced-use)
71
- - [Advanced configuration options](#advanced-configuration-options)
72
- - [Custom reports](#custom-reports)
73
- - [Help and job discovery](#help-and-job-discovery)
74
- - [Troubleshooting](#troubleshooting)
75
- - [Contributing to and supporting runem](#contributing-to-and-supporting-runem)
76
- - [Development](#development)
77
- - [Sponsor](#sponsor)
78
- - [About runem](#about-runem)
79
-
80
-
81
- # Features At A Glance:
82
- - **Tagging**: Easily run specific job groups (e.g., lint, test, python).
83
- - **Phases**: Organize tasks by phase (e.g., edit, test, deploy).
84
- - **Configurable Options**: Customize how jobs are executed using simple options.
85
- - **Declarative**: Jobs are define using simple YAML in [.runem.yml](https://lursight.github.io/runem/docs/configuration.html) .
86
-
87
- # Using Run'em
88
-
89
- ## Installation
90
-
91
- ```bash
92
- pip install runem
93
- ```
94
-
95
- ## Quick-start
96
-
97
- ## Basic quick-start
98
- Create the following `.runem.yml` file at the root of your project:
99
-
100
- ```yml
101
- - job:
102
- command: echo "hello world!"
103
- ```
104
-
105
- Then anywhere in your project run `runem` to see how and when that task is run, and how long it took:
106
- ```bash
107
- runem
108
- ```
109
-
110
- To see the actual log output you will need to use `--verbose` as `runem` hides anything that isn't important. Only failures and reports are considered important.
111
- ```bash
112
- # Or, to see "hello world!", use --verbose
113
- runem --verbose # add --verbose to see the actual output
114
- ```
115
-
116
- To see how you can control your job use `--help`:
117
- ```bash
118
- runem --help
119
- ```
120
-
121
- ### A more complete quick-start
122
-
123
- See [quick-start docs](https://lursight.github.io/runem/docs/quick_start.html) for more quick-start tips.
124
-
125
- ## Basic Use
126
-
127
- See [docs on basic use and use-cases](https://lursight.github.io/runem/docs/basic_use.html) for a comprehensive introduction.
128
-
129
- ## Advanced Use
130
-
131
- ### Advanced configuration options
132
- See [configuration docs](https://lursight.github.io/runem/docs/configuration.html) for advanced configuration and use.
133
-
134
- ### Custom reports
135
- See [reporting docs](https://lursight.github.io/runem/docs/reports.html) for more information on how reporting works.
136
-
137
-
138
- # Help and job discovery
139
-
140
- `--help` is designed to help your team discover what jobs and tasks they can automated. Read more at
141
- [help and discovery docs](https://lursight.github.io/runem/docs/help_and_job_discovery.html).
142
-
143
- # Troubleshooting
144
-
145
- See [troubleshooting and known issues docs](https://lursight.github.io/runem/docs/troubleshooting_known_issues.html).
146
-
147
- ---
148
- # Contributing to and supporting runem
149
-
150
- Awesome runem created by lursight
151
-
152
- ## Development
153
-
154
- Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
155
-
156
- ## Sponsor
157
-
158
- [❤️ Sponsor this project](https://github.com/sponsors/lursight/)
159
-
160
- # About runem
161
- The runem mission is to improve developer velocity at
162
- [Lursight Ltd.](https://lursight.com), read more about the runem
163
- [mission](https://lursight.github.io/runem/docs/mission.html).
164
-
@@ -1,52 +0,0 @@
1
- runem/VERSION,sha256=oK1QZAE5pST4ZZEVcUW_HUZ06pwGW_6iFVjw97BEMMg,6
2
- runem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- runem/__main__.py,sha256=dsOiVZegpfK9JOs5n7UmbX5iwwbj7iFkEbLoVeEgAn4,136
4
- runem/base.py,sha256=EZfR7FIlwEdU9Vfe47Wk2DOO8GQqpKxxLNKp6YHueZ4,316
5
- runem/blocking_print.py,sha256=R3c3HSnRMPCf7ykDXdKG2hKH4CzbBaxmOfP3xEU_wEI,1919
6
- runem/cli.py,sha256=wEt_Jnumhl8SiOdKdSJzLkJpWv6n3_Odhi_HeIixr1k,134
7
- runem/command_line.py,sha256=qkZFCCq9hUl6RO398SJzoigv8di5jGw2sdNwgTVBdd8,14474
8
- runem/config.py,sha256=UiEU0Jyg5qjrNStvasWYjMOABQHhpZjbPiX3-sH_CMg,5969
9
- runem/config_metadata.py,sha256=krDomUcADsAeUQrxwNmOS58eeaNIlqmhWIKWv8mUH4A,3300
10
- runem/config_parse.py,sha256=zXQ4rpj-igQufB5JtTsI1mOE_gBTdBcI2hI6HWU28gg,13830
11
- runem/files.py,sha256=59boeFvUANYOS-PllIjeKIht6lNINZ43WxahDg90oAc,4392
12
- runem/hook_manager.py,sha256=H0TL3HCqU2mgKm_-dgCD7TsK5T1bLT4g7x6kpytMPhU,4350
13
- runem/informative_dict.py,sha256=U7p9z78UwOT4TAfng1iDXCEyeYz6C-XZlx9Z1pWNVrI,1548
14
- runem/job.py,sha256=NOdRQnGePPyYdmIR_6JKVFzp9nbgNGetpE13bHEHaf4,3442
15
- runem/job_execute.py,sha256=-76IJI0PDU_XdQiDxTKUfOHEno9pixxQb_zi58rFumo,4702
16
- runem/job_filter.py,sha256=7vgG4YWJ9gyGBFjV7QbSojG5ofYoszAmxXx9HnMLkHo,5384
17
- runem/job_runner_simple_command.py,sha256=iP5an6yixW8o4C0ZBtu6csb-oVK3Q62ZZgtHBmxlXaU,2428
18
- runem/job_wrapper.py,sha256=q5GtopZ5vhSJ581rwU4-lF9KnbL3ZYgOC8fqaCnXD_g,983
19
- runem/job_wrapper_python.py,sha256=rx7J_N-JXs8GgMq7Sla7B9s_ZAfofKUhEnzgMcq_bts,4303
20
- runem/log.py,sha256=dIrocigvIJs1ZGkAzTogXkAK-0ZW3q5FkjpDgLdeW-E,630
21
- runem/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- runem/report.py,sha256=IedwW9mmJfGC6vKQdKDHQH5eoiYzTWHaaD4a3J4e_Pc,9020
23
- runem/run_command.py,sha256=Egl_j4bJ9mwi2JEFCsl0W6WH2IRgIdpMN7qdj8voClQ,6386
24
- runem/runem.py,sha256=9QZgmXNPXOscRRLWDgOcPZ0lYRcG7jOog1M_o3MXZbs,13667
25
- runem/runem_version.py,sha256=MbETwZO2Tb1Y3hX_OYZjKepEMKA1cjNvr-7Cqhz6e3s,271
26
- runem/utils.py,sha256=3N_kel9LsriiMq7kOjT14XhfxUOgz4hdDg97wlLKm3U,221
27
- runem/cli/initialise_options.py,sha256=zx_EduWQk7yGBr3XUNrffHCSInPv05edFItHLnlo9dk,918
28
- runem/types/__init__.py,sha256=6TzF4KV9tDGuDTr2qAXmWWkfDU52WuVlQ8Hcz48aYDk,286
29
- runem/types/common.py,sha256=gPMSoJ3yRUYjHnoviRrpSg0gRwsGLFGWGpbTWkq4jX0,279
30
- runem/types/errors.py,sha256=rbM5BA6UhY1X7Q0OZLUNsG7JXAjgNFTG5KQuqPNuZm8,103
31
- runem/types/filters.py,sha256=8R5fyMssN0ISGBilJhEtbdHFl6OP7uI51WKkB5SH6EA,255
32
- runem/types/hooks.py,sha256=lgrv5QAuHCEzr5dXDj4-azNcs63addY9zdrGWj5zv_s,292
33
- runem/types/options.py,sha256=y8_hyWYvhalC9-kZbvoDtxm0trZgyyGcswQqfuQy_pM,265
34
- runem/types/runem_config.py,sha256=qG_bghm5Nr-ZTbaZbf1v8Fx447V-hgEvvRy5NZ3t-Io,5141
35
- runem/types/types_jobs.py,sha256=wqiiBmRIJDbGlKcfOqewHGKx350w0p4_7pysMm7xGmo,4906
36
- scripts/test_hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- scripts/test_hooks/json_validators.py,sha256=N2FyWcpjWzfFGycXLo-ecNLJkxTFPPbqPfVBcJLBlb4,967
38
- scripts/test_hooks/py.py,sha256=YUbwNny7NPmv2bY7k7YcbJ-jRcnNfjQajE9Hn1MLaBc,8821
39
- scripts/test_hooks/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- scripts/test_hooks/runem_hooks.py,sha256=FJMuDBEOz3dr9gBW3WW6yKbUJs_LFXb3klpqSzCAZRk,628
41
- scripts/test_hooks/yarn.py,sha256=1QsG1rKAclpZoqp86ntkuvzYaYN4UkEvO0JhO2Kf5C8,1082
42
- tests/cli/test_initialise_options.py,sha256=Ogwfqz39r2o1waXMqCC22OJsgZoLF2stwGVO5AZUc4s,3148
43
- tests/data/help_output.3.10.txt,sha256=5TUpNITVL6pD5BpFAl-Orh3vkOpStveijZzvgJuI_sA,4280
44
- tests/data/help_output.3.11.txt,sha256=ycrF-xKgdQ8qrWzkkR-vbHe7NulUTsCsS0_Gda8xYDs,4162
45
- tests/test_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- tests/test_types/test_public_api.py,sha256=QHiwt7CetQur65JSbFRnOzQxhCJkX5MVLymHHVd_6yc,160
47
- runem-0.5.0.dist-info/LICENSE,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
48
- runem-0.5.0.dist-info/METADATA,sha256=9isKJbNwlMOME8i2ipmSBySxD-Om_tVIp0ji_3WJeRM,6215
49
- runem-0.5.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
50
- runem-0.5.0.dist-info/entry_points.txt,sha256=nu0g_vBeuPihYtimbtlNusxWovylMppvJ8UxdJlJfvM,46
51
- runem-0.5.0.dist-info/top_level.txt,sha256=NkdxkwLKNNhxItveR2KqNqTshTZ268m5D7SjJEmG4-Y,20
52
- runem-0.5.0.dist-info/RECORD,,