Mercurial > p > roundup > code
annotate roundup/demo.py @ 8580:5cba36e42b8f
chore: refactor replace urlparse with urlsplit and use urllib_
Python docs recommend use of urlsplit() rather than
urlparse(). urlsplit() is a little faster and doesn't try to split the
path into path and params using the rules from an obsolete RFC.
actions.py, demo.py, rest.py, client.py
Replace urlparse() with urlsplit()
actions.py
urlsplit() produces a named tuple with one fewer elements (no
.param). So fixup calls to urlunparse() so they have the proper
number of elements in the tuple.
also merge url filtering for param and path.
demo.py, rest.py:
Replace imports from urlparse/urllib.parse with
roundup.anypy.urllib_ so we use the same interface throughout the
code base.
test/test_cgi.py:
Since actions.py filtering for invali urls not split by path/param,
fix tests for improperly quoted url's.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 19 Apr 2026 22:58:59 -0400 |
| parents | 9c3ec0a5c7fc |
| children |
| rev | line source |
|---|---|
|
4689
7a032013bb6a
demo.py: Make executable, remove unused glob import
anatoly techtonik <techtonik@gmail.com>
parents:
4602
diff
changeset
|
1 #!/usr/bin/env python |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 # |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 # Copyright (c) 2003 Richard Jones (richard@mechanicalcat.net) |
|
2648
fe71e108d998
Main Roundup configuration class renamed to CoreConfig;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2639
diff
changeset
|
4 # |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
5 import errno |
| 7591 | 6 import getopt |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
7 import os |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
8 import shutil |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
9 import socket |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
10 import sys |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
12 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
13 from roundup import configuration |
|
8580
5cba36e42b8f
chore: refactor replace urlparse with urlsplit and use urllib_
John Rouillard <rouilj@ieee.org>
parents:
8562
diff
changeset
|
14 from roundup.anypy import urllib_ |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
15 from roundup.scripts import roundup_server |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
16 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
17 # Path where demo instance files will be stored |
|
4764
d273e59b487b
roundup.demo: Use relative tracker home directory
anatoly techtonik <techtonik@gmail.com>
parents:
4763
diff
changeset
|
18 TRACKER_HOME = os.path.abspath('demo') |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
19 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
20 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
21 def install_demo(home, backend, template, use_port=None, use_host=None): |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
22 """Install a demo tracker |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
23 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
24 Parameters: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
25 home: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
26 tracker home directory path |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
27 backend: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
28 database backend name |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
29 template: |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
30 tracker template |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
31 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
32 """ |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
33 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
34 from roundup import init, instance, password |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
35 |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
36 # set up the config for this tracker |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
37 template_dir = os.path.join('share', 'roundup', 'templates', template) |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
38 |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
39 # Load optional override ini file. Missing ini file is ignored. |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
40 template_cfg = configuration.UserConfig(template_dir + "/config_ini.ini") |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
41 config = configuration.CoreConfig(settings={ |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
42 i.name: i.get() for i in template_cfg.items() |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
43 }) |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
44 config['TRACKER_HOME'] = home |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
45 config['MAIL_DOMAIN'] = 'localhost' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
46 config['DATABASE'] = 'db' |
|
3549
f6719836e521
allow dispname to be passed to renderWith [SF#1424587]
Richard Jones <richard@users.sourceforge.net>
parents:
2881
diff
changeset
|
47 config['WEB_DEBUG'] = True |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
48 if backend in ('mysql', 'postgresql'): |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
49 config['RDBMS_HOST'] = 'localhost' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
50 config['RDBMS_USER'] = 'rounduptest' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
51 config['RDBMS_PASSWORD'] = 'rounduptest' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
52 config['RDBMS_NAME'] = 'rounduptest' |
|
2167
4dafc87a0113
better support for demoing mysql/postgresql
Richard Jones <richard@users.sourceforge.net>
parents:
2104
diff
changeset
|
53 |
|
5070
04e48cfc91da
fix demo.py after database backend moved from db/backend to config.ini::[rdbms].backend. Note this will have to change if backend location moved to [main].backend (tomatch [main].db).
John Rouillard <rouilj@ieee.org>
parents:
5019
diff
changeset
|
54 config['RDBMS_BACKEND'] = backend |
|
04e48cfc91da
fix demo.py after database backend moved from db/backend to config.ini::[rdbms].backend. Note this will have to change if backend location moved to [main].backend (tomatch [main].db).
John Rouillard <rouilj@ieee.org>
parents:
5019
diff
changeset
|
55 |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
56 # see if we need to clean up existing directory |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
57 if os.path.exists(home): |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
58 if os.path.exists(home + '/config.ini'): |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
59 # clear everything out to avoid conflicts with former |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
60 # extensions and detectors |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
61 print("Nuking directory left from the previous demo instance.") |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
62 shutil.rmtree(home) |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
63 else: |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
64 print("Error: Refusing to nuke non-tracker directory:") |
|
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
65 print(" %s" % home) |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
66 sys.exit(1) |
|
2167
4dafc87a0113
better support for demoing mysql/postgresql
Richard Jones <richard@users.sourceforge.net>
parents:
2104
diff
changeset
|
67 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
68 init.install(home, template_dir) |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
69 # Remove config_ini.ini file from tracker_home (not template dir). |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
70 # Ignore file not found - not all templates have |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
71 # config_ini.ini files. |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
72 try: |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
73 os.remove(home + "/config_ini.ini") |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
74 except OSError as e: # FileNotFound exception under py3 |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
75 if e.errno == 2: |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
76 pass |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
77 else: |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
78 raise |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
79 |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
80 # don't have email flying around |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
81 nosyreaction = os.path.join(home, 'detectors', 'nosyreaction.py') |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
82 if os.path.exists(nosyreaction): |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
83 os.remove(nosyreaction) |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
84 nosyreaction += 'c' |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
85 if os.path.exists(nosyreaction): |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
86 os.remove(nosyreaction) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 # figure basic params for server |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
89 hostname = use_host or 'localhost' |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 # pick a fairly odd, random port |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
91 port = use_port or 8917 |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 while 1: |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
93 print('Trying to set up web server on port %d ...' % port,) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 try: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 s.connect((hostname, port)) |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
98 except socket.error as e: |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 raise |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
101 print('should be ok.') |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 break |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 else: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 s.close() |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
105 print('already in use.') |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 port += 100 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
107 config['TRACKER_WEB'] = 'http://%s:%s/demo/' % (hostname, port) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 # write the config |
|
2649
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2648
diff
changeset
|
110 config['INSTANT_REGISTRATION'] = 1 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
111 config.save(os.path.join(home, config.INI_FILE)) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
113 # open the tracker and initialise |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
114 tracker = instance.open(home) |
|
7210
7147a4c833e9
Pass config argument to Password calls in demo.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
115 tracker.init(password.Password('admin', config=config)) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 # add the "demo" user |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
118 db = tracker.open('admin') |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
119 # FIXME: Move tracker-specific demo initialization into the tracker |
|
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
120 # templates. |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6069
diff
changeset
|
121 if os.path.basename(template) == 'minimal': |
|
7210
7147a4c833e9
Pass config argument to Password calls in demo.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
122 db.user.create(username='demo', |
|
7147a4c833e9
Pass config argument to Password calls in demo.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
123 password=password.Password('demo', config=db.config), |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
124 roles='User') |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
125 else: |
|
7210
7147a4c833e9
Pass config argument to Password calls in demo.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
126 db.user.create(username='demo', |
|
7147a4c833e9
Pass config argument to Password calls in demo.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
127 password=password.Password('demo', config=db.config), |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
128 realname='Demo User', roles='User') |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 db.commit() |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 db.close() |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
131 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
132 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
133 def run_demo(home, bind_addr=None, bind_port=None): |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
134 """Run the demo tracker instance from its ``home`` directory |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
135 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
136 For running under docker, we need to split ports into |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
137 the port roundup-server binds to (usually 8080) and the |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
138 external mapping requested by docker to be used in external url's. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
139 """ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
140 |
|
7446
fb39200904a5
Add newlines to make scanning of demo instructions easier.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
141 print("\nDemo Tracker Home:", home) |
|
4764
d273e59b487b
roundup.demo: Use relative tracker home directory
anatoly techtonik <techtonik@gmail.com>
parents:
4763
diff
changeset
|
142 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
143 cfg = configuration.CoreConfig(home) |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
144 url = cfg["TRACKER_WEB"] |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
145 try: |
|
8580
5cba36e42b8f
chore: refactor replace urlparse with urlsplit and use urllib_
John Rouillard <rouilj@ieee.org>
parents:
8562
diff
changeset
|
146 hostname, port = urllib_.urlsplit(url)[1].split(':') |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
147 except ValueError: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
148 print("\nThe TRACKER_WEB url:\n\n %(url)s\n\nin\n\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
149 " %(home)s/config.ini" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
150 "\n\nis missing a port number.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
151 "\nAre you using demo mode to start a production tracker? " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
152 "Try running\ndemo mode with a different directory. " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
153 "Use roundup-server to serve\nproduction trackers. " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
154 "Exiting.\n" % {'home': home, 'url': url}) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
155 exit(1) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
156 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
157 bind_addr = bind_addr or hostname |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
158 port = int(bind_port or port) |
|
7446
fb39200904a5
Add newlines to make scanning of demo instructions easier.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
159 success_message = '''Server running - connect to:\n |
|
fb39200904a5
Add newlines to make scanning of demo instructions easier.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
160 %(url)s\n |
|
1868
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
161 1. Log in as "demo"/"demo" or "admin"/"admin". |
|
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
162 2. Hit Control-C to stop the server. |
|
4602
19490d84802b
demo.py: Fix self-referencing names
anatoly techtonik <techtonik@gmail.com>
parents:
4428
diff
changeset
|
163 3. Re-start the server by running "%(script)s" again. |
|
4889
edd6cac141c1
demo.py: `nuke` resets the tracker, not the server, also rewrote
anatoly techtonik <techtonik@gmail.com>
parents:
4863
diff
changeset
|
164 4. Reset the tracker by running "%(script)s nuke". |
|
3868
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
165 |
|
4988
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
166 By default the demo tracker is set up to be accessed from "localhost". |
|
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
167 If you want to run it on a server, |
|
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
168 edit "%(datadir)s/config.ini" |
|
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
169 and set the "web" option in section "[tracker]" to your host name, |
|
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
170 then restart demo. If you want to change backend types, you must use "nuke". |
|
3868
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
171 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
172 ''' % dict(url=url, script=sys.argv[0], datadir=TRACKER_HOME) |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
173 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
174 # disable command line processing in roundup_server |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7210
diff
changeset
|
175 sys.argv = sys.argv[:1] + ['-p', str(port), '-n', bind_addr, 'demo=' + home] |
|
2837
bcee075321fc
patching roundup_server.RoundupRequestHandler class directly...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2783
diff
changeset
|
176 roundup_server.run(success_message=success_message) |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
177 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
178 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
179 def usage(msg=''): |
|
5019
9bb20454f409
demo: Cleaning up the code
anatoly techtonik <techtonik@gmail.com>
parents:
4988
diff
changeset
|
180 if msg: |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
181 print(msg) |
|
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
182 print("""\ |
|
5019
9bb20454f409
demo: Cleaning up the code
anatoly techtonik <techtonik@gmail.com>
parents:
4988
diff
changeset
|
183 Usage: %(script)s [options] [nuke] |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
184 |
|
5019
9bb20454f409
demo: Cleaning up the code
anatoly techtonik <techtonik@gmail.com>
parents:
4988
diff
changeset
|
185 Run a demo server. Config and database files are created in |
|
9bb20454f409
demo: Cleaning up the code
anatoly techtonik <techtonik@gmail.com>
parents:
4988
diff
changeset
|
186 %(datadir)s subdirectory of %(script)s dir. |
|
4863
9db31cba6e0b
Minor: demo.py usage message improved: explains "nuke" now.
Bernhard Reiter <bernhard@intevation.de>
parents:
4764
diff
changeset
|
187 |
|
9db31cba6e0b
Minor: demo.py usage message improved: explains "nuke" now.
Bernhard Reiter <bernhard@intevation.de>
parents:
4764
diff
changeset
|
188 'nuke' will re-initialize the demo instance, deleting the old data. |
|
9db31cba6e0b
Minor: demo.py usage message improved: explains "nuke" now.
Bernhard Reiter <bernhard@intevation.de>
parents:
4764
diff
changeset
|
189 |
|
4988
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
190 See docs/installation "For The Really Impatient" for more details. |
|
c3a647a9f387
Fixes issue2550881 (demo.py: Add pointer how to access demo from remote host.)
Bernhard Reiter <bernhard@intevation.de>
parents:
4889
diff
changeset
|
191 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
192 Options: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
193 -h -- print this help message |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
194 -t template -- specify the tracker template to use |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
195 -b backend -- specify the database backend to use |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
196 """ % dict(script=sys.argv[0], datadir=TRACKER_HOME+os.sep)) |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
197 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
198 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
199 def main(): |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
200 """Run a demo server for users to play with for instant gratification. |
|
1868
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
201 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
202 Sets up the web service on localhost. Disables nosy lists. |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
203 """ |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
204 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
205 try: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
206 opts, args = getopt.getopt(sys.argv[1:], 't:b:h') |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
207 except getopt.GetoptError as e: |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
208 usage(str(e)) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
209 return 1 |
|
6069
d8d046749b5b
flake8 whitespace fixes; remove unused import backends
John Rouillard <rouilj@ieee.org>
parents:
5247
diff
changeset
|
210 for opt, _arg in opts: |
|
4729
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
211 if opt == '-h': |
|
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
212 usage() |
|
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
213 return 0 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
214 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
215 home = os.path.abspath(TRACKER_HOME) |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
216 nuke = args and args[0] == 'nuke' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
217 if not os.path.exists(home) or nuke: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
218 backend = 'anydbm' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
219 template = 'classic' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
220 for opt, arg in opts: |
|
4729
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
221 if opt == '-t': |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
222 template = arg |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
223 elif opt == '-b': |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
224 backend = arg |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
225 if (len(args) > 1 or |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
226 (len(args) == 1 and args[0] != 'nuke')): |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
227 usage() |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
228 return 1 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
229 |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
230 print("Initializing demo instance in:\n %s" % home) |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
231 install_demo(home, backend, template) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
232 elif opts: |
|
5247
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
233 print("Error: Arguments are not allowed when running an existing demo.") |
|
7f00a47b3559
Make demo.py run under either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5070
diff
changeset
|
234 print(" Use the 'nuke' command to start over.") |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
235 sys.exit(1) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
236 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
237 run_demo(home) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
238 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
239 |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
240 if __name__ == '__main__': |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
241 sys.exit(main()) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
242 |
|
2648
fe71e108d998
Main Roundup configuration class renamed to CoreConfig;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2639
diff
changeset
|
243 # vim: set filetype=python sts=4 sw=4 et si : |
