forked from mirrors/gecko-dev
		
	 a1ee478054
			
		
	
	
		a1ee478054
		
	
	
	
	
		
			
			Note that, as part of adding this packages to the automated vendoring system, some dependencies were automatically added - most notably, dependencies of `taskcluster` that become visible with Python 3.6+. Also, adds `**/.git` to the exclusions because: * `.git` is part of our `.hgignore`, but * `.git` is part of the `aiohttp` `tar.gz` file. Since the file isn't needed for `pip install`-ing `aiohttp`, and since we want `./mach vendor python` to be a no-op when there's no requirement changes, we exclude it. Differential Revision: https://phabricator.services.mozilla.com/D123122
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| """
 | |
| Example of serving an Application using the `aiohttp.web` CLI.
 | |
| 
 | |
| Serve this app using::
 | |
| 
 | |
|     $ python -m aiohttp.web -H localhost -P 8080 --repeat 10 cli_app:init \
 | |
|     > "Hello World"
 | |
| 
 | |
| Here ``--repeat`` & ``"Hello World"`` are application specific command-line
 | |
| arguments. `aiohttp.web` only parses & consumes the command-line arguments it
 | |
| needs (i.e. ``-H``, ``-P`` & ``entry-func``) and passes on any additional
 | |
| arguments to the `cli_app:init` function for processing.
 | |
| """
 | |
| 
 | |
| from argparse import ArgumentParser
 | |
| 
 | |
| from aiohttp import web
 | |
| 
 | |
| 
 | |
| def display_message(req):
 | |
|     args = req.app["args"]
 | |
|     text = "\n".join([args.message] * args.repeat)
 | |
|     return web.Response(text=text)
 | |
| 
 | |
| 
 | |
| def init(argv):
 | |
|     arg_parser = ArgumentParser(
 | |
|         prog="aiohttp.web ...", description="Application CLI", add_help=False
 | |
|     )
 | |
| 
 | |
|     # Positional argument
 | |
|     arg_parser.add_argument("message", help="message to print")
 | |
| 
 | |
|     # Optional argument
 | |
|     arg_parser.add_argument(
 | |
|         "--repeat", help="number of times to repeat message", type=int, default="1"
 | |
|     )
 | |
| 
 | |
|     # Avoid conflict with -h from `aiohttp.web` CLI parser
 | |
|     arg_parser.add_argument(
 | |
|         "--app-help", help="show this message and exit", action="help"
 | |
|     )
 | |
| 
 | |
|     args = arg_parser.parse_args(argv)
 | |
| 
 | |
|     app = web.Application()
 | |
|     app["args"] = args
 | |
|     app.router.add_get("/", display_message)
 | |
| 
 | |
|     return app
 |