Mercurial > hg > config
annotate python/example/webwaiter.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 |
| parents | 633487219ed6 |
| children |
| rev | line source |
|---|---|
|
872
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
3 # https://stackoverflow.com/questions/473620/how-do-you-create-a-daemon-in-python |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
4 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
5 """ |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
6 POST / |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
7 { |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
8 "command": ["", ...] |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
9 "cwd": "" |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
10 "env: {"": ""} |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
11 } |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
12 -> |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
13 200 OK |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
14 { |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
15 "pid": 123 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
16 } |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
17 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
18 GET /1 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
19 { |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
20 "returncode": null # or e.g. 2 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
21 (stdout, stderr) |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
22 } |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
23 """ |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
24 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
25 from webob import Request, Response |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
26 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
27 class WebWaiter: |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
28 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
29 def __call__(self, environ, start_response): |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
30 request = Request(environ) |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
31 res = Response(content_type='text/plain') |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
32 res.body = bytes("hello world", "utf-8") |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
33 return res(environ, start_response) |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
34 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
35 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
36 if __name__ == '__main__': |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
37 import argparse |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
38 import wgsiref |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
39 |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
40 parser = argparse.ArgumentParser(description=__doc__) |
|
633487219ed6
add web process waiter skeleton
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
41 options = parser.parse_args() |
