Pyramid푐ℎ푎푚푒푙푒표푛퐷표푐푢푚푒푛푡푎푡푖표푛 Release 0.4.Dev0

Total Page:16

File Type:pdf, Size:1020Kb

Pyramid푐ℎ푎푚푒푙푒표푛퐷표푐푢푚푒푛푡푎푡푖표푛 Release 0.4.Dev0 pyramidchameleonDocumentation Release 0.4.dev0 Pylons Project Contributors January 06, 2021 Contents 1 Overview 1 2 Installation 3 3 Setup 5 4 Using Chameleon templates 7 5 More information 17 6 Reporting bugs / development versions 19 Python Module Index 21 Index 23 i ii CHAPTER 1 Overview pyramid_chameleon is a set of bindings that make templates written for the Chameleon templating system work under the Pyramid web framework. 1 pyramidchameleonDocumentation; Release0:4:dev0 2 Chapter 1. Overview CHAPTER 2 Installation Install using setuptools, e.g. (within a virtualenv): $ $myvenv/bin/easy_install pyramid_chameleon 3 pyramidchameleonDocumentation; Release0:4:dev0 4 Chapter 2. Installation CHAPTER 3 Setup There are several ways to make sure that pyramid_chameleon is active. They are completely equivalent: 1) Add pyramid_chameleon to the pyramid.includes section of your applications main configuration section: [app:main] ... pyramid.includes= pyramid_chameleon 2) Use the includeme function via config.include: config.include('pyramid_chameleon') Once activated, files with the .pt extension are considered to be Chameleon templates. 5 pyramidchameleonDocumentation; Release0:4:dev0 6 Chapter 3. Setup CHAPTER 4 Using Chameleon templates Once pyramid_chameleon been activated .pt templates can be loaded either by looking up names that would be found on the Chameleon search path or by looking up an absolute asset specification (see Understanding Asset Specifications for more information). Quick example 1. Look up a template named foo.pt within the templates directory of a Python package named mypackage: 1 @view_config(renderer="mypackage:templates/foo.pt) 2 def sample_view(request): 3 return {'foo':1,'bar':2} Quick example 2. Look up a template named foo.pt within the templates directory of the "current" Python package (the package in which this Python code is defined): 1 @view_config(renderer="templates/foo.pt) 2 def sample_view(request): 3 return {'foo':1,'bar':2} Quick example 3: manufacturing a response object using the result of render() (a string) using a Chameleon template: 1 from pyramid.renderers import render 2 from pyramid.response import Response 3 4 def sample_view(request): 5 result= render('mypackage:templates/foo.pt', 6 {'foo':1,'bar':2}, 7 request=request) 8 response= Response(result) 9 response.content_type='text/plain' 10 return response Here’s an example view configuration which uses a Chameleon ZPT renderer registered imperatively: 7 pyramidchameleonDocumentation; Release0:4:dev0 1 # config is an instance of pyramid.config.Configurator 2 3 config.add_view('myproject.views.sample_view', 4 renderer='myproject:templates/foo.pt') Here’s an example view configuration which uses a Chameleon text renderer registered imperatively: 1 config.add_view('myproject.views.sample_view', 2 renderer='myproject:templates/foo.txt') 4.1 Chameleon ZPT templates Chameleon is an implementation of ZPT (Zope Page Templates) templating language. The Chameleon engine com- plies largely with the Zope Page Template template specification. However, it is significantly faster than the default implementation that is represented by zope.pagetemplates. The language definition documentation for Chameleon ZPT-style templates is available from the Chameleon website. Given a Chameleon ZPT template named foo.pt in a directory in your application named templates, you can render the template as a renderer like so: 1 from pyramid.view import view_config 2 3 @view_config(renderer='templates/foo.pt') 4 def my_view(request): 5 return {'foo':1,'bar':2} Two built-in renderers exist for Chameleon templates. If the renderer parameter of a view configuration is an absolute path, a relative path or asset specification which has a final path element with a filename extension of .pt, the Chameleon ZPT renderer is used. If the extension is .txt, the Chameleon text renderer is used. The behavior of these renderers is the same, except for the engine used to render the template. When a Chameleon renderer is used in a view configuration, the view must return a Response object or a Python dictionary. If the view callable with an associated template returns a Python dictionary, the named template will be passed the dictionary as its keyword arguments, and the template renderer implementation will return the resulting rendered template in a response to the user. If the view callable returns anything but a Response object or a dictionary, an error will be raised. Before passing keywords to the template, the keyword arguments derived from the dictionary returned by the view are augmented. The callable object – whatever object was used to define the view – will be automatically inserted into the set of keyword arguments passed to the template as the view keyword. If the view callable was a class, the view key- word will be an instance of that class. Also inserted into the keywords passed to the template are renderer_name (the string used in the renderer attribute of the directive), renderer_info (an object containing renderer-related information), context (the context resource of the view used to render the template), and request (the request passed to the view used to render the template). request is also available as req in Pyramid 1.3+. 4.1.1 A sample ZPT template Here’s what a simple Chameleon ZPT template used under Pyramid might look like: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" (continues on next page) 8 Chapter 4. Using Chameleon templates pyramidchameleonDocumentation; Release0:4:dev0 (continued from previous page) 4 xmlns:tal="http://xml.zope.org/namespaces/tal"> 5 <head> 6 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 7 <title>${project} Application</title> 8 </head> 9 <body> 10 <h1 class="title">Welcome to <code>${project}</code>, an 11 application generated by the <a 12 href="http://docs.pylonsproject.org/projects/pyramid/current/" 13 >pyramid</a> web 14 application framework.</h1> 15 </body> 16 </html> Note the use of Mako and/or Genshi -style ${replacements} above. This is one of the ways that Chameleon ZPT differs from standard ZPT. The above template expects to find a project key in the set of keywords passed in to it via render() or render_to_response(). Typical ZPT attribute-based syntax (e.g. tal:content and tal:replace) also works in these templates. 4.1.2 Using ZPT macros in Pyramid When a renderer is used to render a template, Pyramid makes at least two top-level names available to the template by default: context and request. One of the common needs in ZPT-based templates is to use one template’s "macros" from within a different template. In Zope, this is typically handled by retrieving the template from the context. But the context in Pyramid is a resource object, and templates cannot usually be retrieved from resources. To use macros in Pyramid, you need to make the macro template itself available to the rendered template by passing the macro template, or even the macro itself, into the rendered template. To do this you can use the pyramid. renderers.get_renderer() API to retrieve the macro template, and pass it into the template being rendered via the dictionary returned by the view. For example, using a view configuration via a view_config decorator that uses a renderer: 1 from pyramid.renderers import get_renderer 2 from pyramid.view import view_config 3 4 @view_config(renderer='templates/mytemplate.pt') 5 def my_view(request): 6 main= get_renderer('templates/master.pt').implementation() 7 return {'main':main} Where templates/master.pt might look like so: 1 <html xmlns="http://www.w3.org/1999/xhtml" 2 xmlns:tal="http://xml.zope.org/namespaces/tal" 3 xmlns:metal="http://xml.zope.org/namespaces/metal"> 4 <head> 5 </head> 6 <body> 7 <div metal:define-macro="hello"> 8 <h1> 9 Hello <span metal:define-slot="name">Fred</span>! 10 </h1> 11 </div> 12 </body> 13 </html> 4.1. Chameleon ZPT templates 9 pyramidchameleonDocumentation; Release0:4:dev0 And templates/mytemplate.pt might look like so: 1 <html xmlns="http://www.w3.org/1999/xhtml" 2 xmlns:tal="http://xml.zope.org/namespaces/tal" 3 xmlns:metal="http://xml.zope.org/namespaces/metal"> 4 <head> 5 </head> 6 <body> 7 <span metal:use-macro="main.macros['hello']"> 8 <span metal:fill-slot="name">Chris</span> 9 </span> 10 </body> 11 </html> 4.1.3 Using a master page You can also use macros and slots to create a master page that can be used by all your templates. This is very similar to using a macro from another template but uses the IBeforeRender event subscriber to make the macros available to any template. 1 from pyramid.renderers import get_renderer 2 from pyramid.interfaces import IBeforeRender 3 from pyramid.events import subscriber 4 5 @subscriber(IBeforeRender) 6 def globals_factory(event): 7 master= get_renderer('templates/master.pt').implementation() 8 event['master']= master Where templates/master.pt provides a whole page with slots to be filled by views: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title metal:define-slot="title" 5 tal:content="context/title | python:None"> Title goes here </title> 6 <meta tal:attributes="description context/description | python:None"> 7 8 <link rel="stylesheet" href="/site/css/screen.css" media="screen"> 9 <link rel="stylesheet" href="/site/css/print.css" media="print"> 10 11 <metal:slot metal:define-slot="script" /> 12 <metal:slot metal:define-slot="css" /> 13 14 </head> 15 <body> 16 <nav> 17 <ul> 18 <li><a href="/">Home</a></li> 19 </ul> 20 </nav> 21 <section id="content"> 22 <metal:slot metal:define-slot="body" /> 23 </section> 24 <footer>&copy; Pylons Project</footer> 25 </body> 26 </html> 10 Chapter 4. Using Chameleon templates pyramidchameleonDocumentation; Release0:4:dev0 And templates/index.pt fills the relevant slots: 1 <metal:macro use-macro="master"> 2 <metal:slot fill-slot="title"> 3 <title>Welcome to Pyramid Chameleon</title> 4 </metal:slot> 5 6 <metal:slot fill-slot="body"> 7 <h1>Pyramid Chameleon</h1> 8 <p>Chameleon is an XML-based templating language</p> 9 </metal:slot> 10 </metal:macro> 4.2 Chameleon text templates pyramid_chameleon also allows for the use of templates which are composed entirely of non-XML text via Chameleon.
Recommended publications
  • Pylons Reference Documentation Release 1.0.2
    Pylons Reference Documentation Release 1.0.2 Ben Bangert, Graham Higgins, James Gardner, Philip Jenvey January 12, 2018 Contents 1 Getting Started 1 1.1 Requirements...............................................1 1.2 Installing.................................................1 1.3 Creating a Pylons Project........................................3 1.4 Running the application.........................................4 1.5 Hello World...............................................4 2 Concepts of Pylons 7 2.1 The ‘Why’ of a Pylons Project......................................7 2.2 WSGI Applications...........................................8 2.3 WSGI Middleware............................................8 2.4 Controller Dispatch........................................... 10 2.5 Paster................................................... 10 2.6 Loading the Application......................................... 11 3 Controllers 13 3.1 Standard Controllers........................................... 14 3.2 Using the WSGI Controller to provide a WSGI service......................... 16 3.3 Using the REST Controller with a RESTful API............................ 17 3.4 Using the XML-RPC Controller for XML-RPC requests........................ 20 4 Views 23 4.1 Templates................................................. 24 4.2 Passing Variables to Templates...................................... 24 4.3 Default Template Variables....................................... 25 4.4 Configuring Template Engines...................................... 26 4.5 Custom
    [Show full text]
  • The Pyramid Web Application Development Framework Version 1.1
    The Pyramid Web Application Development Framework Version 1.1 Chris McDonough CONTENTS Front Matteri Copyright, Trademarks, and Attributions iii Attributions............................................ iv Print Production.......................................... iv Contacting The Publisher..................................... iv HTML Version and Source Code................................. iv Typographical Conventionsv Author Introduction vii Audience............................................. vii Book Content........................................... viii The Genesis of repoze.bfg .................................. viii The Genesis of Pyramid...................................... ix Thanks............................................... ix I Narrative Documentation1 1 Pyramid Introduction3 1.1 What Is The Pylons Project?................................4 1.2 Pyramid and Other Web Frameworks............................4 2 Installing Pyramid7 2.1 Before You Install......................................7 2.1.1 If You Don’t Yet Have A Python Interpreter (UNIX)...............7 2.1.2 If You Don’t Yet Have A Python Interpreter (Windows)..............9 2.2 Installing Pyramid on a UNIX System...........................9 2.2.1 Installing the virtualenv Package....................... 10 2.2.2 Creating the Virtual Python Environment..................... 10 2.2.3 Installing Pyramid Into the Virtual Python Environment............. 11 2.3 Installing Pyramid on a Windows System......................... 11 2.4 Installing Pyramid on Google App Engine........................
    [Show full text]
  • The Jumpgate Definitive Guide
    THE JUMPGATE DEFINITIVE GUIDE Compiled by: Odiche Special Thanks to: NETDEVIL© NewDawn IkeProf RazorKiss Lady Dracoe SpaceDrake Zalty’s And all the Pilots I have forgotten to thank! FACTIONS Solrain: Medium-fast ships, heavy, fast-recharging shields. A little light on firepower, lots of flexibility in ship loadout because of a large number of MODx slots. (MODx are worth reading up on in JOSSH). All Solrain ships have buckets of cargo space... the Solrain Fighter-class ship, the Intensity can carry a full set of equipment in it's hold to re-equip a downed squadmate. The Solrain Bomber and Medium Fighter are top-of-the-line, and they have a good Light Transport as well. Solrain ships are fairly forgiving for a new pilot; the glut of Flashfire MODxes they can equip can ensure their survival in situations where any other ship would be gunned down before it could escape. Solrain ships often utilize hit and run techniques in combat to gain the maximum advantage from their fast-recharging shields. Solrain ships can generally re-equip to a fairly good degree from their home stations. Solrain are typically RPed (Roleplayed) as greedy, profiteering traders. Which they are. Assassins, Mercenaries, Pirates, Traders, or Factionalists. To piss off a Solrain pilot, call him a Smurf. Quantar: Usually have the fastest ships in a given class. They also have a medium load- out of MODx slots. Quantar ships rely on maneuvrability to evade incoming fire; the Quantar fighters, the Typhoon, is an ideal wolf-pack ship. Their speed can carry them out of most trouble; only scouts or an Intensity can really catch them up, and if you are a skilled pilot, you can evade and escape from those also.
    [Show full text]
  • Comparative Study on Python Web Frameworks: Flask and Django
    Devndra Ghimire Comparative study on Python web frameworks: Flask and Django Metropolia University of Applied Sciences Bachelor of Engineering Media Engineering Bachelor’s Thesis 5 May 2020 Abstract Devndra Ghimire Author(s) Comparative study on Python web frameworks: Flask and Title Django. Number of Pages 37 pages + 0 appendices Date 5 May 2010 Degree Bachelor of Engineering Degree Programme Media Engineering Specialisation option Software Engineering Instructor(s) Kari Salo, Senior Lecturer The purpose of the thesis was to the study the various features, advantages, and the limita- tion of two web development frameworks for Python programming language. It aims to com- pare the usage of Django and Flask frameworks from a novice point of view. The theoretical part of the thesis presents the various types of programming languages and web technolo- gies. In the practical part, however, the study is divided into two parts, each part observing the respective web application framework. In order to perform the comparison, a social network and eCommerce like application was built for Flask and Django respectively. The comparison was started by developing the social network application first with Flask and finished with the e-commerce application using Django. Python programing language, SQLite database for the backend and HTML, JavaS- cript, and Ajax were used for the frontend technology. At the end of the project, both appli- cations were deployed to the cloud platform called Heroku. After the comparison, it was found that the most significant advantages of Flask were that it provides simplicity, flexibility, fine-grained control and quick and easy to learn. On the other hand, Django was easy to work with because of its extensive features and support for librar- ies.
    [Show full text]
  • Release 0.8.0 Veit Schiele
    Jupyter Tutorial Release 0.8.0 Veit Schiele Oct 27, 2020 CONTENTS 1 Introduction 3 1.1 Status...................................................3 1.2 Target group...............................................3 1.3 Structure of the Jupyter tutorial.....................................3 1.4 Why Jupyter?...............................................4 1.5 Jupyter infrastructure...........................................4 2 First steps 5 2.1 Install Jupyter Notebook.........................................5 2.2 Create notebook.............................................7 2.3 Example.................................................9 2.4 Installation................................................ 12 2.5 Follow us................................................. 14 2.6 Pull-Requests............................................... 14 3 Workspace 15 3.1 IPython.................................................. 15 3.2 Jupyter.................................................. 38 4 Read and write data 123 4.1 Requests................................................. 123 4.2 BeautifulSoup.............................................. 128 4.3 Intake................................................... 129 4.4 PostgreSQL................................................ 144 4.5 NoSQL databases............................................ 162 4.6 Glossary................................................. 170 5 Clean up and validate data 175 5.1 Deduplicate data............................................. 175 5.2 String matching............................................
    [Show full text]
  • The Pyramid Web Application Development Framework Version 1.2.7
    The Pyramid Web Application Development Framework Version 1.2.7 Chris McDonough Contents Front Matteri Copyright, Trademarks, and Attributions iii Typographical Conventionsv Author Introduction vii I Narrative Documentation1 1 Pyramid Introduction3 2 Installing Pyramid 21 3 Application Configuration 29 4 Creating Your First Pyramid Application 33 5 Creating a Pyramid Project 39 6 URL Dispatch 61 7 Views 85 8 Renderers 95 9 Templates 109 10 View Configuration 123 11 Static Assets 137 12 Request and Response Objects 147 13 Sessions 157 14 Using Events 165 15 Environment Variables and .ini File Settings 169 16 Logging 181 17 Paste 189 18 Command-Line Pyramid 193 19 Internationalization and Localization 205 20 Virtual Hosting 223 21 Unit, Integration, and Functional Testing 227 22 Resources 235 23 Much Ado About Traversal 247 24 Traversal 255 25 Security 267 26 Combining Traversal and URL Dispatch 279 27 Using Hooks 289 28 Advanced Configuration 311 29 Extending An Existing Pyramid Application 321 30 Startup 327 31 Thread Locals 331 32 Using the Zope Component Architecture in Pyramid 335 II Tutorials 341 33 ZODB + Traversal Wiki Tutorial 343 34 SQLAlchemy + URL Dispatch Wiki Tutorial 389 35 Converting a repoze.bfg Application to Pyramid 439 36 Running Pyramid on Google’s App Engine 443 37 Running a Pyramid Application under mod_wsgi 449 III API Reference 453 38 pyramid.authorization 455 39 pyramid.authentication 457 40 pyramid.chameleon_text 459 41 pyramid.chameleon_zpt 461 42 pyramid.config 463 43 pyramid.events 465 44 pyramid.exceptions 467
    [Show full text]
  • Pylons Reference Documentation Release 1.0.2
    Pylons Reference Documentation Release 1.0.2 Ben Bangert, Graham Higgins, James Gardner, Philip Jenvey July 22, 2015 Contents 1 Getting Started 1 1.1 Requirements..............................................1 1.2 Installing................................................1 1.3 Creating a Pylons Project.......................................2 1.4 Running the application........................................4 1.5 Hello World...............................................4 2 Concepts of Pylons 7 2.1 The ‘Why’ of a Pylons Project.....................................7 2.2 WSGI Applications...........................................7 2.3 WSGI Middleware...........................................8 2.4 Controller Dispatch.......................................... 10 2.5 Paster.................................................. 10 2.6 Loading the Application........................................ 11 3 Controllers 13 3.1 Standard Controllers.......................................... 15 3.2 Using the WSGI Controller to provide a WSGI service...................... 17 3.3 Using the REST Controller with a RESTful API........................... 18 3.4 Using the XML-RPC Controller for XML-RPC requests...................... 21 4 Views 25 4.1 Templates................................................ 27 4.2 Passing Variables to Templates.................................... 27 4.3 Default Template Variables...................................... 28 4.4 Configuring Template Engines.................................... 29 4.5 Custom render() functions....................................
    [Show full text]
  • Versidad Autonoma De Bucaramanga Unab
    COMPARACION DEL DESARROLLO DE UN APLICATIVO WEB ENTRE LOS LENGUAJES DE PROGRAMACION PYTHON Y JAVA ANDRES FELIPE FOGLIA ARDILA UNIVERSIDAD AUTONOMA DE BUCARAMANGA UNAB FACULTAD DE INGENIERIA DE SISTEMAS GRUPO PRISMA LINEA DE TECNOLOGIA Y SOCIEDAD BUCARAMANGA 2014 COMPARACION DEL DESARROLLO DE UN APLICATIVO WEB ENTRE LOS LENGUAJES DE PROGRAMACION PYTHON Y JAVA ANDRES FELIPE FOGLIA ARDILA ANTEPROYECTO DE PROYECTO DE GRADO DIRECTOR DEL PROYECTO FREDDY MENDEZ ORTIZ , RENE LOBO QUINTERO DOCENTES DE LA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD AUTONOMA DE BUCARAMANGA UNAB FACULTAD DE INGENIERIA DE SISTEMAS GRUPO PRISMA LINEA DE TECNOLOGIA Y SOCIEDAD BUCARAMANGA 2014 CONTENIDO 1. Planteamiento del problema y justificación 2. Objetivos 3. Antecedentes 4. Estado del Arte 5. Marco teórico 5.1 Tecnología Java 5.2 Aplicaciones web en Java 5.3 Java Server Pages Technology 5.4 Tecnología Python 5.5 Desarrollo web en Python 6. Diseño metodológico 7. Informe Final 8. Evaluación del modelo de caracterización del aplicativo web 9. Conclusiones 10. Bibliografía 11. Anexos 11.1 QSOS 11.2 Modelo de caracterización del aplicativo web 1. PLANTEAMIENTO DEL PROBLEMA Y JUSTIFICACION En los últimos años se ha venido escuchando sobre Python un lenguaje de programación cada vez más conocido entre los programadores de todo el mundo por su elegante sintaxis, fácil manera de leer además de su gran facilidad que hace que programar no sea complicado, se dice también que este lenguaje va a ser el más utilizado y con el que más se va a trabajar en un futuro no muy lejano. Todas estas razones hacen pensar en por que no empezar a utilizar este lenguaje y para poder saber si todo esto es verdad se va a trabajar con él y hacer un aplicativo de las misma forma que se hace con la tecnología Java.
    [Show full text]
  • Python Microservices Development
    Python Microservices Development Build, test, deploy, and scale microservices in Python Tarek Ziadé BIRMINGHAM - MUMBAI Python Microservices Development Copyright © 2017 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: July 2017 Production reference: 1210717 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78588-111-4 www.packtpub.com Credits Author Copy Editor Tarek Ziadé Sonia Mathur Reviewer Project Coordinator William Kahn-Greene Vaidehi Sawant Commissioning Editor Proofreader Aaron Lazar Safis Editing Acquisition Editor Indexer Chaitanya Nair Mariammal Chettiyar Content Development Editor Graphics Rohit Kumar Singh Jason Monteiro Technical Editor Production Coordinator Pavan Ramchandani Nilesh Mohite About the Author Tarek Ziadé is a Python developer, located in the countryside near Dijon, France.
    [Show full text]
  • Waitress Documentation Release 2.0.0
    waitress Documentation Release 2.0.0 Pylons Project Developers September 09, 2021 Contents 1 Extended Documentation 3 2 Change History 21 3 Next Release 23 4 2.0.0 (2021-03-07) 25 5 1.4.4 (2020-06-01) 27 6 1.4.3 (2020-02-02) 29 7 1.4.2 (2020-01-02) 31 8 1.4.1 (2019-12-24) 33 9 1.4.0 (2019-12-20) 35 10 1.3.1 (2019-08-27) 37 11 1.3.0 (2019-04-22) 39 12 1.2.1 (2019-01-25) 41 13 1.2.0 (2019-01-15) 43 14 1.2.0b3 (2019-01-07) 45 15 1.2.0b2 (2019-02-02) 47 16 1.2.0b1 (2018-12-31) 49 17 1.1.0 (2017-10-10) 51 18 1.0.2 (2017-02-04) 53 19 1.0.1 (2016-10-22) 55 20 1.0.0 (2016-08-31) 57 i 21 0.9.0 (2016-04-15) 59 22 0.8.10 (2015-09-02) 61 23 0.8.9 (2014-05-16) 63 24 0.8.8 (2013-11-30) 65 25 0.8.7 (2013-08-29) 67 26 0.8.6 (2013-08-12) 69 27 0.8.5 (2013-05-27) 71 28 0.8.4 (2013-05-24) 73 29 0.8.3 (2013-04-28) 75 30 0.8.2 (2012-11-14) 77 31 0.8.1 (2012-02-13) 79 32 0.8 (2012-01-31) 81 33 0.7 (2012-01-11) 83 34 0.6.1 (2012-01-08) 85 35 0.6 (2012-01-07) 87 36 0.5 (2012-01-03) 89 37 0.4 (2012-01-02) 91 38 0.3 (2012-01-02) 93 39 0.2 (2011-12-31) 95 40 0.1 (2011-12-30) 97 41 Known Issues 99 42 Support and Development 101 43 Why? 103 Python Module Index 105 Index 107 ii waitress Documentation, Release 2.0.0 Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance.
    [Show full text]
  • Api Deployment
    API INDUSTRY GUIDE: API DEPLOYMENT JANUARY 2016 BY KIN LANE, THE API EVANGELIST This report is intended to be a field guide to the fast- changing world of API deployment, providing you an overview of companies, tooling, common building blocks, and some of the latest news from across the landscape. AN OVERVIEW OF API DEPLOYMENT There are as many approaches to API deployment as there are types of APIs. The why and how of API deployment varies widely, and until recently, deployment was a topic of conversation left to developers and IT groups. With the latest wave of growth in the world of web APIs, I’ve seen a more active conversation around how we deploy APIs both on-premises and in the cloud. The history of API deployment has its roots in IT, as well as amongst web and mobile developers. Teams either deployed an API using a proxy or gateway (common for IT-led projects), or built their own from scratch, or—more likely—used an open source API framework for scaffolding (common in developer-led projects). Each of these approaches has its benefits, but some organizations or projects may not have the resources to cover the cost of a proper gateway, or to develop their own custom API, resulting in a wave of cloud and open source solutions which support the rapid deployment of APIs from databases, spreadsheets, and other sources. The goal of this research guide is to help businesses be more aware of the high-level concepts surrounding API deployment before making an investment in tools or services.
    [Show full text]
  • The Preparatory Survey Report for Hurmen Wind Power Project in Mongolia (PPP Infrastructure Project) (Public Version)
    Mongolia The Preparatory Survey Report for Hurmen Wind Power Project in Mongolia (PPP Infrastructure Project) (Public Version) November 2015 Japan International Cooperation Agency (JICA) SB Energy, Mizuho Bank, Mizuho Research Institute and Mitsubishi Hitachi Power Systems Engineering OS JR(先) 15-103 < CONTENTS > 1. NEED FOR THE PROJECT AND BACKGROUND ............................................................ 1 1.1 ECONOMIC AND SOCIAL BACKGROUND IN MONGOLIA ........................................................ 1 1.1.1 Summary ................................................................................................................. 1 1.1.2 Politics ..................................................................................................................... 3 1.1.3 Economic situation ................................................................................................... 6 1.1.4 Social and economic situation in the project area ................................................. 16 1.2 STATUS OF MONGOLIAN POWER SECTOR AND CHALLENGES ............................................ 18 1.2.1 Brief overview ........................................................................................................ 18 1.2.2 Organizations of Mongolian power sector ............................................................. 18 1.2.3 Regional energy system ........................................................................................ 20 1.2.4 Power generation ..................................................................................................
    [Show full text]