messageflight 0.2.4__tar.gz → 0.2.5__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.
- {messageflight-0.2.4 → messageflight-0.2.5}/PKG-INFO +1 -1
- messageflight-0.2.5/message_flight/__main__.py +3 -0
- messageflight-0.2.5/message_flight/cli.py +12 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/pyproject.toml +4 -1
- messageflight-0.2.5/tests/test_cli.py +34 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/.github/workflows/ci.yml +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/.github/workflows/release.yml +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/.gitignore +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/.python-version +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/LICENSE +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/MessageFlight.spec +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.id.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.ja.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.ko.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.ms.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.th.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.vi.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/README.zh.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/docs/plan/2026-06-10-codebase-fixes.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/docs/plan/2026-06-10-performance-optimization.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/docs/review/2026-06-10-full-codebase-review.md +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/docs/superpowers/.gitkeep +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/docs/tasks/.gitkeep +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/__init__.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/autostart.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/config.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/demo_notifications.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/flight_widget.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/i18n.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/notification_queue.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/notification_worker.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_banner.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/__init__.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/airplane.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/base.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/bird.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/rocket.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/plane_presets/ufo.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/preset_editor.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/settings_dialog.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/tray_app.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/tts.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight/tts_manager.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/message_flight.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/screenshots/screen_other_color.png +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/screenshots/screen_top_on_game01.png +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/screenshots/screen_top_on_game02.png +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/screenshots/screen_top_on_screen.png +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/__init__.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_autostart.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_config.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_demo_notifications.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_flight_widget.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_i18n.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_notification_queue.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_notification_worker.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_performance.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_plane_banner.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_preset_editor.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_presets.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_readme_badges.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_settings_dialog.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_tray_app.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_tts.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/tests/test_tts_manager.py +0 -0
- {messageflight-0.2.4 → messageflight-0.2.5}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: messageflight
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Let Windows notifications fly across your screen like a little plane.
|
|
5
5
|
Project-URL: Homepage, https://github.com/wx528/MessageFlight
|
|
6
6
|
Project-URL: Issues, https://github.com/wx528/MessageFlight/issues
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from message_flight.tray_app import TrayApplication
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main() -> None:
|
|
7
|
+
logging.basicConfig(
|
|
8
|
+
level=logging.DEBUG,
|
|
9
|
+
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
10
|
+
datefmt="%H:%M:%S",
|
|
11
|
+
)
|
|
12
|
+
TrayApplication().run()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "messageflight"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.5"
|
|
4
4
|
description = "Let Windows notifications fly across your screen like a little plane."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.8"
|
|
@@ -19,6 +19,9 @@ dependencies = [
|
|
|
19
19
|
Homepage = "https://github.com/wx528/MessageFlight"
|
|
20
20
|
Issues = "https://github.com/wx528/MessageFlight/issues"
|
|
21
21
|
|
|
22
|
+
[project.scripts]
|
|
23
|
+
messageflight = "message_flight.cli:main"
|
|
24
|
+
|
|
22
25
|
[project.optional-dependencies]
|
|
23
26
|
dev = ["pytest>=7.0,<9", "pytest-qt>=4.0", "mypy>=1.8,<1.15", "types-pywin32>=311; python_version >= '3.9'"]
|
|
24
27
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import runpy
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from unittest.mock import MagicMock, patch
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_main_configures_logging_and_runs_tray_app():
|
|
7
|
+
from message_flight.cli import main
|
|
8
|
+
|
|
9
|
+
with patch("message_flight.cli.logging.basicConfig") as basic_config, \
|
|
10
|
+
patch("message_flight.cli.TrayApplication") as tray_app:
|
|
11
|
+
main()
|
|
12
|
+
|
|
13
|
+
basic_config.assert_called_once_with(
|
|
14
|
+
level=10,
|
|
15
|
+
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
16
|
+
datefmt="%H:%M:%S",
|
|
17
|
+
)
|
|
18
|
+
tray_app.return_value.run.assert_called_once_with()
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_module_entrypoint_runs_main(monkeypatch):
|
|
22
|
+
main = MagicMock(return_value=None)
|
|
23
|
+
monkeypatch.setattr("message_flight.cli.main", main)
|
|
24
|
+
|
|
25
|
+
runpy.run_module("message_flight", run_name="__main__")
|
|
26
|
+
|
|
27
|
+
main.assert_called_once_with()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_pyproject_installs_messageflight_script():
|
|
31
|
+
pyproject = Path("pyproject.toml").read_text(encoding="utf-8")
|
|
32
|
+
|
|
33
|
+
assert '[project.scripts]' in pyproject
|
|
34
|
+
assert 'messageflight = "message_flight.cli:main"' in pyproject
|
|
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
|
{messageflight-0.2.4 → messageflight-0.2.5}/docs/plan/2026-06-10-performance-optimization.md
RENAMED
|
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
|