Mercurial > libervia-backend
annotate sat_frontends/jp/constants.py @ 3040:fee60f17ebac
jp: jp asyncio port:
/!\ this commit is huge. Jp is temporarily not working with `dbus` bridge /!\
This patch implements the port of jp to asyncio, so it is now correctly using the bridge
asynchronously, and it can be used with bridges like `pb`. This also simplify the code,
notably for things which were previously implemented with many callbacks (like pagination
with RSM).
During the process, some behaviours have been modified/fixed, in jp and backends, check
diff for details.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 25 Sep 2019 08:56:41 +0200 |
parents | ab2696e34d29 |
children | 9d0df638c8b4 |
rev | line source |
---|---|
1934
2daf7b4c6756
use of /usr/bin/env instead of /usr/bin/python in shebang
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
1 #!/usr/bin/env python2 |
970
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # Primitivus: a SAT frontend |
2771 | 5 # Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org) |
970
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 from sat_frontends.quick_frontend import constants |
2232
4f389486667d
jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents:
2190
diff
changeset
|
21 from sat.tools.common.ansi import ANSI as A |
970
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 class Const(constants.Const): |
2e052998c7eb
jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
3028 | 26 APP_NAME = "jp" |
27 PLUGIN_CMD = "commands" | |
28 PLUGIN_OUTPUT = "outputs" | |
29 OUTPUT_TEXT = "text" # blob of unicode text | |
30 OUTPUT_DICT = "dict" # simple key/value dictionary | |
31 OUTPUT_LIST = "list" | |
32 OUTPUT_LIST_DICT = "list_dict" # list of dictionaries | |
33 OUTPUT_DICT_DICT = "dict_dict" # dict of nested dictionaries | |
34 OUTPUT_MESS = "mess" # messages (chat) | |
35 OUTPUT_COMPLEX = "complex" # complex data (e.g. multi-level dictionary) | |
36 OUTPUT_XML = "xml" # XML node (as unicode string) | |
37 OUTPUT_LIST_XML = "list_xml" # list of XML nodes (as unicode strings) | |
38 OUTPUT_XMLUI = "xmlui" # XMLUI as unicode string | |
39 OUTPUT_LIST_XMLUI = "list_xmlui" # list of XMLUI (as unicode strings) | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
40 OUTPUT_TYPES = ( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
41 OUTPUT_TEXT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
42 OUTPUT_DICT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
43 OUTPUT_LIST, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
44 OUTPUT_LIST_DICT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
45 OUTPUT_DICT_DICT, |
2707
b156b78b8f9a
jp (output): new OUTPUT_MESS output to handle data containing chat messages
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
46 OUTPUT_MESS, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
47 OUTPUT_COMPLEX, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
48 OUTPUT_XML, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
49 OUTPUT_LIST_XML, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
50 OUTPUT_XMLUI, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
51 OUTPUT_LIST_XMLUI, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
52 ) |
1951
ac89f455fcbf
jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents:
1950
diff
changeset
|
53 |
2532 | 54 # Pubsub options flags |
3028 | 55 SERVICE = "service" # service required |
56 NODE = "node" # node required | |
57 ITEM = "item" # item required | |
58 SINGLE_ITEM = "single_item" # only one item is allowed | |
59 MULTI_ITEMS = "multi_items" # multiple items are allowed | |
60 NO_MAX = "no_max" # don't add --max option for multi items | |
2532 | 61 |
2232
4f389486667d
jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents:
2190
diff
changeset
|
62 # ANSI |
4f389486667d
jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents:
2190
diff
changeset
|
63 A_HEADER = A.BOLD + A.FG_YELLOW |
4f389486667d
jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents:
2190
diff
changeset
|
64 A_SUBHEADER = A.BOLD + A.FG_RED |
2485
512c443a58ba
jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
65 # A_LEVEL_COLORS may be used to cycle on colors according to depth of data |
512c443a58ba
jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
66 A_LEVEL_COLORS = (A_HEADER, A.BOLD + A.FG_BLUE, A.FG_MAGENTA, A.FG_CYAN) |
2278
489efbda377c
jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents:
2268
diff
changeset
|
67 A_SUCCESS = A.BOLD + A.FG_GREEN |
489efbda377c
jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents:
2268
diff
changeset
|
68 A_FAILURE = A.BOLD + A.FG_RED |
3040 | 69 A_WARNING = A.BOLD + A.FG_RED |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
70 # A_PROMPT_* is for shell |
2355 | 71 A_PROMPT_PATH = A.BOLD + A.FG_CYAN |
2309
c7a72b75232b
jp (shell): shell command (REPL mode), first draft:
Goffi <goffi@goffi.org>
parents:
2295
diff
changeset
|
72 A_PROMPT_SUF = A.BOLD |
2505
8e770ac05b0c
jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents:
2485
diff
changeset
|
73 # Files |
8e770ac05b0c
jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents:
2485
diff
changeset
|
74 A_DIRECTORY = A.BOLD + A.FG_CYAN |
8e770ac05b0c
jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents:
2485
diff
changeset
|
75 A_FILE = A.FG_WHITE |
2232
4f389486667d
jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents:
2190
diff
changeset
|
76 |
1951
ac89f455fcbf
jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents:
1950
diff
changeset
|
77 # exit codes |
ac89f455fcbf
jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents:
1950
diff
changeset
|
78 EXIT_OK = 0 |
2550
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
79 EXIT_ERROR = 1 # generic error, when nothing else match |
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
80 EXIT_BAD_ARG = 2 # arguments given by user are bad |
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
81 EXIT_BRIDGE_ERROR = 3 # can't connect to bridge |
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
82 EXIT_BRIDGE_ERRBACK = 4 # something went wrong when calling a bridge method |
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
83 EXIT_NOT_FOUND = 16 # an item required by a command was not found |
2777
ff1b40823b07
jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents:
2771
diff
changeset
|
84 EXIT_DATA_ERROR = 17 # data needed for a command is invalid |
ff1b40823b07
jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents:
2771
diff
changeset
|
85 EXIT_MISSING_FEATURE = 18 # a needed plugin or feature is not available |
2550
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
86 EXIT_USER_CANCELLED = 20 # user cancelled action |
3040 | 87 EXIT_INTERNAL_ERROR = 111 # unexpected error |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
88 EXIT_FILE_NOT_EXE = ( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
89 126 |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2601
diff
changeset
|
90 ) # a file to be executed was found, but it was not an executable utility (cf. man 1 exit) |
2550
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
91 EXIT_CMD_NOT_FOUND = 127 # a utility to be executed was not found (cf. man 1 exit) |
2777
ff1b40823b07
jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents:
2771
diff
changeset
|
92 EXIT_CMD_ERROR = 127 # a utility to be executed returned an error exit code |
2550
1d754bc14381
jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents:
2539
diff
changeset
|
93 EXIT_SIGNAL_INT = 128 # a command was interrupted by a signal (cf. man 1 exit) |