Pyslet Documentation Release 0.6.20160201

Total Page:16

File Type:pdf, Size:1020Kb

Pyslet Documentation Release 0.6.20160201 Pyslet Documentation Release 0.6.20160201 Steve Lay February 02, 2016 Contents 1 What’s New? 1 2 Compatibility 7 3 IMS Global Learning Consortium Specifications 13 4 The Open Data Protocol (OData) 101 5 Hypertext Transfer Protocol (RFC2616) 207 6 Other Supporting Standards 247 7 Welcome to Pyslet 357 Python Module Index 359 i ii CHAPTER 1 What’s New? As part of moving towards PEP-8 compliance a number of name changes are being made to methods and class at- tributes with each release. There is a module, pyslet.pep8, which contains a compatibility class for remapping missing class attribute names to their new forms and generating deprecation warnings, run your code with “python -Wd” to force these warnings to appear. As Pyslet makes the transition to Python 3 some of the old names will go away completely. It is still possible that some previously documented names could now fail (module level functions, function arguments, etc.) but I’ve tried to include wrappers or aliases so please raise an issue on Github if you discover a bug caused by the renaming. I’ll restore any missing old-style names to improve backwards compatibility on request. Finally, in some cases you are encouraged to derive classes from those defined by Pyslet and to override default method implementations. If you have done this using old-style names you will have to update your method names to prevent ambiguity. I have added code to automatically detect most problems and force fatal errors at runtime on construction, the error messages should explain which methods need to be renamed. 1.1 Version Numbering Pyslet version numbers use the check-in date as their last component so you can always tell if one build is newer than another. At the moment there is only one actively maintained branch of the code: version ‘0”. Changes are reported against the versions released to PyPi. ‘XX’ at the end of the version indicates changes that have not yet been released to PyPi but have been committed to the master branch (with tests passing). Not sure which version you are using? Try: from pyslet.info import version print version 1.2 Version 0.6.20160201 Summary of New Features: LTI module rewritten, now suitable for real applications! WSGI-based web-app frame- work built using Pyslet’s DAL MySQL Database connector for Pyslet’s DAL SSL, Certificates and HTTP Basic Authentication HTTP Cookies URNs #3 PEP-8 driven refactoring (ongoing) Added new method decorators to make supporting renamed and redirected methods easier. Added checks for ambigu- ous names in classes likely to have been sub-classed by third-party code. #8 Support for SSL Certificates in HTTP Clients 1 Pyslet Documentation, Release 0.6.20160201 Fixed certificate support in OData and Atom clients. See blog post for further information on how to use certificates: http://swl10.blogspot.co.uk/2014/11/basic-authentication-ssl-and-pyslets.html #9 HTTP client retry strategy Improved HTTP retries with simple Fibonacci-based back-off. Also fixed a bug where, if the first request after a server timed out an idle connection is a POST, the request would fail. #12 bug when using numeric or named parameters in DB API The basic bug is fixed and I’ve also added support for paramstyle ‘format’. #14 content element missing in media-link entries Fixed. Affected atom xml formatted entities only. #15 MySQL implementation of Pyslet’s DAL (ongoing) Changes to the core DAL to deal to better support other DB modules. These included added support for LIMIT clauses to speed up paged access to large entity sets. Implementation of a retry strategy when database commands return OperationalError (e.g., MySQL idle timeouts). An updated connection pool manager and an optional pool cleaner method to clean up idle database connections. #18 Possible bug in parsing AssociationSet names Added a compatibility mode to odata2.csdl to enable the metadata model to optionally accept hyphen or dash characters in simple identifiers using: import pyslet.odata2.csdl as edm edm.set_simple_identifier_re(edm.SIMPLE_IDENTIFIER_COMPATIBILITY_RE) #19 OData Function parameter handling Enabled function parameter passing in OData service operations. Only primitive types are supported but they are now parsed correctly from the query string and coerced to the declared parameter type. Bound functions now receive them as a dictionary of SimpleValue instances. #20 HTTP Basic Authentication Fixed an issue with the OData basic authentication support, in some cases the HTTP client was waiting for a 401 when it could have offered the credentials preemptively. See also the following blog article: http://swl10.blogspot.co.uk/2014/11/basic-authentication-ssl-and-pyslets.html #22 Support for navigation properties in OData expressions Although the code always contained support in general, the mapping to SQL did not previously support the use of table joins in SQL expressions. This release adds support for joins (but not for nested joins). #23 A Framework for WSGI-based LTI Applications Added a new module to make it easier to write WSGI-based applications. Re-factored the existing Basic LTI module to use the new oauthlib and Pyslet’s own OData-inspired data access layer. #24 ESA Sentinel mission compatibility Added the capability to override the metadata used by an OData server to deal with validation issues in some services. Clients can now also be created from an offline copy of the service root document. #26 HTTP client eats memory when downloading large unchunked files Fixed the download buffer which was failing to write out data until an entire chunk (or the entire download) was complete. #29 https connections fail on POST after remote server hangup 2 Chapter 1. What’s New? Pyslet Documentation, Release 0.6.20160201 Partial mitigation with an agressive 2s window in which to start sending a follow-up request when pipelining through https. This is a crude solution and the bug remains open for a more robust solution based around use of the Expect header in HTTP/1.1. #30 HTTP client cleanup thread Added an optional parameter to the HTTP client constructor that creates a cleanup thread to close down idle connec- tions periodically. #31 Removed reliance on Host header in wsgi app class There are a number of ways an application can be attacked using a forged Host header, wsgi now ignores the Host header and uses a new setting for the preferred scheme//host:port. #32 get_certificate_chain Implemented a function to create a complete certificate chain. Implemented using pyOpenSSL with a lot of help from this article #33 Fixed exception: ‘NoneType’ object has no attribute ‘current_thread’ on exit Caused by an overly ambitious __del__ method in SQLEntityContainer. #34 Fixed missing Edm prefix in OData sample code #35 Fixed missing import in rfc5023 (atom protocol) module #36 Fixed incorrect error messages in OData $filter queries #37 Extended comparison operators in OData to include DateTimeOffset values All thanks to @ianwj5int for spotting #38 Python 3 compatibility work I have started revising modules to support Python 3. This is not yet production ready but it is a small impact on existing modules. I have done my best to maintain compatibility, in practice code should continue to work with no changes required. The most likely failure mode is that you may find a unicode string in Python 2 where you expected a plain str. This can have a knock-on effect of promoting data to unicode, e.g., through formatting operations. In general the returned types of methods are just being clarified and unicode values are returned only where they may have been returned previously anyway. However, in the case of the URI attributes in the rfc2396 module the types have changed from str to unicode in this release. This is work in progress but the impact is likely to be minimal at this stage. #40 & #41 Composite keys and Slug headers Key hints were not working properly between the OData client and server implementations, and were not working at all when the key was composite. It is now possible to pass the formatted entity key predicate (including the brackets) as a Slug to the OData server and it will attempt to parse it and use that key where allowed by the underlying data layer. #43 Fixes for Python running on Windows The only substantive changes required were to the way we check for io failures when IOError is raised and the way we handle URI containing non-ASCII characters. Some of the unit tests were also affected due to issues with timing, including the reduced precision of time.time() on Windows-based systems. Untracked enhancements: Added a new module to support HTTP cookies. The HTTP/OData client can now be configured to accept cookies. The default behaviour is to ignore them so this won’t affect existing applications. Added a new module to support URN syntax to provide a better implementation of the IMS LTI vocabularies. Added an optional params dictionary to the OData expression parser to make it much easier to parse parameterized OData queries. 1.2. Version 0.6.20160201 3 Pyslet Documentation, Release 0.6.20160201 Added new methods for creating and executing drop table statements in the DAL. Reworked sample code for the weather data server, included example driver files for mod_wsgi Other fixes: Fixed an issue in the OData client that caused basic key lookup in filtered entity collections to use both a key predicate and a $filter query option. This was causing the filter to be ignored, now the key predicate will be added to the filter rather than the path segment. Fixed the OData DateTime parser to accept (and discard) any time zone specifier given in the literal form as it is now allowed in the ABNF and may therefore be generated by OData servers.
Recommended publications
  • Odata Services Company
    PUBLIC 2021-03-09 OData Services company. All rights reserved. All rights company. affiliate THE BEST RUN 2021 SAP SE or an SAP SE or an SAP SAP 2021 © Content 1 SAP Cloud for Customer OData API..............................................4 2 New Features.............................................................. 13 2.1 What's New in OData API v2 Reference.............................................13 2.2 Add Public Solution Model (PSM) Fields to Standard OData Services........................15 2.3 Transport Custom OData Services with Transport Management............................16 2.4 Compatibility Mode for READ Operations........................................... 16 2.5 Support for User-Friendly IDs in Standard OData Services................................16 2.6 Constant Values to Function Imports...............................................17 3 OData API Reference.........................................................18 3.1 OData API v2 Reference........................................................18 3.2 OData API v1 Reference (Deprecated)..............................................20 Account Contact Relationship.................................................21 Account EntityType........................................................22 Appointment Entity Type....................................................40 BusinessPartner Entity Type..................................................46 CodeList Entity Type....................................................... 47 Contextual CodeList Entity Type...............................................48
    [Show full text]
  • ISO/IEC JTC 1 Information Technology
    ISO/IEC JTC 1 Information technology Big data Preliminary Report 2014 Our vision Our process To be the world’s leading provider of high Our standards are developed by experts quality, globally relevant International all over the world who work on a Standards through its members and volunteer or part-time basis. We sell stakeholders. International Standards to recover the costs of organizing this process and Our mission making standards widely available. ISO develops high quality voluntary Please respect our licensing terms and International Standards that facilitate copyright to ensure this system remains international exchange of goods and independent. services, support sustainable and equitable economic growth, promote If you would like to contribute to the innovation and protect health, safety development of ISO standards, please and the environment. contact the ISO Member Body in your country: www.iso.org/iso/home/about/iso_ members.htm This document has been prepared by: Copyright protected document ISO/IEC JTC 1, Information technology All rights reserved. Unless otherwise Cover photo credit: ISO/CS, 2015 be reproduced or utilized otherwise in specified,any form noor partby anyof this means, publication electronic may or mechanical, including photocopy, or posting on the internet or intranet, without prior permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester: © ISO 2015, Published in Switzerland Case postale 56 • CH-1211 Geneva 20 Tel.ISO copyright+41 22
    [Show full text]
  • Haris Kurtagic, SL-King Jason Birch, City of Nanaimo Geoff Zeiss, Autodesk Tim Berners-Lee, in Government Data Design Issues, Proposes
    Haris Kurtagic, SL-King Jason Birch, City of Nanaimo Geoff Zeiss, Autodesk Tim Berners-Lee, in Government Data Design Issues, proposes ○ Geodata on the web in raw form. ○ Raw geodata must be searchable How do you find raw geospatial data ? Data Catalogs Wouldn’t it be nice if… And see.. Searchable Raw Geospatial Data www.georest.org Open Data Protocol “The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today.” www.odata.org ODATA HTTP Atom AtomPUB JSON HTTP://.../vancouver/libraries <feed xmlns=http://www.w3.org/2005/Atom … > <title type="text">libraries</title> <id>http://…/vancouver/libraries(10)</id> <title type="text"></title> <entry> <content type="application/xml"> <m:properties> <d:library_name>Britannia</d:library_name> <d:latitude m:type="Edm.Double">49.2756486</d:latitude> <d:longitude m:type="Edm.Double">-123.0737717</d:longitude> <d:address>1661 Napier St</d:address> </m:properties> …..</entry> <entry>…</entry></feed> HTTP://.../vancouver/libraries ?$format=JSON {"d":[{"library_name":"Britannia","latitude":" 49.2756486","longitude":"- 123.0737717","address":"1661 Napier St"} , {..}] } HTTP Header accept: application/json OData Example Live OData Service from Vancouver OData Producers SharePoint 2010, SQL Azure, IBM WebSphere, … GeoREST OData Live Services Netflix, Open Goverment Data Initiative (OGDI), Stack Overflow, Vancouver, Edmonton, … City of Nanaimo OData Consumers Browsers, Odata Explorer, Excel 2010,…
    [Show full text]
  • SAP Analytics Cloud, Analytics Designer Developer Handbook
    SAP Analytics Cloud, analytics designer Developer Handbook Document Version: 5.1 – 2020-04-06 Table of Contents 1 Table of Contents Table of Contents ......................................................................................................................... 1 Figures .......................................................................................................................................... 7 1 About Analytics Designer .............................................................................................10 1.1 What Is an Analytic Application? .....................................................................................10 1.2 What Is Analytics Designer? ............................................................................................10 1.3 What Can You Do with Analytic Applications That You Can’t Do with Stories? ..............10 1.4 How Are Stories and Analytic Applications Related to Each Other? ...............................10 1.5 Why Do We Need Both Stories and Analytic Applications? ............................................11 1.6 What Is the Typical Workflow in Creating an Analytic Application? .................................11 1.7 What Are Typical Analytic Applications? .........................................................................12 1.8 How Does Scripting Work in Analytic Applications? ........................................................12 1.9 What’s the Scripting Language for Analytic Applications? ..............................................13 2 Getting
    [Show full text]
  • Catalogue Open Data Protocol (Odata API) User Guide
    Catalogue Open Data Protocol (OData API) User Guide Content 1. Introduction .......................................................................................................................................... 3 1.1. Purpose......................................................................................................................... 3 1.2. Change register ............................................................................................................. 3 1.3. Structure of the document ............................................................................................. 3 1.4. Acronyms ...................................................................................................................... 4 1.5. Reference Documents ................................................................................................... 4 2. Open Data Protocol overview ............................................................................................................. 6 2.1. Entity Data Model concept ............................................................................................ 6 Entity Type ..................................................................................................................... 7 Entity Set ....................................................................................................................... 7 3. ONDA OData Entity Data Model ......................................................................................................... 8 3.1. ONDA Entity
    [Show full text]
  • Deliverable D7.5: Standards and Methodologies Big Data Guidance
    Project acronym: BYTE Project title: Big data roadmap and cross-disciplinarY community for addressing socieTal Externalities Grant number: 619551 Programme: Seventh Framework Programme for ICT Objective: ICT-2013.4.2 Scalable data analytics Contract type: Co-ordination and Support Action Start date of project: 01 March 2014 Duration: 36 months Website: www.byte-project.eu Deliverable D7.5: Standards and methodologies big data guidance Author(s): Jarl Magnusson, DNV GL AS Erik Stensrud, DNV GL AS Tore Hartvigsen, DNV GL AS Lorenzo Bigagli, National Research Council of Italy Dissemination level: Public Deliverable type: Final Version: 1.1 Submission date: 26 July 2017 Table of Contents Preface ......................................................................................................................................... 3 Task 7.5 Description ............................................................................................................... 3 Executive summary ..................................................................................................................... 4 1 Introduction ......................................................................................................................... 5 2 Big Data Standards Organizations ...................................................................................... 6 3 Big Data Standards ............................................................................................................. 8 4 Big Data Quality Standards .............................................................................................
    [Show full text]
  • Blackbaud CRM Query and Export Guide
    Query and Export Guide 03/23/2016 Blackbaud CRM 4.0 Query and Export US ©2016 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical, including photocopying, recording, storage in an information retrieval system, or otherwise, without the prior written permission of Blackbaud, Inc. The information in this manual has been carefully checked and is believed to be accurate. Blackbaud, Inc., assumes no responsibility for any inaccuracies, errors, or omissions in this manual. In no event will Blackbaud, Inc., be liable for direct, indirect, special, incidental, or consequential damages resulting from any defect or omission in this manual, even if advised of the possibility of damages. In the interest of continuing product development, Blackbaud, Inc., reserves the right to make improvements in this manual and the products it describes at any time, without notice or obligation. All Blackbaud product names appearing herein are trademarks or registered trademarks of Blackbaud, Inc. All other products and company names mentioned herein are trademarks of their respective holder. QueryExport-2016 Contents Getting Started with Query 4 Query: A Guided Tour 4 Common Query Fields 20 Common Query Filters 22 Query 25 Information Library 27 Ad-Hoc Queries 27 Smart Queries 58 Selections 71 Copy an Existing Query 74 Export Queries 74 Browse Query Results 75 View Query Results 75 Organize Queries 75 Open Data Protocol (OData) 79 Export 82 Exports 82 Export Definitions 86 Export Process Status Page 100 Import Selections 106 Import Selections 106 Import Selection Process Status Page 110 chapter 1 Getting Started with Query Query: A Guided Tour 4 Common Query Fields 20 Constituent Query Fields 20 Revenue Query Fields 21 Registrant Query Fields 22 Common Query Filters 22 Constituent Query Filters 22 Revenue Query Filters 23 Registrant Query Filters 23 Query is a powerful tool you can use to help filter and group records.
    [Show full text]
  • Denodo Odata 2.0 Service User Manual
    Denodo OData 2.0 Service User Manual Revision 20200508 NOTE This document is confidential and proprietary of Denodo Technologies. No part of this document may be reproduced in any form by any means without prior written authorization of Denodo Technologies. Copyright © 2021 Denodo Technologies Proprietary and Confidential Denodo OData 2.0 Service User Manual 20200508 2 of 34 CONTENTS 1 OVERVIEW........................................................................5 2 INSTALLATION..................................................................6 2.1 DEPLOYING INTO THE DENODO EMBEDDED WEB CONTAINER............8 2.2 CONFIGURING JNDI RESOURCES IN APACHE TOMCAT......................10 3 VIRTUAL DATAPORT PRIVILEGE REQUIREMENTS.................12 4 FEATURES.......................................................................13 5 SERVING METADATA........................................................14 6 QUERYING DATA: THE BASICS..........................................16 6.1 QUERYING COLLECTIONS..............................................................16 6.2 OBTAINING ITEMS BY PRIMARY KEY..............................................16 6.3 ACCESSING INDIVIDUAL PROPERTIES............................................16 6.4 ACCESSING INDIVIDUAL PROPERTY VALUES...................................17 6.5 ACCESSING COMPLEX PROPERTIES...............................................17 6.6 COUNTING ELEMENTS IN A COLLECTION: $COUNT..........................18 6.7 ESTABLISHING RESPONSE FORMAT...............................................18 7 NAVIGATING
    [Show full text]
  • Information Technology — Open Data Protocol (Odata) V4.0
    BS ISO/IEC 20802-2:2016 BSI Standards Publication Information technology — Open data protocol (OData) v4.0 Part 2: OData JSON Format WB11885_BSI_StandardCovs_2013_AW.indd 1 15/05/2013 15:06 BS ISO/IEC 20802-2:2016 BRITISH STANDARD National foreword This British Standard is the UK implementation of ISO/IEC 20802-2:2016. The UK participation in its preparation was entrusted to Technical Committee ICT/-/1, Information systems co-ordination. A list of organizations represented on this committee can be obtained on request to its secretary. This publication does not purport to include all the necessary provisions of a contract. Users are responsible for its correct application. © The British Standards Institution 2017. Published by BSI Standards Limited 2017 ISBN 978 0 580 90961 0 ICS 35.100.70 Compliance with a British Standard cannot confer immunity from legal obligations. This British Standard was published under the authority of the Standards Policy and Strategy Committee on 31 March 2017. Amendments/corrigenda issued since publication Date Text affected BS ISO/IEC 20802-2:2016 INTERNATIONAL ISO/IEC STANDARD 20802-2 First edition 2016-12-15 Information technology — Open data protocol (OData) v4.0 Part 2: OData JSON Format Technologies de l'information — Protocole de données ouvertes (OData) v4.0 — Partie 2: Format OData JSON Reference number ISO/IEC 20802-2:2016(E) © ISO/IEC 2016 BS ISO/IEC 20802-2:2016 ISO/IEC 20802-2:2016(E) COPYRIGHT PROTECTED DOCUMENT © ISO/IEC 2016 All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.
    [Show full text]
  • Supplement for Adapters DP Bridge, Hive, HTTP, JDBC, JMS, Mongodb, Odata, Salesforce.Com, Shapefile, and Successfactors Company
    PUBLIC SAP Data Services Document Version: 4.2 Support Package 12 (14.2.12.0) – 2020-02-06 Supplement for Adapters DP Bridge, Hive, HTTP, JDBC, JMS, MongoDB, OData, Salesforce.com, Shapefile, and SuccessFactors company. All rights reserved. All rights company. affiliate THE BEST RUN 2020 SAP SE or an SAP SE or an SAP SAP 2020 © Content 1 Naming Conventions......................................................... 5 2 Data Services adapters....................................................... 9 2.1 Adapter required knowledge and expertise...........................................11 3 Adapter installation and configuration...........................................12 3.1 Adding an adapter instance.....................................................13 3.2 Adapter Configuration options ...................................................14 JDBC adapter-specific configuration settings......................................19 DP Bridge runtime configuration options.........................................23 HTTP adapter specific configuration settings......................................24 JMS adapter-specific configuration settings.......................................25 3.3 Starting and stopping the adapter instance..........................................27 3.4 Monitoring the adapter instances and operations..................................... 28 3.5 Viewing adapter instance statistics................................................29 4 Creating an adapter datastore................................................. 31 5 Adapter datastore
    [Show full text]
  • Introducing Odata Data Access for the Web, the Cloud, Mobile Devices, and More
    David Chappell May 2011 INTRODUCING ODATA DATA ACCESS FOR THE WEB, THE CLOUD, MOBILE DEVICES, AND MORE Sponsored by Microsoft Corporation Copyright © 2011 Chappell & Associates Contents Describing OData ................................................................................................................................................ 3 The Problem: Accessing Diverse Data in a Common Way ......................................................................................3 The Solution: What OData Provides .......................................................................................................................3 How OData Works: Technology Basics ...................................................................................................................5 Using OData: Example Scenarios ......................................................................................................................... 6 Accessing Application Data from Mobile Phones and Web Browsers ....................................................................6 Exposing Data from a Cloud Application ................................................................................................................8 Using Diverse Data Sources with Different BI Tools ...............................................................................................9 Examining OData: A Closer Look at the Technology and Its Implementation .................................................... 10 The OData Data Model .........................................................................................................................................10
    [Show full text]
  • SAP Crystal Reports Restful Web Services Developer Guide ( PDF)
    PUBLIC SAP BusinessObjects Business Intelligence platform Document Version: 4.2 Support Package 03 – 2017-05-12 SAP Crystal Reports RESTful Web Services Developer Guide Content 1 Document History..............................................................4 2 Start here....................................................................5 2.1 Introduction to SAP Crystal Reports RESTful web services..................................5 3 RESTful web services fundamentals................................................6 3.1 Making RESTful web service requests.................................................6 Creating the request header.................................................... 10 Creating the request body......................................................12 Interpreting the response header.................................................12 Interpreting a response body in XML format......................................... 14 Interpreting a response body in the JSON format......................................19 Comparison of XML and JSON attributes...........................................24 Working with multilingual data...................................................27 3.2 Retrieving the base URL for RESTful web service requests................................. 28 Retrieving the base URL through the CMC.......................................... 28 Retrieving the base URL programmatically..........................................28 3.3 Authentication................................................................ 29 To get
    [Show full text]