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 dotenv import load_dotenv | ||||||
| from os import getenv | from os import getenv | ||||||
|  | from scopes.server.app import demo_app, zope_app | ||||||
| 
 | 
 | ||||||
| load_dotenv() | load_dotenv() | ||||||
| 
 | 
 | ||||||
| server_port = getenv('SERVER_PORT', '8999') | 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 | from wsgiref.simple_server import make_server | ||||||
| 
 | 
 | ||||||
|  | @ -10,3 +10,9 @@ def run(app, config): | ||||||
|             httpd.serve_forever() |             httpd.serve_forever() | ||||||
|         except KeyboardInterrupt: |         except KeyboardInterrupt: | ||||||
|             print('Shutting down.') |             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] | [project.optional-dependencies] | ||||||
| demo = ["python-dotenv"] | demo = ["python-dotenv", "zope.publisher"] | ||||||
| test = ["pytest"] | test = ["pytest"] | ||||||
| 
 | 
 | ||||||
| [tool.setuptools] | [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