lockss-pybasic 0.2.0.dev12__tar.gz → 0.2.0.dev13__tar.gz

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,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockss-pybasic
3
- Version: 0.2.0.dev12
3
+ Version: 0.2.0.dev13
4
4
  Summary: Basic Python utilities
5
5
  License: BSD-3-Clause
6
6
  License-File: LICENSE
@@ -24,7 +24,7 @@ Description-Content-Type: text/x-rst
24
24
  lockss-pybasic
25
25
  ==============
26
26
 
27
- .. |RELEASE| replace:: 0.2.0-dev12
27
+ .. |RELEASE| replace:: 0.2.0-dev13
28
28
  .. |RELEASE_DATE| replace:: NOT YET RELEASED
29
29
 
30
30
  **Latest release:** |RELEASE| (|RELEASE_DATE|)
@@ -2,7 +2,7 @@
2
2
  lockss-pybasic
3
3
  ==============
4
4
 
5
- .. |RELEASE| replace:: 0.2.0-dev12
5
+ .. |RELEASE| replace:: 0.2.0-dev13
6
6
  .. |RELEASE_DATE| replace:: NOT YET RELEASED
7
7
 
8
8
  **Latest release:** |RELEASE| (|RELEASE_DATE|)
@@ -28,7 +28,7 @@
28
28
 
29
29
  [project]
30
30
  name = "lockss-pybasic"
31
- version = "0.2.0-dev12" # Always change in __init__.py, and at release time in README.rst and CHANGELOG.rst
31
+ version = "0.2.0-dev13" # Always change in __init__.py, and at release time in README.rst and CHANGELOG.rst
32
32
  description = "Basic Python utilities"
33
33
  license = { text = "BSD-3-Clause" }
34
34
  readme = "README.rst"
@@ -36,4 +36,4 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36
36
  POSSIBILITY OF SUCH DAMAGE.
37
37
  '''.strip()
38
38
 
39
- __version__ = '0.2.0-dev12'
39
+ __version__ = '0.2.0-dev13'
@@ -33,9 +33,11 @@ Command line utilities.
33
33
  """
34
34
 
35
35
  from pathlib import Path
36
- from typing import Optional
36
+ from typing import Any, Optional
37
37
 
38
38
  import click
39
+ from click_extra import ExtraContext, HelpExtraFormatter, Style
40
+ from click_extra.colorize import default_theme
39
41
 
40
42
 
41
43
  def click_path(spec: Optional[str]) -> click.Path:
@@ -98,3 +100,21 @@ def click_path(spec: Optional[str]) -> click.Path:
98
100
  readable=readable,
99
101
  resolve_path=resolve_path,
100
102
  writable=writable)
103
+
104
+
105
+ def compose_decorators(*decorators):
106
+ def wrapped(decorated):
107
+ for dec in reversed(decorators):
108
+ decorated = dec(decorated)
109
+ return decorated
110
+ return wrapped
111
+
112
+
113
+ def make_extra_context_settings() -> dict[str, Any]:
114
+ return ExtraContext.settings(
115
+ formatter_settings=HelpExtraFormatter.settings(
116
+ theme=default_theme.with_(
117
+ invoked_command=Style(bold=True)
118
+ )
119
+ )
120
+ )