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.
- {notesmgr-0.1.0/notesmgr.egg-info → notesmgr-0.2.0}/PKG-INFO +11 -10
- {notesmgr-0.1.0 → notesmgr-0.2.0}/README.md +4 -4
- {notesmgr-0.1.0 → notesmgr-0.2.0}/README_pypi.md +3 -3
- {notesmgr-0.1.0 → notesmgr-0.2.0/notesmgr.egg-info}/PKG-INFO +11 -10
- notesmgr-0.2.0/notesmgr.egg-info/requires.txt +10 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/pyproject.toml +1 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/setup.py +7 -7
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/menu_bar.py +10 -4
- notesmgr-0.1.0/notesmgr.egg-info/requires.txt +0 -10
- {notesmgr-0.1.0 → notesmgr-0.2.0}/LICENSE.txt +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/SOURCES.txt +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/dependency_links.txt +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/entry_points.txt +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/notesmgr.egg-info/top_level.txt +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/setup.cfg +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/__init__.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/__main__.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/actions.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/application.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/button_row.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_linux.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_macos.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_tool.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/clipboard_windows.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/cmd_line.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/commands.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_defaults.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_editor.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/config_files.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/console.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/descriptions.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/dialogs.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/editor_command.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/errors.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_drag.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_drop.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_font.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/explorer_tree.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/failure_report.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/file_watch.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/folder_ops.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/main_window.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/markdown_render.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_blocks.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_file.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_fonts.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_image.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_ops.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_panel.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_table.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_tags.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_text.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/note_view.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/order_file.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/project.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/project_ops.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/py.typed +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/rich_clipboard.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/session.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/shortcuts.py +0 -0
- {notesmgr-0.1.0 → notesmgr-0.2.0}/src/notesmgr/trash.py +0 -0
- {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.
|
|
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.
|
|
25
|
-
Requires-Dist: edit-cfg-json>=0.
|
|
26
|
-
Requires-Dist: config-as-json>=1.
|
|
27
|
-
Requires-Dist: markdown>=3.11
|
|
28
|
-
Requires-Dist: types-Markdown>=3.
|
|
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.
|
|
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:
|
|
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.
|
|
299
|
-
- Build and test using Python 3.
|
|
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.
|
|
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:
|
|
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.
|
|
156
|
-
- Build and test using Python 3.
|
|
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:
|
|
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.
|
|
262
|
-
- Build and test using Python 3.
|
|
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.
|
|
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.
|
|
25
|
-
Requires-Dist: edit-cfg-json>=0.
|
|
26
|
-
Requires-Dist: config-as-json>=1.
|
|
27
|
-
Requires-Dist: markdown>=3.11
|
|
28
|
-
Requires-Dist: types-Markdown>=3.
|
|
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.
|
|
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:
|
|
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.
|
|
299
|
-
- Build and test using Python 3.
|
|
299
|
+
- Built version(s): 0.2.0
|
|
300
|
+
- Build and test using Python 3.15.2
|
|
@@ -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.
|
|
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.
|
|
24
|
-
'edit-cfg-json >= 0.
|
|
25
|
-
'config-as-json >= 1.
|
|
26
|
-
'markdown >= 3.11',
|
|
27
|
-
'types-Markdown >= 3.
|
|
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.
|
|
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
|
|
109
|
-
|
|
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]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|