Mercurial > libervia-backend
annotate frontends/src/primitivus/config.py @ 1316:8adcdf2cdfe1 frontends_multi_profiles
core: added a "profileConnecting" method check:
if a plugin has a profileConnecting method, it will be called when the profile is being connected but before the client stream is started. That can be usefull if things need to be done before the communication is started: e.g. putting triggers, loading PersistentDict, etc.
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 09 Feb 2015 21:39:51 +0100 |
parents | ca15fb1abbc4 |
children | 069ad98b360d |
rev | line source |
---|---|
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/python |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # Primitivus: a SAT frontend |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 """This module manage configuration specific to Primitivus""" |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 from sat_frontends.primitivus.constants import Const as C |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 from sat_frontends.primitivus.keys import action_key_map |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 import ConfigParser |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 |
1165
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
27 def applyConfig(host): |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 """Parse configuration and apply found change |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 raise: can raise various Exceptions if configuration is not good |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 """ |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 config = ConfigParser.SafeConfigParser() |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 config.read(C.CONFIG_FILES) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 try: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 options = config.items(C.CONFIG_SECTION) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 except ConfigParser.NoSectionError: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 options = [] |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 shortcuts = {} |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 for name, value in options: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 if name.startswith(C.CONFIG_OPT_KEY_PREFIX.lower()): |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 action = name[len(C.CONFIG_OPT_KEY_PREFIX):].upper() |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 shortcut = value |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 if not action or not shortcut: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 raise ValueError("Bad option: {} = {}".format(name, value)) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 shortcuts[action] = shortcut |
1165
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
46 if name == "disable_mouse": |
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
47 host.loop.screen.set_mouse_tracking(False) |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 action_key_map.replace(shortcuts) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 action_key_map.check_namespaces() |