move app to scopes.server; rename / clean-up
This commit is contained in:
		
							parent
							
								
									265048e76a
								
							
						
					
					
						commit
						2986d426bb
					
				
					 7 changed files with 54 additions and 19 deletions
				
			
		|  | @ -1,8 +0,0 @@ | |||
| # py-scopes/demo/app.py | ||||
| 
 | ||||
| def demo_app(environ, start_response): | ||||
|     status = '200 OK' | ||||
|     headers = [("Content-type", "text/plain; charset=utf-8")] | ||||
|     start_response(status, headers) | ||||
|     return ['Hello World'.encode()] | ||||
| 
 | ||||
|  | @ -2,8 +2,10 @@ | |||
| 
 | ||||
| from dotenv import load_dotenv | ||||
| from os import getenv | ||||
| from scopes.server.app import demo_app, zope_app | ||||
| 
 | ||||
| load_dotenv() | ||||
| 
 | ||||
| server_port = getenv('SERVER_PORT', '8999') | ||||
| 
 | ||||
| app = zope_app | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| # py-scopes/demo/server.py | ||||
| # py-scopes/demo/demo_server.py | ||||
| 
 | ||||
| from wsgiref.simple_server import make_server | ||||
| 
 | ||||
|  | @ -10,3 +10,9 @@ def run(app, config): | |||
|             httpd.serve_forever() | ||||
|         except KeyboardInterrupt: | ||||
|             print('Shutting down.') | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     import config | ||||
|     run(config.app, config) | ||||
| 
 | ||||
|  | @ -1,9 +0,0 @@ | |||
| # py-scopes/demo/main.py | ||||
| 
 | ||||
| import config | ||||
| 
 | ||||
| from app import demo_app | ||||
| import server | ||||
| 
 | ||||
| server.run(demo_app, config) | ||||
| 
 | ||||
|  | @ -19,7 +19,7 @@ dependencies = [ | |||
| ] | ||||
| 
 | ||||
| [project.optional-dependencies] | ||||
| demo = ["python-dotenv"] | ||||
| demo = ["python-dotenv", "zope.publisher"] | ||||
| test = ["pytest"] | ||||
| 
 | ||||
| [tool.setuptools] | ||||
|  |  | |||
							
								
								
									
										1
									
								
								scopes/server/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								scopes/server/__init__.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| """package scopes.server""" | ||||
							
								
								
									
										43
									
								
								scopes/server/app.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								scopes/server/app.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| # scopes.server.app | ||||
| 
 | ||||
| from zope.publisher.base import DefaultPublication | ||||
| from zope.publisher.browser import BrowserRequest | ||||
| from zope.publisher.publish import publish | ||||
| 
 | ||||
| 
 | ||||
| def demo_app(environ, start_response): | ||||
|     print(f'*** environ {environ}.') | ||||
|     status = '200 OK' | ||||
|     headers = [("Content-type", "text/plain; charset=utf-8")] | ||||
|     start_response(status, headers) | ||||
|     return ['Hello World'.encode()] | ||||
| 
 | ||||
| 
 | ||||
| def zope_app(environ, start_response): | ||||
|     request = BrowserRequest(environ['wsgi.input'], environ) | ||||
|     request.setPublication(DefaultPublication(AppRoot())) | ||||
|     request = publish(request, False) | ||||
|     response = request.response | ||||
|     start_response(response.getStatusString(), response.getHeaders()) | ||||
|     return response.consumeBodyIter() | ||||
| 
 | ||||
| 
 | ||||
| class AppRoot: | ||||
|     """Zope Demo AppRoot""" | ||||
| 
 | ||||
|     def __call__(self): | ||||
|         """calling AppRoot""" | ||||
|         return 'At root' | ||||
| 
 | ||||
|     def __getitem__(self, key): | ||||
|         def child(): | ||||
|             """get child""" | ||||
|             print(f'--- getitem {key}') | ||||
|             return 'getitem' | ||||
|         return child | ||||
| 
 | ||||
|     def hello(self):  | ||||
|         """method hello""" | ||||
|         return 'Hello AppRoot' | ||||
| 
 | ||||
| 
 | ||||
		Loading…
	
	Add table
		
		Reference in a new issue