notesmgr 0.1.0__tar.gz → 0.2.0__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 (63) hide show
  1. {notesmgr-0.1.0/notesmgr.egg-info → notesmgr-0.2.0}/PKG-INFO +11 -10
  2. {notesmgr-0.1.0 → notesmgr-0.2.0}/README.md +4 -4
  3. {notesmgr-0.1.0 → notesmgr-0.2.0}/README_pypi.md +3 -3
  4. {notesmgr-0.1.0 → notesmgr-0.2.0/notesmgr.egg-info}/PKG-INFO +11 -10
  5. notesmgr-0.2.0/notesmgr.egg-info/requires.txt +10 -0
  6. {notesmgr-0.1.0 → notesmgr-0.2.0}/pyproject.toml +1 -0
  7. {notesmgr-0.1.0 → notesmgr-0.2.0}/setup.py +7 -7
  8. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/menu_bar.py +10 -4
  9. notesmgr-0.1.0/notesmgr.egg-info/requires.txt +0 -10
  10. {notesmgr-0.1.0 → notesmgr-0.2.0}/LICENSE.txt +0 -0
  11. {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/SOURCES.txt +0 -0
  12. {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/dependency_links.txt +0 -0
  13. {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/entry_points.txt +0 -0
  14. {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/top_level.txt +0 -0
  15. {notesmgr-0.1.0 → notesmgr-0.2.0}/setup.cfg +0 -0
  16. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/__init__.py +0 -0
  17. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/__main__.py +0 -0
  18. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/actions.py +0 -0
  19. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/application.py +0 -0
  20. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/button_row.py +0 -0
  21. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_linux.py +0 -0
  22. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_macos.py +0 -0
  23. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_tool.py +0 -0
  24. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_windows.py +0 -0
  25. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/cmd_line.py +0 -0
  26. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/commands.py +0 -0
  27. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config.py +0 -0
  28. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_defaults.py +0 -0
  29. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_editor.py +0 -0
  30. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_files.py +0 -0
  31. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/console.py +0 -0
  32. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/descriptions.py +0 -0
  33. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/dialogs.py +0 -0
  34. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/editor_command.py +0 -0
  35. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/errors.py +0 -0
  36. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_drag.py +0 -0
  37. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_drop.py +0 -0
  38. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_font.py +0 -0
  39. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_tree.py +0 -0
  40. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/failure_report.py +0 -0
  41. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/file_watch.py +0 -0
  42. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/folder_ops.py +0 -0
  43. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/main_window.py +0 -0
  44. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/markdown_render.py +0 -0
  45. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_blocks.py +0 -0
  46. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_file.py +0 -0
  47. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_fonts.py +0 -0
  48. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_image.py +0 -0
  49. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_ops.py +0 -0
  50. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_panel.py +0 -0
  51. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_table.py +0 -0
  52. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_tags.py +0 -0
  53. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_text.py +0 -0
  54. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_view.py +0 -0
  55. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/order_file.py +0 -0
  56. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/project.py +0 -0
  57. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/project_ops.py +0 -0
  58. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/py.typed +0 -0
  59. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/rich_clipboard.py +0 -0
  60. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/session.py +0 -0
  61. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/shortcuts.py +0 -0
  62. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/trash.py +0 -0
  63. {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/version_info.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: notesmgr
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Manager for small notes and AI prompts.
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Programming Language :: Python :: 3.15
16
17
  Classifier: Operating System :: OS Independent
17
18
  Classifier: Intended Audience :: End Users/Desktop
18
19
  Classifier: Intended Audience :: Information Technology
@@ -21,15 +22,15 @@ Requires-Python: >=3.12
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE.txt
23
24
  Requires-Dist: argcomplete>=3.7.2
24
- Requires-Dist: edit-cfg-json-tk>=0.4.0
25
- Requires-Dist: edit-cfg-json>=0.4.0
26
- Requires-Dist: config-as-json>=1.7
27
- Requires-Dist: markdown>=3.11
28
- Requires-Dist: types-Markdown>=3.10.2.20260712
25
+ Requires-Dist: edit-cfg-json-tk>=1.0.0
26
+ Requires-Dist: edit-cfg-json>=1.0.0
27
+ Requires-Dist: config-as-json>=1.8
28
+ Requires-Dist: markdown>=3.11.3
29
+ Requires-Dist: types-Markdown>=3.11.3.20261108
29
30
  Requires-Dist: packaging>=26.3
30
31
  Requires-Dist: send2trash>=2.1.0
31
32
  Requires-Dist: types-Send2Trash>=2.1.0.20260408
32
- Requires-Dist: versionreporter>=0.4
33
+ Requires-Dist: versionreporter>=0.5
33
34
  Dynamic: author
34
35
  Dynamic: license-file
35
36
  Dynamic: requires-dist
@@ -290,10 +291,10 @@ Source code and tests are available at
290
291
 
291
292
  ## Test summary
292
293
 
293
- - Test result: 1489 passed, 13 deselected in 7s
294
+ - Test result: 1546 passed, 15 deselected in 9s
294
295
  - No flake8 warnings.
295
296
  - No mypy errors found.
296
297
  - No pylint warnings.
297
298
  - No python layout warnings.
298
- - Built version(s): 0.1.0
299
- - Build and test using Python 3.14.7
299
+ - Built version(s): 0.2.0
300
+ - Build and test using Python 3.15.2
@@ -67,7 +67,7 @@ git submodule update --remote --merge
67
67
  ## Supported Python versions
68
68
 
69
69
  - Package runtime baseline: Python 3.12 or newer
70
- - Maintainer validation target: Python 3.12, 3.13, and 3.14
70
+ - Maintainer validation target: Python 3.12, 3.13, 3.14 and 3.15
71
71
  - Main day-to-day development: usually the newest supported Python version
72
72
 
73
73
  ## Development workflow
@@ -147,10 +147,10 @@ it runs.
147
147
 
148
148
  ## Test summary
149
149
 
150
- - Test result: 1489 passed, 13 deselected in 7s
150
+ - Test result: 1546 passed, 15 deselected in 9s
151
151
  - No flake8 warnings.
152
152
  - No mypy errors found.
153
153
  - No pylint warnings.
154
154
  - No python layout warnings.
155
- - Built version(s): 0.1.0
156
- - Build and test using Python 3.14.7
155
+ - Built version(s): 0.2.0
156
+ - Build and test using Python 3.15.2
@@ -253,10 +253,10 @@ Source code and tests are available at
253
253
 
254
254
  ## Test summary
255
255
 
256
- - Test result: 1489 passed, 13 deselected in 7s
256
+ - Test result: 1546 passed, 15 deselected in 9s
257
257
  - No flake8 warnings.
258
258
  - No mypy errors found.
259
259
  - No pylint warnings.
260
260
  - No python layout warnings.
261
- - Built version(s): 0.1.0
262
- - Build and test using Python 3.14.7
261
+ - Built version(s): 0.2.0
262
+ - Build and test using Python 3.15.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: notesmgr
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Manager for small notes and AI prompts.
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Programming Language :: Python :: 3.15
16
17
  Classifier: Operating System :: OS Independent
17
18
  Classifier: Intended Audience :: End Users/Desktop
18
19
  Classifier: Intended Audience :: Information Technology
@@ -21,15 +22,15 @@ Requires-Python: >=3.12
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE.txt
23
24
  Requires-Dist: argcomplete>=3.7.2
24
- Requires-Dist: edit-cfg-json-tk>=0.4.0
25
- Requires-Dist: edit-cfg-json>=0.4.0
26
- Requires-Dist: config-as-json>=1.7
27
- Requires-Dist: markdown>=3.11
28
- Requires-Dist: types-Markdown>=3.10.2.20260712
25
+ Requires-Dist: edit-cfg-json-tk>=1.0.0
26
+ Requires-Dist: edit-cfg-json>=1.0.0
27
+ Requires-Dist: config-as-json>=1.8
28
+ Requires-Dist: markdown>=3.11.3
29
+ Requires-Dist: types-Markdown>=3.11.3.20261108
29
30
  Requires-Dist: packaging>=26.3
30
31
  Requires-Dist: send2trash>=2.1.0
31
32
  Requires-Dist: types-Send2Trash>=2.1.0.20260408
32
- Requires-Dist: versionreporter>=0.4
33
+ Requires-Dist: versionreporter>=0.5
33
34
  Dynamic: author
34
35
  Dynamic: license-file
35
36
  Dynamic: requires-dist
@@ -290,10 +291,10 @@ Source code and tests are available at
290
291
 
291
292
  ## Test summary
292
293
 
293
- - Test result: 1489 passed, 13 deselected in 7s
294
+ - Test result: 1546 passed, 15 deselected in 9s
294
295
  - No flake8 warnings.
295
296
  - No mypy errors found.
296
297
  - No pylint warnings.
297
298
  - No python layout warnings.
298
- - Built version(s): 0.1.0
299
- - Build and test using Python 3.14.7
299
+ - Built version(s): 0.2.0
300
+ - Build and test using Python 3.15.2
@@ -0,0 +1,10 @@
1
+ argcomplete>=3.7.2
2
+ edit-cfg-json-tk>=1.0.0
3
+ edit-cfg-json>=1.0.0
4
+ config-as-json>=1.8
5
+ markdown>=3.11.3
6
+ types-Markdown>=3.11.3.20261108
7
+ packaging>=26.3
8
+ send2trash>=2.1.0
9
+ types-Send2Trash>=2.1.0.20260408
10
+ versionreporter>=0.5
@@ -19,6 +19,7 @@ classifiers = [
19
19
  "Programming Language :: Python :: 3.12",
20
20
  "Programming Language :: Python :: 3.13",
21
21
  "Programming Language :: Python :: 3.14",
22
+ "Programming Language :: Python :: 3.15",
22
23
  "Operating System :: OS Independent",
23
24
  "Intended Audience :: End Users/Desktop",
24
25
  "Intended Audience :: Information Technology",
@@ -5,7 +5,7 @@ from setuptools import setup
5
5
 
6
6
  setup(
7
7
  name='notesmgr',
8
- version='0.1.0',
8
+ version='0.2.0',
9
9
  description='Manager for small notes and AI prompts.',
10
10
  author='Tom Björkholm',
11
11
  author_email='klausuler_linnet0q@icloud.com',
@@ -20,14 +20,14 @@ setup(
20
20
  },
21
21
  install_requires=[
22
22
  'argcomplete >= 3.7.2',
23
- 'edit-cfg-json-tk >= 0.4.0',
24
- 'edit-cfg-json >= 0.4.0',
25
- 'config-as-json >= 1.7',
26
- 'markdown >= 3.11',
27
- 'types-Markdown >= 3.10.2.20260712',
23
+ 'edit-cfg-json-tk >= 1.0.0',
24
+ 'edit-cfg-json >= 1.0.0',
25
+ 'config-as-json >= 1.8',
26
+ 'markdown >= 3.11.3',
27
+ 'types-Markdown >= 3.11.3.20261108',
28
28
  'packaging >= 26.3',
29
29
  'send2trash >= 2.1.0',
30
30
  'types-Send2Trash >= 2.1.0.20260408',
31
- 'versionreporter >= 0.4'
31
+ 'versionreporter >= 0.5'
32
32
  ]
33
33
  )
@@ -8,6 +8,9 @@ import tkinter
8
8
  from typing import Callable, Literal, Mapping, NamedTuple, Optional, \
9
9
  Sequence, Union
10
10
 
11
+ UNLABELED_TYPES = ('tearoff', 'separator')
12
+ """Types of menu entries that have no label, as they say nothing."""
13
+
11
14
 
12
15
  class MenuEntry(NamedTuple):
13
16
  """One command of a menu, and whether it can be chosen."""
@@ -81,7 +84,7 @@ def build_menu_bar(window: Union[tkinter.Tk, tkinter.Toplevel],
81
84
  Returns:
82
85
  The menu bar that was made.
83
86
  """
84
- widget = tkinter.Menu(window)
87
+ widget = tkinter.Menu(window, tearoff=False)
85
88
  built = {spec.title: build_menu(widget, spec) for spec in menus}
86
89
  window.configure(menu=widget)
87
90
  return MenuBar(widget=widget, menus=built)
@@ -101,14 +104,17 @@ def set_enabled(menu: tkinter.Menu, label: str, enabled: bool) -> None:
101
104
  def entry_labels(menu: tkinter.Menu) -> list[str]:
102
105
  """Return what the entries of a menu say, in the order they are in.
103
106
 
107
+ Tearoff entries and separators say nothing, so they are left out.
108
+
104
109
  Args:
105
110
  menu: The menu to look through.
106
111
 
107
112
  Returns:
108
- The label of every entry, and nothing at all for a menu that
109
- holds no entries.
113
+ The labels of the entries that have a label, in menu order, or
114
+ an empty list when no entry has one.
110
115
  """
111
116
  last = menu.index(tkinter.END)
112
117
  if last is None:
113
118
  return []
114
- return [str(menu.entrycget(index, 'label')) for index in range(last + 1)]
119
+ return [str(menu.entrycget(index, 'label')) for index in range(last + 1)
120
+ if menu.type(index) not in UNLABELED_TYPES]
@@ -1,10 +0,0 @@
1
- argcomplete>=3.7.2
2
- edit-cfg-json-tk>=0.4.0
3
- edit-cfg-json>=0.4.0
4
- config-as-json>=1.7
5
- markdown>=3.11
6
- types-Markdown>=3.10.2.20260712
7
- packaging>=26.3
8
- send2trash>=2.1.0
9
- types-Send2Trash>=2.1.0.20260408
10
- versionreporter>=0.4
File without changes
File without changes
File without changes
File without changes