annotate frontends/src/jp/constants.py @ 2532:772447ec070f

jp: pubsub options refactoring: There is now only "use_pubsub", and specification are set using "pubsub_flags" argument when instantiating CommandBase. Options are more Python Zen compliant by using explicit arguments for item, draft, url instead of trying to guess with magic keyword and type detection. Pubsub node and item are now always using respecively "-n" and "-i" even when required, this way shell history can be used to change command more easily, and it's globally less confusing for user. if --pubsub-url is used, elements can be overwritten with individual option (e.g. change item id with --item). New "use_draft" argument in CommandBase, to re-use current draft or open a file path as draft. Item can now be specified when using a draft. If it already exists, its content will be added to current draft (with a separator), to avoid loosing data. common.BaseEdit.getItemPath could be simplified thanks to those changes. Pubsub URI handling has been moved to base.py.
author Goffi <goffi@goffi.org>
date Wed, 21 Mar 2018 19:13:22 +0100
parents 8e770ac05b0c
children dcc77f23e370
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
2483
0046283a285d dates update
Goffi <goffi@goffi.org>
parents: 2414
diff changeset
5 # Copyright (C) 2009-2018 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
2163
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
26 APP_NAME = u"jp"
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
27 PLUGIN_CMD = u"commands"
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
28 PLUGIN_OUTPUT = u"outputs"
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
29 OUTPUT_TEXT = u'text' # blob of unicode text
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
30 OUTPUT_DICT = u'dict' # simple key/value dictionary
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
31 OUTPUT_LIST = u'list'
2233
bf998d8626d9 jp (output): added LIST_DICT output, to handle list of dictionaries
Goffi <goffi@goffi.org>
parents: 2232
diff changeset
32 OUTPUT_LIST_DICT = u'list_dict' # list of dictionaries
2295
31f586d6ab16 jp (constants): added OUTPUT_DICT_DICT for dictionaries of nested dictionaries
Goffi <goffi@goffi.org>
parents: 2278
diff changeset
33 OUTPUT_DICT_DICT = u'dict_dict' # dict of nested dictionaries
2163
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
34 OUTPUT_COMPLEX = u'complex' # complex data (e.g. multi-level dictionary)
2190
d823a0cdbcc2 jp (outputs): new xml and list_xml outputs, handling pretty formatting and syntax highlighting
Goffi <goffi@goffi.org>
parents: 2163
diff changeset
35 OUTPUT_XML = u'xml' # XML node (as unicode string)
d823a0cdbcc2 jp (outputs): new xml and list_xml outputs, handling pretty formatting and syntax highlighting
Goffi <goffi@goffi.org>
parents: 2163
diff changeset
36 OUTPUT_LIST_XML = u'list_xml' # list of XML nodes (as unicode strings)
2295
31f586d6ab16 jp (constants): added OUTPUT_DICT_DICT for dictionaries of nested dictionaries
Goffi <goffi@goffi.org>
parents: 2278
diff changeset
37 OUTPUT_TYPES = (OUTPUT_TEXT, OUTPUT_DICT, OUTPUT_LIST, OUTPUT_LIST_DICT, OUTPUT_DICT_DICT, OUTPUT_COMPLEX, OUTPUT_XML, OUTPUT_LIST_XML)
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
38
2532
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
39 # Pubsub options flags
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
40 SERVICE = u'service' # service required
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
41 NODE = u'node' # node required
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
42 SINGLE_ITEM = u'single_item' # only one item is allowed
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
43 MULTI_ITEMS = u'multi_items' # multiple items are allowed
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
44
2232
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
45 # ANSI
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
46 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
47 A_SUBHEADER = A.BOLD + A.FG_RED
2485
512c443a58ba jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents: 2483
diff changeset
48 # 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
49 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
50 A_SUCCESS = A.BOLD + A.FG_GREEN
489efbda377c jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents: 2268
diff changeset
51 A_FAILURE = A.BOLD + A.FG_RED
2309
c7a72b75232b jp (shell): shell command (REPL mode), first draft:
Goffi <goffi@goffi.org>
parents: 2295
diff changeset
52 # A_PROMPT_* is for shell
2355
0fed4a1c033a jp (shell): changed prompt colour
Goffi <goffi@goffi.org>
parents: 2309
diff changeset
53 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
54 A_PROMPT_SUF = A.BOLD
2505
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
55 # Files
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
56 A_DIRECTORY = A.BOLD + A.FG_CYAN
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
57 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
58
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
59 # exit codes
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
60 EXIT_OK = 0
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
61 EXIT_ERROR = 1 # generic error, when nothing else match
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
62 EXIT_BAD_ARG = 2 # arguments given by user are bad
2098
e0066920a661 primitivus, jp: dynamic bridge + fixed D-Bus bridge:
Goffi <goffi@goffi.org>
parents: 2073
diff changeset
63 EXIT_BRIDGE_ERROR = 3 # can't connect to bridge
2112
877d0a2d0d86 jp (constants): added exit code for error on bridge method call
Goffi <goffi@goffi.org>
parents: 2098
diff changeset
64 EXIT_BRIDGE_ERRBACK = 4 # something went wrong when calling a bridge method
2073
3d633458d962 jp (core): added EXIT_NOT_FOUND constant, which return 16 as exit code
Goffi <goffi@goffi.org>
parents: 1951
diff changeset
65 EXIT_NOT_FOUND = 16 # an item required by a command was not found
2268
a29d1351bc83 jp (constants): added exit code for data error.
Goffi <goffi@goffi.org>
parents: 2233
diff changeset
66 EXIT_DATA_ERROR = 17 # data needed for a command is invalid
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
67 EXIT_FILE_NOT_EXE = 126 # a file to be executed was found, but it was not an executable utility (cf. man 1 exit)
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
68 EXIT_CMD_NOT_FOUND = 127 # a utility to be executed was not found (cf. man 1 exit)
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
69 EXIT_SIGNAL_INT = 128 # a command was interrupted by a signal (cf. man 1 exit)