annotate bitsyblog/factory.py @ 133:ce478807848e default tip

py3
author Jeff Hammel <k0scist@gmail.com>
date Mon, 28 Dec 2020 21:18:19 +0000
parents e2f7dccbac26
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
1 """
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
2 factories for bistyblog
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
3 """
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
4
45
c228832db770 fix blogme
k0s <k0scist@gmail.com>
parents: 41
diff changeset
5 from bitsyauth import BitsyAuth
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
6 from getpass import getpass
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
7 from paste.httpexceptions import HTTPExceptionHandler
108
Jeff Hammel <k0scist@gmail.com>
parents: 105
diff changeset
8 from .bitsyblog import BitsyBlog, BitsierBlog
Jeff Hammel <k0scist@gmail.com>
parents: 105
diff changeset
9
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
10
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
11 def get_args(app_conf, app=BitsyBlog):
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
12 """return arguments for bitsyblog and its handlers"""
70
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
13
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
14 # accepted configuration keys, e.g. 'bitsyblog.file_dir'
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
15 config = set(app.defaults.keys())
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
16 key_str = app_conf.get('namespace', 'bitsyblog.')
70
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
17 bitsyblog_args = {}
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
18 handler_args = {}
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
19 for key, value in app_conf.items():
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
20 if key.startswith(key_str):
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
21 if key_str:
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
22 key = key.split(key_str, 1)[-1]
70
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
23 if key in config:
71
0c98d1c2c6df fix syntax errors
Jeff Hammel <jhammel@mozilla.com>
parents: 70
diff changeset
24 bitsyblog_args[key] = value
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
25 continue
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
26
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
27 # handler args
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
28 if '.' in key:
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
29 section, key = key.split('.', 1)
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
30 handler_args.setdefault(section, {})[key] = value
70
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
31 return bitsyblog_args, handler_args
52
3ddb2ca12178 allow for multiple template directories
k0s <k0scist@gmail.com>
parents: 50
diff changeset
32
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
33
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
34 def factory(global_conf, **app_conf):
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
35 """make bitsyauth app and wrap it in middleware"""
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
36
70
f6a6a4b072e7 complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
37 bitsyblog_args, handler_args = get_args(app_conf)
71
0c98d1c2c6df fix syntax errors
Jeff Hammel <jhammel@mozilla.com>
parents: 70
diff changeset
38 app = BitsyBlog(bitsyblog_args, handler_args)
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
39 secret = app_conf.get('secret', 'secret')
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
40 return BitsyAuth(HTTPExceptionHandler(app),
59
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
41 global_conf,
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
42 app.passwords,
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
43 app.newuser,
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
44 'bitsyblog',
59
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
45 secret)
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
46
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
47
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
48 def basebitsierfactory(global_conf, bitsyblog_args, handler_args):
103
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
49 """make single-user bitsyblog, base function"""
62d4deec4314 STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 80
diff changeset
50
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
51 user = bitsyblog_args['user'] # ensure this exists
71
0c98d1c2c6df fix syntax errors
Jeff Hammel <jhammel@mozilla.com>
parents: 70
diff changeset
52 app = BitsierBlog(bitsyblog_args, handler_args)
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
53 secret = bitsyblog_args.get('secret', 'secret')
59
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
54 auth = BitsyAuth(HTTPExceptionHandler(app),
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
55 global_conf,
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
56 app.passwords,
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
57 newuser=None,
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
58 site=bitsyblog_args.get('site', 'bitsyblog'),
59
0af1f4ae328d fix a couple of basic things
egj@socialplanning.org
parents: 58
diff changeset
59 secret=secret)
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
60 if not user in app.users:
105
67e01fc5e360 STUB: bitsyblog/bitsyblog.py bitsyblog/factory.py bitsyblog/user.py
Jeff Hammel <k0scist@gmail.com>
parents: 104
diff changeset
61 # create a new user
67e01fc5e360 STUB: bitsyblog/bitsyblog.py bitsyblog/factory.py bitsyblog/user.py
Jeff Hammel <k0scist@gmail.com>
parents: 104
diff changeset
62 # really, should go in CLI or what not
0
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
63 pw = getpass('Enter password for %s: ' % user)
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
64 app.newuser(user, auth.hash(app.user, pw))
e3823be6a423 initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
65 return auth
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
66
104
3198edbf7d8e STUB: bitsyblog/factory.py
Jeff Hammel <k0scist@gmail.com>
parents: 103
diff changeset
67
80
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
68 def bitsierfactory(global_conf, **app_conf):
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
69 """make single-user bitsyblog"""
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
70 bitsyblog_args, handler_args = get_args(app_conf, BitsierBlog)
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
71 app = basebitsierfactory(global_conf, bitsyblog_args, handler_args)
51b49bc484ff partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents: 73
diff changeset
72 return app