annotate getan/backend.py @ 135:ce707fbb9666

Change coding style of if clauses
author Björn Ricks <bjoern.ricks@intevation.de>
date Wed, 31 Oct 2012 14:21:44 +0100
parents 99639833968d
children 9f4da22fb1f1
rev   line source
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
2 #
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
3 # (c) 2008, 2009, 2010 by
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
4 # Sascha L. Teichmann <sascha.teichmann@intevation.de>
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
5 # Ingo Weinzierl <ingo.weinzierl@intevation.de>
97
99639833968d Add me as author in files that I did touch
Björn Ricks <bjoern.ricks@intevation.de>
parents: 68
diff changeset
6 # (c) 2011 Björn Ricks <bjoern.ricks@intevation.de>
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
7 #
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
8 # This is Free Software licensed unter the terms of GPLv3 or later.
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
9 # For details see LICENSE coming with the source of 'getan'.
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
10 #
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
11
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
12 import logging
40
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
13 import os
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
14
33
f96a18c10836 Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 23
diff changeset
15 try:
f96a18c10836 Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 23
diff changeset
16 import sqlite3 as db
f96a18c10836 Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 23
diff changeset
17 except ImportError:
f96a18c10836 Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 23
diff changeset
18 from pysqlite2 import dbapi2 as db
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
19
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
20 from getan.project import Project, Entry
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
21
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
22 DEFAULT_DATABASE = "time.db"
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
23
40
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
24 CREATE_TABLES = [
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
25 """
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
26 CREATE TABLE projects (
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
27 id INTEGER PRIMARY KEY AUTOINCREMENT,
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
28 key VARCHAR(16),
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
29 description VARCHAR(256),
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
30 active BOOLEAN DEFAULT 1
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
31 )
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
32 """,
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
33 """
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
34 CREATE TABLE entries (
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
35 id INTEGER PRIMARY KEY AUTOINCREMENT,
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
36 project_id INTEGER REFERENCES projects(id),
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
37 start_time TIMESTAMP NOT NULL,
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
38 stop_time TIMESTAMP NOT NULL,
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
39 description VARCHAR(256),
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
40
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
41 CHECK (strftime('%s', start_time) <= strftime('%s', stop_time))
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
42 )
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
43 """
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
44 ]
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
45
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
46 LOAD_ACTIVE_PROJECTS = '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
47 SELECT id, key, description, total
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
48 FROM projects LEFT JOIN
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
49 (SELECT
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
50 project_id,
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
51 sum(strftime('%s', stop_time) - strftime('%s', start_time)) AS total
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
52 FROM entries
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
53 GROUP BY project_id) ON project_id = id
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
54 WHERE active
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
55 '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
56
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
57 LOAD_PROJECT_ENTRIES = '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
58 SELECT
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
59 id,
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
60 project_id,
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
61 start_time as "[timestamp]",
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
62 stop_time as "[timestamp]",
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
63 description
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
64 FROM
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
65 entries
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
66 WHERE
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
67 project_id = %i
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
68 ORDER BY
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
69 id
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
70 DESC
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
71 '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
72
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
73 INSERT_PROJECT_ENTRY = '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
74 INSERT INTO entries (project_id, start_time, stop_time, description)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
75 VALUES(?,?,?,?)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
76 '''
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
77
49
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
78 INSERT_PROJECT = '''
52
9cb57c37369a fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents: 50
diff changeset
79 INSERT INTO projects (key, description, active) VALUES (?,?,1)
49
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
80 '''
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
81
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
82 DELETE_PROJECT_ENTRY = 'DELETE FROM entries WHERE id = %i'
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
83
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
84 MOVE_ENTRY = 'UPDATE entries SET project_id = ? WHERE id = ?'
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
85
68
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
86 UPDATE_ENTRY = 'UPDATE entries SET description = ? WHERE id = ?'
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
87
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
88 logger = logging.getLogger()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
89
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
90 class Backend:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
91
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
92 def __init__(self, database = DEFAULT_DATABASE):
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
93 self.database = database
40
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
94 self.ensure_exists()
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
95 self.con = db.connect(database,
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
96 detect_types=db.PARSE_DECLTYPES |
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
97 db.PARSE_COLNAMES)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
98 self.con.text_factory = lambda x: unicode(x, "utf-8", "ignore")
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
99
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
100
40
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
101 def ensure_exists(self):
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
102 """ Creates the database file if it does not exist. """
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
103 if os.path.isfile(self.database): return
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
104
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
105 con, cur = None, None
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
106 try:
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
107 con = db.connect(self.database);
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
108 cur = con.cursor()
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
109 try:
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
110 for sql in CREATE_TABLES:
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
111 cur.execute(sql)
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
112 con.commit()
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
113 except:
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
114 con.rollback()
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
115 raise
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
116 finally:
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
117 if cur: cur.close()
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
118 if con: con.close()
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
119
e4759cc8f5e7 Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 33
diff changeset
120
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
121 def load_projects(self):
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
122 """ Loads active projects from database and returns them as array """
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
123 logger.debug("load active projects from database.")
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
124 cur = None
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
125 try :
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
126 cur = self.con.cursor()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
127 cur.execute(LOAD_ACTIVE_PROJECTS)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
128
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
129 projects = []
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
130 while True:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
131 row = cur.fetchone()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
132
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
133 if not row:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
134 break
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
135 proj = Project(*row)
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
136 proj.entries = self.load_entries(proj.id)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
137 projects.append(proj)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
138
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
139 logger.info("found %i active projects." % len(projects))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
140 return projects
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
141
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
142 finally:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
143 close(cur)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
144
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
145
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
146 def load_entries(self, project_id):
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
147 """ Loads all entries that belong to a specific project """
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
148 logger.debug("load entries that belong to project %s" % project_id)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
149 cur = None
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
150 try:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
151 cur = self.con.cursor()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
152 cur.execute(LOAD_PROJECT_ENTRIES % project_id)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
153
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
154 entries = []
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
155 while True:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
156 try:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
157 row = cur.fetchone()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
158
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
159 if not row:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
160 break
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
161 entries.append(Entry(*row))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
162 except:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
163 logger.warn("found invalid entry.")
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
164
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
165 logger.debug("Found %i entries that belong to project '%i'"
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
166 % (len(entries), project_id))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
167 return entries
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
168 finally:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
169 close(cur)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
170
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
171
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
172 def insert_project_entry(self, project, stop_time, desc):
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
173 if project is None:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
174 return
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
175 cur = None
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
176 try:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
177 cur = self.con.cursor()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
178 cur.execute(INSERT_PROJECT_ENTRY, (
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
179 project.id, project.start, stop_time, desc))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
180 self.con.commit()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
181 logger.debug("Added new entry '%s' of project '%s' into db"
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
182 % (desc, project.desc))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
183
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
184 project.entries = self.load_entries(project.id)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
185 finally:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
186 close(cur)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
187
52
9cb57c37369a fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents: 50
diff changeset
188 def insert_project(self, key, description):
9cb57c37369a fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents: 50
diff changeset
189 if key is None or description is None:
49
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
190 return
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
191 cur = None
50
9dbb6ee443a4 don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents: 49
diff changeset
192 try:
49
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
193 cur = self.con.cursor()
52
9cb57c37369a fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents: 50
diff changeset
194 cur.execute(INSERT_PROJECT, (key, description))
49
062ce001abd1 add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents: 40
diff changeset
195 self.con.commit()
52
9cb57c37369a fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents: 50
diff changeset
196 logger.debug("Added a new project '%s' into db" % description)
50
9dbb6ee443a4 don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents: 49
diff changeset
197 finally:
9dbb6ee443a4 don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents: 49
diff changeset
198 close(cur)
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
199
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
200 def delete_entries(self, entries):
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
201 if entries is None:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
202 return
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
203
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
204 cur = None
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
205 try:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
206 cur = self.con.cursor()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
207 for entry in entries:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
208 cur.execute(DELETE_PROJECT_ENTRY % entry.id)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
209 logger.debug("Deleted entry: %s (%d)" % (entry.desc, entry.id))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
210 self.con.commit()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
211 finally:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
212 close(cur)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
213
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
214
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
215 def move_entries(self, entries, new_project_id):
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
216 if entries is None or new_project_id is None:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
217 return
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
218
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
219 cur = None
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
220 try:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
221 cur = self.con.cursor()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
222 for entry in entries:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
223 cur.execute(MOVE_ENTRY, (new_project_id, entry.id))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
224 logger.debug("Moved entry '%s' (id=%d) to project with id %d."
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
225 % (entry.desc, entry.id, new_project_id))
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
226 self.con.commit()
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
227 finally:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
228 close(cur)
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
229
68
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
230 def update_entry(self, entry):
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
231 if not entry:
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
232 return
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
233
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
234 cur = None
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
235 try:
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
236 cur = self.con.cursor()
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
237 cur.execute(UPDATE_ENTRY, (entry.desc, entry.id))
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
238 self.con.commit()
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
239 logger.debug("Updated entry: '%s' (%d)" % (entry.desc, entry.id))
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
240 finally:
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
241 close(cur)
a25dab413260 Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents: 52
diff changeset
242
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
243 def close(cur):
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
244 """ This function closes a database cursor if it is existing """
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
245 if cur:
135
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
246 try:
ce707fbb9666 Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents: 97
diff changeset
247 cur.close()
23
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
248 except:
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
249 logger.warn("could not close database cursor.")
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
250
9c4e8ba3c4fa Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff changeset
251 # vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)