pyflowlauncher 0.2.0.dev1__tar.gz → 0.3.0.dev0__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 (21) hide show
  1. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/PKG-INFO +1 -1
  2. pyflowlauncher-0.3.0.dev0/pyflowlauncher/manifest.py +25 -0
  3. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/plugin.py +14 -0
  4. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher.egg-info/PKG-INFO +1 -1
  5. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher.egg-info/SOURCES.txt +1 -0
  6. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyproject.toml +2 -2
  7. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/README.md +0 -0
  8. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/__init__.py +0 -0
  9. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/api.py +0 -0
  10. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/event.py +0 -0
  11. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/icons.py +0 -0
  12. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/jsonrpc.py +0 -0
  13. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/method.py +0 -0
  14. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/result.py +0 -0
  15. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/shared.py +0 -0
  16. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher/string_matcher.py +0 -0
  17. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher.egg-info/dependency_links.txt +0 -0
  18. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher.egg-info/requires.txt +0 -0
  19. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/pyflowlauncher.egg-info/top_level.txt +0 -0
  20. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/setup.cfg +0 -0
  21. {pyflowlauncher-0.2.0.dev1 → pyflowlauncher-0.3.0.dev0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyflowlauncher
3
- Version: 0.2.0.dev1
3
+ Version: 0.3.0.dev0
4
4
  Summary: Python library to help build Flow Launcher plugins.
5
5
  Author-email: William McAllister <dev.garulf@gmail.com>
6
6
  License: MIT
@@ -0,0 +1,25 @@
1
+ from typing import TypedDict, Literal
2
+
3
+ MANIFEST_FILE = 'plugin.json'
4
+
5
+ Languages = Literal[
6
+ 'Python',
7
+ 'CSharp',
8
+ 'FSharp',
9
+ 'Executable',
10
+ 'TypeScript',
11
+ 'JavaScript',
12
+ ]
13
+
14
+
15
+ class PluginManifestSchema(TypedDict):
16
+ ID: str
17
+ ActionKeyword: str
18
+ Name: str
19
+ Description: str
20
+ Author: str
21
+ Version: str
22
+ Language: Languages
23
+ Website: str
24
+ IcoPath: str
25
+ ExecuteFileName: str
@@ -1,13 +1,17 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
3
4
  from functools import wraps
4
5
  from typing import Any, Callable, Iterable, Union
6
+ from pathlib import Path
7
+ import json
5
8
 
6
9
  from pyflowlauncher.shared import logger
7
10
 
8
11
  from .event import EventHandler
9
12
  from .jsonrpc import JsonRPCClient
10
13
  from .result import JsonRPCAction, ResultResponse
14
+ from .manifest import PluginManifestSchema, MANIFEST_FILE
11
15
 
12
16
  Method = Callable[..., Union[ResultResponse, JsonRPCAction]]
13
17
 
@@ -54,3 +58,13 @@ class Plugin:
54
58
  if 'result' in feedback and self._settings is not None:
55
59
  feedback['SettingsChange'] = self.settings
56
60
  self._client.send(feedback)
61
+
62
+ def plugin_root_dir(self) -> Path:
63
+ """Return the root directory of the plugin."""
64
+ return Path(sys.argv[0]).parent
65
+
66
+ def manifest(self) -> PluginManifestSchema:
67
+ """Return the plugin manifest."""
68
+ with open(self.plugin_root_dir() / MANIFEST_FILE, 'r', encoding='utf-8') as f:
69
+ manifest = json.load(f)
70
+ return manifest
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyflowlauncher
3
- Version: 0.2.0.dev1
3
+ Version: 0.3.0.dev0
4
4
  Summary: Python library to help build Flow Launcher plugins.
5
5
  Author-email: William McAllister <dev.garulf@gmail.com>
6
6
  License: MIT
@@ -6,6 +6,7 @@ pyflowlauncher/api.py
6
6
  pyflowlauncher/event.py
7
7
  pyflowlauncher/icons.py
8
8
  pyflowlauncher/jsonrpc.py
9
+ pyflowlauncher/manifest.py
9
10
  pyflowlauncher/method.py
10
11
  pyflowlauncher/plugin.py
11
12
  pyflowlauncher/result.py
@@ -6,7 +6,7 @@ name = "pyflowlauncher"
6
6
  authors = [
7
7
  {name = "William McAllister", email = "dev.garulf@gmail.com"}
8
8
  ]
9
- version = '0.2.0-dev.1'
9
+ version = '0.3.0-dev.0'
10
10
  description = "Python library to help build Flow Launcher plugins."
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.8"
@@ -24,7 +24,7 @@ dependencies = [
24
24
  packages = ["pyflowlauncher"]
25
25
 
26
26
  [tool.bumpversion]
27
- current_version = "0.2.0-dev.1"
27
+ current_version = "0.3.0-dev.0"
28
28
  parse = """(?x)
29
29
  (?P<major>[0-9]+)
30
30
  \\.(?P<minor>[0-9]+)