lockss-pybasic 0.3.0.dev4__py3-none-any.whl → 0.3.0.dev5__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.
@@ -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.3.0-dev4'
39
+ __version__ = '0.3.0-dev5'
lockss/pybasic/cliutil.py CHANGED
@@ -33,17 +33,18 @@ Command line utilities.
33
33
  """
34
34
 
35
35
  from pathlib import Path
36
- from typing import Any, Optional, Union
36
+ from typing import Any, Optional, TypeAlias, Union
37
37
 
38
- import click
39
- from click.types import ParamType, IntRange
40
- from click_extra import ChoiceSource, EnumChoice, ExtraContext, HelpExtraFormatter, Style, TableFormat, option
41
- from click_extra.colorize import default_theme
38
+ from click_extra import ChoiceSource, EnumChoice, ExtraContext, HelpExtraFormatter, IntRange, ParamType, Path, Style, TableFormat, option
39
+ from click_extra.theme import get_default_theme
42
40
 
43
41
 
44
- def click_path(spec: Optional[str]) -> click.Path:
42
+ ClickPath: TypeAlias = Path
43
+
44
+
45
+ def click_path(spec: Optional[str]) -> ClickPath:
45
46
  """
46
- Generates a ``click.Path`` based on a specification string.
47
+ Generates a ``ClickPath`` (``click.Path``) based on a specification string.
47
48
 
48
49
  The specification string can contain the following specifier characters:
49
50
 
@@ -147,15 +148,15 @@ def click_path(spec: Optional[str]) -> click.Path:
147
148
  allow_dash = True
148
149
  else:
149
150
  raise ValueError(f'unknown specification character "{char}": {spec}')
150
- return click.Path(allow_dash=allow_dash,
151
- dir_okay=dir_okay,
152
- executable=executable,
153
- exists=exists,
154
- file_okay=file_okay,
155
- path_type=path_type,
156
- readable=readable,
157
- resolve_path=resolve_path,
158
- writable=writable)
151
+ return ClickPath(allow_dash=allow_dash,
152
+ dir_okay=dir_okay,
153
+ executable=executable,
154
+ exists=exists,
155
+ file_okay=file_okay,
156
+ path_type=path_type,
157
+ readable=readable,
158
+ resolve_path=resolve_path,
159
+ writable=writable)
159
160
 
160
161
 
161
162
  #: Composes the given decorators, so that
@@ -209,7 +210,7 @@ def make_extra_context_settings() -> dict[str, Any]:
209
210
  """
210
211
  return ExtraContext.settings(
211
212
  formatter_settings=HelpExtraFormatter.settings(
212
- theme=default_theme.with_(
213
+ theme=get_default_theme().with_(
213
214
  invoked_command=Style(bold=True)
214
215
  )
215
216
  )
@@ -32,9 +32,12 @@
32
32
  File and path utilities.
33
33
  """
34
34
 
35
- from pathlib import Path, PurePath
35
+ from pathlib import Path
36
36
  import sys
37
- from typing import List, Union
37
+ from typing import List, TypeAlias, Union
38
+
39
+
40
+ PathOrStr: TypeAlias = Union[Path, str]
38
41
 
39
42
 
40
43
  def file_lines(fpath: Path) -> List[str]:
@@ -56,7 +59,7 @@ def file_lines(fpath: Path) -> List[str]:
56
59
  f.close()
57
60
 
58
61
 
59
- def path(purepath_or_string: Union[PurePath, str]) -> Path:
62
+ def path(path_or_string: PathOrStr) -> Path:
60
63
  """
61
64
  Returns the given ``PurePath`` (or if given a string, the ``Path`` created
62
65
  from that string), expanded with ``expanduser()`` and resolved with
@@ -68,6 +71,6 @@ def path(purepath_or_string: Union[PurePath, str]) -> Path:
68
71
  :return: An expanded and resolved ``Path``.
69
72
  :rtype: Path
70
73
  """
71
- if not issubclass(type(purepath_or_string), PurePath):
72
- purepath_or_string = Path(purepath_or_string)
73
- return purepath_or_string.expanduser().resolve()
74
+ if not issubclass(type(path_or_string), Path):
75
+ path_or_string = Path(path_or_string)
76
+ return path_or_string.expanduser().resolve()
@@ -38,7 +38,7 @@ import re
38
38
  from typing import Annotated, Any, ClassVar, Literal, Optional, Union
39
39
 
40
40
  from annotated_types import Ge, Le
41
- from pydantic import BaseModel, BeforeValidator, Field, TypeAdapter, model_validator
41
+ from pydantic import BaseModel, BeforeValidator, Field, TypeAdapter
42
42
 
43
43
 
44
44
  #: An annotated type for port numbers (0-65535)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockss-pybasic
3
- Version: 0.3.0.dev4
3
+ Version: 0.3.0.dev5
4
4
  Summary: Basic Python utilities
5
5
  License: BSD-3-Clause
6
6
  License-File: LICENSE
@@ -17,7 +17,7 @@ Classifier: License :: OSI Approved :: BSD License
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Topic :: Software Development :: Libraries
19
19
  Requires-Dist: annotated-types (>=0.7.0,<0.8.0)
20
- Requires-Dist: click-extra (>=7.17.0,<7.18.0)
20
+ Requires-Dist: click-extra (>=7.18.0,<7.19.0)
21
21
  Requires-Dist: pydantic (>=2.13.0,<2.14.0)
22
22
  Project-URL: Repository, https://github.com/lockss/lockss-pybasic
23
23
  Description-Content-Type: text/x-rst
@@ -26,7 +26,7 @@ Description-Content-Type: text/x-rst
26
26
  lockss-pybasic
27
27
  ==============
28
28
 
29
- .. |RELEASE| replace:: 0.3.0-dev4
29
+ .. |RELEASE| replace:: 0.3.0-dev5
30
30
  .. |RELEASE_DATE| replace:: NOT YET RELEASED
31
31
 
32
32
  **Latest release:** |RELEASE| (|RELEASE_DATE|)
@@ -0,0 +1,10 @@
1
+ lockss/pybasic/__init__.py,sha256=XiPgHX6Sah_mC2zIQLn_vTG1Celb8_sl1tZoDNm7RYw,1678
2
+ lockss/pybasic/auidutil.py,sha256=Q4vjjGfymiXVwPu35RyyLZBnViv8mDJKCjOyJb-sbS8,13921
3
+ lockss/pybasic/cliutil.py,sha256=-o5YIh5JPDxwyZ61U9iZshsmzYwOHW-HHFa2ndFO__g,8130
4
+ lockss/pybasic/errorutil.py,sha256=4EaO0a1yIG1DbWltASeT15bg1bGg5kOYspsW0iJdVLc,1951
5
+ lockss/pybasic/fileutil.py,sha256=P_XW_UX6hVvP45vRV8fduclbGmoFflW83a6ZfFE-8Hc,2966
6
+ lockss/pybasic/nodeutil.py,sha256=5ocngBCDbeMM7aqGCM10VC314p7VZD0DUMzHrpt3e4s,7911
7
+ lockss_pybasic-0.3.0.dev5.dist-info/METADATA,sha256=jYuOR61q0mUYeB1I_8Uc00K_ac5oW4uavN8gXOVak7I,2338
8
+ lockss_pybasic-0.3.0.dev5.dist-info/WHEEL,sha256=eY7nduwzv-ldUxpzbRlxwvC693Hg6PX8bWDjEHjZ_dk,88
9
+ lockss_pybasic-0.3.0.dev5.dist-info/licenses/LICENSE,sha256=EOxPunNz3XP6AjgbPFolu-d9BS_AF9TtKn1WXgeYPsE,1506
10
+ lockss_pybasic-0.3.0.dev5.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- lockss/pybasic/__init__.py,sha256=NWFBmNQ6XEuQOYE0WVIYhe0Ci5wIxmzBewZ_oY8u-G8,1678
2
- lockss/pybasic/auidutil.py,sha256=Q4vjjGfymiXVwPu35RyyLZBnViv8mDJKCjOyJb-sbS8,13921
3
- lockss/pybasic/cliutil.py,sha256=F970MhLcQCYS3INLQT1Ij8nKt_ICmttiS3nSnuWuN7s,8106
4
- lockss/pybasic/errorutil.py,sha256=4EaO0a1yIG1DbWltASeT15bg1bGg5kOYspsW0iJdVLc,1951
5
- lockss/pybasic/fileutil.py,sha256=IIS2AFDgYtmBLPVHqQi1AkIFj6da04b6NQtjX9bIVqQ,2958
6
- lockss/pybasic/nodeutil.py,sha256=snBT7OPttThBJXVxgLC6Onmuoa8Z-jOOM1LWdhIb-js,7928
7
- lockss_pybasic-0.3.0.dev4.dist-info/METADATA,sha256=eZ1B2T-R5rn4u2ZXTkcWZFEGChVqOxbbV5FT-pusIpw,2338
8
- lockss_pybasic-0.3.0.dev4.dist-info/WHEEL,sha256=eY7nduwzv-ldUxpzbRlxwvC693Hg6PX8bWDjEHjZ_dk,88
9
- lockss_pybasic-0.3.0.dev4.dist-info/licenses/LICENSE,sha256=EOxPunNz3XP6AjgbPFolu-d9BS_AF9TtKn1WXgeYPsE,1506
10
- lockss_pybasic-0.3.0.dev4.dist-info/RECORD,,