mininterface 1.3.0__tar.gz → 1.3.1__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.
Files changed (82) hide show
  1. {mininterface-1.3.0 → mininterface-1.3.1}/PKG-INFO +1 -1
  2. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/file_picker_input.py +2 -1
  3. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/subprocess_adaptor.py +9 -3
  4. {mininterface-1.3.0 → mininterface-1.3.1}/pyproject.toml +1 -1
  5. {mininterface-1.3.0 → mininterface-1.3.1}/LICENSE +0 -0
  6. {mininterface-1.3.0 → mininterface-1.3.1}/README.md +0 -0
  7. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/__init__.py +0 -0
  8. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/__main__.py +0 -0
  9. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/__init__.py +0 -0
  10. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/argparse_support.py +0 -0
  11. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/auxiliary.py +0 -0
  12. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/cli_flags.py +0 -0
  13. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/cli_parser.py +0 -0
  14. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/cli_utils.py +0 -0
  15. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/config_file.py +0 -0
  16. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/dataclass_creation.py +0 -0
  17. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/dict_utils.py +0 -0
  18. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/docstrings.py +0 -0
  19. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/form_dict.py +0 -0
  20. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/form_types.py +0 -0
  21. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/future_compatibility.py +0 -0
  22. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/ipc_command.py +0 -0
  23. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/redirectable.py +0 -0
  24. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/run.py +0 -0
  25. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/shortcuts.py +0 -0
  26. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/showcase.py +0 -0
  27. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/start.py +0 -0
  28. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/subprocess_base.py +0 -0
  29. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/subprocess_child_base.py +0 -0
  30. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_lib/tyro_patches.py +0 -0
  31. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_mininterface/__init__.py +0 -0
  32. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_mininterface/adaptor.py +0 -0
  33. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_mininterface/mixin.py +0 -0
  34. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_text_interface/__init__.py +0 -0
  35. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_text_interface/adaptor.py +0 -0
  36. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_text_interface/facet.py +0 -0
  37. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_text_interface/timeout.py +0 -0
  38. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/__init__.py +0 -0
  39. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/adaptor.py +0 -0
  40. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/button_contents.py +0 -0
  41. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/facet.py +0 -0
  42. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/form_contents.py +0 -0
  43. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/interface.py +0 -0
  44. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/secret_input.py +0 -0
  45. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/style.tcss +0 -0
  46. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/subprocess_adaptor.py +0 -0
  47. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/subprocess_child.py +0 -0
  48. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/textual_app.py +0 -0
  49. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/timeout.py +0 -0
  50. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_textual_interface/widgets.py +0 -0
  51. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/__init__.py +0 -0
  52. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/adaptor.py +0 -0
  53. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/date_entry.py +0 -0
  54. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/external_fix.py +0 -0
  55. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/facet.py +0 -0
  56. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/interface.py +0 -0
  57. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/redirect_text_tkinter.py +0 -0
  58. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/secret_entry.py +0 -0
  59. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/select_input.py +0 -0
  60. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/subprocess_child.py +0 -0
  61. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/timeout.py +0 -0
  62. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_tk_interface/utils.py +0 -0
  63. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/_web_interface/__init__.py +0 -0
  64. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/cli.py +0 -0
  65. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/exceptions.py +0 -0
  66. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/experimental.py +0 -0
  67. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/facet/__init__.py +0 -0
  68. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/interfaces.py +0 -0
  69. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/settings.py +0 -0
  70. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/__init__.py +0 -0
  71. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/alias.py +0 -0
  72. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/callback_tag.py +0 -0
  73. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/datetime_tag.py +0 -0
  74. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/flag.py +0 -0
  75. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/internal.py +0 -0
  76. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/path_tag.py +0 -0
  77. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/secret_tag.py +0 -0
  78. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/select_tag.py +0 -0
  79. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/tag.py +0 -0
  80. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/tag_factory.py +0 -0
  81. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/tag/type_stubs.py +0 -0
  82. {mininterface-1.3.0 → mininterface-1.3.1}/mininterface/validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mininterface
3
- Version: 1.3.0
3
+ Version: 1.3.1
4
4
  Summary: CLI & dialog toolkit – a minimal interface to Python application (GUI, TUI, CLI + config files, web)
5
5
  License: LGPL-3.0-or-later
6
6
  License-File: LICENSE
@@ -1,3 +1,4 @@
1
+ from ast import literal_eval
1
2
  from pathlib import Path
2
3
  from typing import TYPE_CHECKING
3
4
 
@@ -396,7 +397,7 @@ def FilePickerInputFactory(adaptor: "TextualAdaptor", tag: PathTag, **kwargs):
396
397
  if tag.multiple and tag._get_ui_val():
397
398
  # Initialize selected paths from existing value
398
399
  try:
399
- paths = eval(str(tag._get_ui_val()))
400
+ paths = literal_eval(str(tag._get_ui_val()))
400
401
  if isinstance(paths, list):
401
402
  self.selected_paths = [Path(p) for p in paths]
402
403
  except (ValueError, SyntaxError):
@@ -71,15 +71,21 @@ class TkSubprocessAdaptor(SubprocessAdaptorBase):
71
71
  return
72
72
  try:
73
73
  import tkinter
74
- except ModuleNotFoundError:
74
+ except ImportError:
75
+ # Catches both ModuleNotFoundError (python3-tk absent) and ImportError
76
+ # when _tkinter loads but its shared library is missing (e.g. libtk8.6.so
77
+ # on Alpine/musl) or the DLL fails to load on Windows.
75
78
  from ..exceptions import InterfaceNotAvailable
76
79
  raise InterfaceNotAvailable
77
80
  try:
78
81
  root = tkinter.Tk()
79
- except tkinter.TclError:
82
+ root.destroy()
83
+ except Exception:
84
+ # TclError covers missing display / unreachable X server / init.tcl not
85
+ # found. RuntimeError covers a mismatched Tcl/Tk build. Catch all so any
86
+ # future Tk startup failure still produces a clean fallback.
80
87
  from ..exceptions import InterfaceNotAvailable
81
88
  raise InterfaceNotAvailable
82
- root.destroy()
83
89
 
84
90
  def widgetize(self, tag: Tag):
85
91
  # Widgetisation happens in the child; the parent never builds widgets.
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "mininterface"
7
- version = "1.3.0"
7
+ version = "1.3.1"
8
8
  description = "CLI & dialog toolkit – a minimal interface to Python application (GUI, TUI, CLI + config files, web)"
9
9
  authors = ["Edvard Rejthar <edvard.rejthar@nic.cz>"]
10
10
  license = "LGPL-3.0-or-later"
File without changes
File without changes