CIS 192: Lecture 9 Working with APIs

Size: px
Start display at page:

Download "CIS 192: Lecture 9 Working with APIs"

Transcription

1 CIS 192: Lecture 9 Working with APIs Lili Dworkin University of Pennsylvania

2 Last Week s Quiz Consider the code l = (i for i in range(10)) What happens if I type l[0]? >>> l = (i for i in range(10)) >>> type(l) <type 'generator'> >>> l[0] TypeError: 'generator' object has no attribute ' getitem '

3 Last Week s Quiz Consider the code l = (i for i in range(10)) What about l.next()? >>> l.next() 0

4 Last Week s Quiz Consider the code l = (i for i in range(10)) What about sum(l)? >>> sum(l) 45

5 Last Week s Quiz Consider the code l = (i for i in range(10)) What about len(l)? >>> len(l) TypeError: object of type 'generator' has no len() How can we get the length?

6 Last Week s Quiz >>> l = (i for i in range(10)) >>> sum(1 for _ in l) 10

7 Last Week s Quiz Write code to return a list containing all pairs of items from the list [ a, b, c, d ]. >>> l = ['a', 'b', 'c', 'd'] >>> import itertools >>> i = itertools.combinations(l, 2) >>> i <itertools.combinations object at 0x107dacf18> >>> [j for j in i] [('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')]

8 Last Week s Quiz Write a regular expression to match a date of the form MM-DD-YYYY or MM-DD-YY. >>> r''\d{2}-\d{2}-(\d{2} \d{4})'' NOT >>> r''\d{2}-\d{2}-\d{2 4}''

9 Last Week s Quiz If I call a python program with python test.py --name Lili -n 10 and parse the command-line arguments with options, args = optparser.parse args(), what will the list args contain?

10 What is HTTP? The protocol that allows for sending resources back and forth on the web. A protocol is a set of rules that determines which messages can be exchanged, and which messages are appropriate replies. Two roles: server and client This week: we are the client. Next week: we are the server! (This slide and those following courtesy of this nettuts article.)

11 HTTP Messages Made of a header and body. Body = data that you want to transmit over the network Header = instructions for how to use the data

12 URLs Send a request for a resource to a host URLs define resources (e.g. web page) Resource: /clients/jim Host: example.com Resources are nouns

13 Methods Methods are verbs/actions Tells the server what to do with the resource GET = retrieve data POST = create/update data DELETE = delete data

14 Requests/Responses Client and server exchange information about resources identified by URLs Request and response contain a representation of the resource The body can contain data in many formats: plain text, HTML, JSON...

15 JSON What s happening here? >>> req = requests.get(" >>> print req.text { "origin": " ", "url": " "args": {}, "headers": {... } } >>> req.text['origin'] TypeError Looks like a dictionary is being returned, but it s actually unicode.

16 JSON But the string has a special format, known as JSON, which is used for passing data back and forth over the internet. >>> d = req.json() >>> type(d) <type 'dict'> >>> d['origin'] u' ' >>> d['url'] u'

17 JSON JSON is built on two structures: Object: A collection of name/value pairs (i.e. dict) Array: Ordered list of values (i.e. list) A value in the above definitions can be a string (in double quotes), a number, true, false, null, or another object or array.

18 JSON Python comes with a JSON encoder and decoder: >>> import json >>> l = ['hi', {'key1': 0, 'key2': ['a', 'b']}] >>> x = json.dumps(l) >>> x '["hi", {"key2": ["a", "b"], "key1": 0}]' >>> type(x) <type 'str'>

19 JSON >>> y = json.loads(x) >>> y [u'hi', {u'key2': [u'a', u'b'], u'key1': 0}] >>> type(y) <type 'list'>

20 Content Type The response should specify the content type of the body Done in the header, in the Content-Type field: >>> req = requests.get(' >>> req.headers['content-type'] 'text/html' >>> req = requests.get(" >>> req.headers['content-type'] 'application/json'

21 Headers We can send headers in our requests, too. Remember: headers provide instructions about the transaction Defined as a dictionary: >>> headers = {} >>> req = requests.get(url, headers=headers)

22 Sending Data We can send data along with our requests For GET requests, this can be done directly in the URL, or in the params dictionary: >>> req = requests.get('.../test?name1=value1& name2=value2') OR >>> params = {'name1':'value1', 'name2':'value2'} >>> req = requests.get('.../test', params=params)

23 POST Requests What if we want to send a lot of data, and/or it s sensitive and shouldn t be in the URL? requests.post() issues a POST request POST requests submit data to be processed The data is sent in the body of the request, not in the url >>> data = {'name1': 'value1', 'name2': 'value2'} >>> req = requests.post(url, data=data) Let s practice!

24 API In the context of web development, an API (application programming interface) is a set of HTTP request messages, along with the definition of the structure of response messages, which is usually XML or JSON. APIs allow the sharing of content and data between web communities and applications.

25 Authentication Multiple ways: Single key/token, sent in a GET request Application-only authentication / 2-legged OAuth sent on behalf of an application 3-legged OAuth sent on behalf of a specific user

26 Single Key/Token Sign up to get a key and/or token Send in the parameters of a GET request to get resources Example: Google Places

27 Application-only Authentication 1. Sign up to get a consumer key and secret 2. Send your key and secret in the headers of a POST request to get an access token 3. Server grants access token in body of response 4. Send in your access token in the parameters of a GET request to get resources Example: Twitter

28 Twitter

29 Properties Remember from way back when... class Foo(object): def init (self, i): self._eep = def data(self): print "eep is being accessed." return self._eep

30 Properties >>> f = Foo(5) >>> f.data eep is being accessed. 5 >>> f._eep # don't do this 5

31 Properties Use case: lazy-load data upon def data(self): if not self._data: # execute code to get data self._data = stuff return self._data

32 Function Types >>> def hi():... return 'hi'... >>> type(hi)?

33 Function Types >>> def hi():... return 'hi'... >>> type(hi) <type 'function'> >>> isinstance(hi, function) NameError: name 'function' is not defined

34 Function Types Builtin types that don t have constructors (e.g. functions, generators, methods) are in the types module. You can use types.functiontype in an isinstance call. >>> import types >>> isinstance(hi, types.functiontype) True >>> isinstance((i for i in range(5)), types.generatortype) True

35 Function Types >>> class A(object):... def f(self, x):... return x... >>> A.f <unbound method A.f> >>> a = A() >>> a.f <bound method A.f of < main.a object at 0x10a87ac90>>

36 Function Types Bound method: a function with the first argument pre-filled as the instance (self) Unbound method: a function with the restriction that the first argument (self) must be an instance of the object >>> a.f(1) 1 >>> A.f() TypeError: unbound method f() must be called with A instance as first argument (got nothing instead) >>> A.f(a, 1) 1

37 Function Types >>> type(a.f) <type 'instancemethod'> >>> >>> type(a.f) <type 'instancemethod'> >>> isinstance(a.f, types.methodtype) True >>> isinstance(a.f, types.methodtype) True In Python 3, A.f will have type function instead!

38 Quiz 1. req = requests.get(" 1.1 type(req.text) 1.2 type(req.json) 1.3 type(req.json()) type(json.dumps(json.loads('{"key": "val"}')) 2.2 type(json.loads(json.dumps(0))) 3. Return the content type of a response object called req. 4. What is the main difference between GET and POST requests? 5. l = [lambda x: x + i for i in range(5)] 5.1 type(l) 5.2 l[0](0)

CIS 192: Lecture 8 HTML Parsing

CIS 192: Lecture 8 HTML Parsing CIS 192: Lecture 8 HTML Parsing Lili Dworkin University of Pennsylvania HTTP Requests Use the requests library to make HTTP requests: >>> import requests >>> url = "http://www.cis.upenn.edu/~cis192/ spring2014/"

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming HTTP & HTML & JSON Harry Smith University of Pennsylvania November 1, 2017 Harry Smith (University of Pennsylvania) CIS 192 Lecture 10 November 1, 2017 1 / 22 Outline 1 HTTP Requests

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 12 Tutorial 3 Part 1 Twitter API In this tutorial, we will learn

More information

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Eric Kutschera University of Pennsylvania March 6, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 March 6, 2015 1 / 22 Outline 1 Web Servers

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming HTTP Requests and HTML Parsing Raymond Yin University of Pennsylvania October 12, 2016 Raymond Yin (University of Pennsylvania) CIS 192 October 12, 2016 1 / 22 Outline 1 HTTP

More information

Composer Help. Web Request Common Block

Composer Help. Web Request Common Block Composer Help Web Request Common Block 7/4/2018 Web Request Common Block Contents 1 Web Request Common Block 1.1 Name Property 1.2 Block Notes Property 1.3 Exceptions Property 1.4 Request Method Property

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 08 Tutorial 2, Part 2, Facebook API (Refer Slide Time: 00:12)

More information

TAIL RECURSION, SCOPE, AND PROJECT 4 11

TAIL RECURSION, SCOPE, AND PROJECT 4 11 TAIL RECURSION, SCOPE, AND PROJECT 4 11 COMPUTER SCIENCE 61A Noveber 12, 2012 1 Tail Recursion Today we will look at Tail Recursion and Tail Call Optimizations in Scheme, and how they relate to iteration

More information

REST API OVERVIEW. Design and of Web APIs using the REST paradigm.

REST API OVERVIEW. Design and of Web APIs using the REST paradigm. REST API OVERVIEW Design and of Web APIs using the REST paradigm. Goal How to use REST architectures to integrate (call and/or offer) remote services How to design a consistent set of REST APIs How to

More information

GitHub-Flask Documentation

GitHub-Flask Documentation GitHub-Flask Documentation Release 3.2.0 Cenk Altı Jul 01, 2018 Contents 1 Installation 3 2 Configuration 5 3 Authenticating / Authorizing Users 7 4 Invoking Remote Methods 9 5 Full Example 11 6 API Reference

More information

flask-jwt-simple Documentation

flask-jwt-simple Documentation flask-jwt-simple Documentation Release 0.0.3 vimalloc rlam3 Nov 17, 2018 Contents 1 Installation 3 2 Basic Usage 5 3 Changing JWT Claims 7 4 Changing Default Behaviors 9 5 Configuration Options 11 6 API

More information

15-388/688 - Practical Data Science: Data collection and scraping. J. Zico Kolter Carnegie Mellon University Spring 2017

15-388/688 - Practical Data Science: Data collection and scraping. J. Zico Kolter Carnegie Mellon University Spring 2017 15-388/688 - Practical Data Science: Data collection and scraping J. Zico Kolter Carnegie Mellon University Spring 2017 1 Outline The data collection process Common data formats and handling Regular expressions

More information

COMP519 Web Programming Lecture 20: Python (Part 4) Handouts

COMP519 Web Programming Lecture 20: Python (Part 4) Handouts COMP519 Web Programming Lecture 20: Python (Part 4) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool Contents

More information

Connexion Documentation

Connexion Documentation Connexion Documentation Release 0.5 Zalando SE Nov 16, 2017 Contents 1 Quickstart 3 1.1 Prerequisites............................................... 3 1.2 Installing It................................................

More information

Issue No. Date Description of Changes Initial issue Added basic authentication

Issue No. Date Description of Changes Initial issue Added basic authentication Department: Subject: IT API Documentation Revision History: Issue No. Date Description of Changes 1.0 04.18.17 Initial issue 1.1 05.11.17 Added basic authentication Related Documents: Page 1 of 28 Classification

More information

Lecture #15: Generic Functions and Expressivity. Last modified: Wed Mar 1 15:51: CS61A: Lecture #16 1

Lecture #15: Generic Functions and Expressivity. Last modified: Wed Mar 1 15:51: CS61A: Lecture #16 1 Lecture #15: Generic Functions and Expressivity Last modified: Wed Mar 1 15:51:48 2017 CS61A: Lecture #16 1 Consider the function find: Generic Programming def find(l, x, k): """Return the index in L of

More information

AEM Mobile: Setting up Google as an Identity Provider

AEM Mobile: Setting up Google as an Identity Provider AEM Mobile: Setting up Google as an Identity Provider Requirement: Prerequisite knowledge Understanding of AEM Mobile Required Products AEM Mobile Google Account Generating the client ID and secret To

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming HTTP Requests and HTML Parsing Robert Rand University of Pennsylvania March 30, 2016 Robert Rand (University of Pennsylvania) CIS 192 March 30, 2016 1 / 19 Outline 1 HTTP Requests

More information

CS 11 python track: lecture 3. n Today: Useful coding idioms

CS 11 python track: lecture 3. n Today: Useful coding idioms CS 11 python track: lecture 3 Today: Useful coding idioms Useful coding idioms "Idiom" Standard ways of accomplishing a common task Using standard idioms won't make your code more correct, but more concise

More information

django-oauth2-provider Documentation

django-oauth2-provider Documentation django-oauth2-provider Documentation Release 0.2.7-dev Alen Mujezinovic Aug 16, 2017 Contents 1 Getting started 3 1.1 Getting started.............................................. 3 2 API 5 2.1 provider.................................................

More information

CIS 192: Lecture 11 Databases (SQLite3)

CIS 192: Lecture 11 Databases (SQLite3) CIS 192: Lecture 11 Databases (SQLite3) Lili Dworkin University of Pennsylvania In-Class Quiz app = Flask( main ) @app.route('/') def home():... app.run() 1. type(app.run) 2. type(app.route( / )) Hint:

More information

tapi Documentation Release 0.1 Jimmy John

tapi Documentation Release 0.1 Jimmy John tapi Documentation Release 0.1 Jimmy John July 02, 2014 Contents 1 Why use TAPI? 3 2 Features 5 3 Dependencies 7 4 Installation 9 5 Quick Start 11 6 User Guide 13 6.1 Fundamentals...............................................

More information

Sage Reference Manual: Python technicalities

Sage Reference Manual: Python technicalities Sage Reference Manual: Python technicalities Release 8.1 The Sage Development Team Dec 09, 2017 CONTENTS 1 Various functions to debug Python internals 3 2 Variants of getattr() 5 3 Metaclasses for Cython

More information

Working with Lists 4

Working with Lists 4 CS 61A Lecture 10 Announcements Lists ['Demo'] Working with Lists 4 Working with Lists >>> digits = [1, 8, 2, 8] 4 Working with Lists >>> digits = [1, 8, 2, 8] >>> digits = [2//2, 2+2+2+2, 2, 2*2*2] 4

More information

Making a POST Request Using Informatica Cloud REST API Connector

Making a POST Request Using Informatica Cloud REST API Connector Making a POST Request Using Informatica Cloud REST API Connector Copyright Informatica LLC 2016, 2017. Informatica, the Informatica logo, and Informatica Cloud are trademarks or registered trademarks of

More information

Lecture 4. Defining Functions

Lecture 4. Defining Functions Lecture 4 Defining Functions Academic Integrity Quiz Remember: quiz about the course AI policy Have posted grades for completed quizes Right now, missing ~130 enrolled students If did not receive at least

More information

Python Programming: Lecture 3 Functions

Python Programming: Lecture 3 Functions Python Programming: Lecture 3 Functions Lili Dworkin University of Pennsylvania Last Week s Quiz In one line, write code that will turn the list [9, 9, 9] into the string 90909. Last Week s Quiz In one

More information

Large-Scale Networks

Large-Scale Networks Large-Scale Networks 3b Python for large-scale networks Dr Vincent Gramoli Senior lecturer School of Information Technologies The University of Sydney Page 1 Introduction Why Python? What to do with Python?

More information

Python Programming: Lecture 2 Data Types

Python Programming: Lecture 2 Data Types Python Programming: Lecture 2 Data Types Lili Dworkin University of Pennsylvania Last Week s Quiz 1..pyc files contain byte code 2. The type of math.sqrt(9)/3 is float 3. The type of isinstance(5.5, float)

More information

CS61A Notes Week 13: Interpreters

CS61A Notes Week 13: Interpreters CS61A Notes Week 13: Interpreters Read-Eval Loop Unlike Python, the result of evaluating an expression is not automatically printed. Instead, Logo complains if the value of any top-level expression is

More information

Using OAuth 2.0 to Access ionbiz APIs

Using OAuth 2.0 to Access ionbiz APIs Using OAuth 2.0 to Access ionbiz APIs ionbiz APIs use the OAuth 2.0 protocol for authentication and authorization. ionbiz supports common OAuth 2.0 scenarios such as those for web server, installed, and

More information

flask-jwt Documentation

flask-jwt Documentation flask-jwt Documentation Release 0.3.2 Dan Jacob Nov 16, 2017 Contents 1 Links 3 2 Installation 5 3 Quickstart 7 4 Configuration Options 9 5 API 11 6 Changelog 13 6.1 Flask-JWT Changelog..........................................

More information

Announcements for this Lecture

Announcements for this Lecture Lecture 6 Objects Announcements for this Lecture Last Call Quiz: About the Course Take it by tomorrow Also remember survey Assignment 1 Assignment 1 is live Posted on web page Due Thur, Sep. 18 th Due

More information

CSC148 Recipe for Designing Classes

CSC148 Recipe for Designing Classes Part 1: Define the API for the class CSC148 Recipe for Designing Classes Download the sample code here: https://www.teach.cs.toronto.edu/~csc148h/fall/lectures/object-oriented-programming/common/course.

More information

Integrating with ClearPass HTTP APIs

Integrating with ClearPass HTTP APIs Integrating with ClearPass HTTP APIs HTTP based APIs The world of APIs is full concepts that are not immediately obvious to those of us without software development backgrounds and terms like REST, RPC,

More information

Cookies, sessions and authentication

Cookies, sessions and authentication Cookies, sessions and authentication TI1506: Web and Database Technology Claudia Hauff! Lecture 7 [Web], 2014/15 1 Course overview [Web] 1. http: the language of Web communication 2. Web (app) design &

More information

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web Security SWE 432, Fall 2017 Design and Implementation of Software for the Web Today Security What is it? Most important types of attacks Authorization oauth 2 Security Why is it important? Users data is

More information

CNRS ANF PYTHON Objects everywhere

CNRS ANF PYTHON Objects everywhere CNRS ANF PYTHON Objects everywhere Marc Poinot Numerical Simulation Dept. Outline Python Object oriented features Basic OO concepts syntax More on Python classes multiple inheritance reuse introspection

More information

Chapter 1 - Consuming REST Web Services in Angular

Chapter 1 - Consuming REST Web Services in Angular Chapter 1 - Consuming REST Web Services in Angular Objectives Key objectives of this chapter REST Overview Common Angular tasks for REST communication Using Angular to send various HTTP requests 1.1 REST

More information

REST. Web-based APIs

REST. Web-based APIs REST Web-based APIs REST Representational State Transfer Style of web software architecture that simplifies application Not a standard, but a design pattern REST Take all resources for web application

More information

SCHEME AND CALCULATOR 5b

SCHEME AND CALCULATOR 5b SCHEME AND CALCULATOR 5b COMPUTER SCIENCE 6A July 25, 203 In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

Canonical Identity Provider Documentation

Canonical Identity Provider Documentation Canonical Identity Provider Documentation Release Canonical Ltd. December 14, 2018 Contents 1 API 3 1.1 General considerations.......................................... 3 1.2 Rate limiting...............................................

More information

Lecture 4. Defining Functions

Lecture 4. Defining Functions Lecture 4 Defining Functions Academic Integrity Quiz Remember: quiz about the course AI policy Have posted grades for completed quizes Right now, missing ~90 enrolled students If did not receive perfect,

More information

Performance Platform Documentation

Performance Platform Documentation Performance Platform Documentation Release 1.0 Performance Platform July 20, 2017 Contents 1 Adding data 3 2 Emptying a data set 5 3 Client implementations 7 4 Glossary 9 5 Get a Performance Platform

More information

.. Documentation. Release 0.4 beta. Author

.. Documentation. Release 0.4 beta. Author .. Documentation Release 0.4 beta Author May 06, 2015 Contents 1 Browser 3 1.1 Basic usages............................................... 3 1.2 Form manipulation............................................

More information

API Documentation. Release Version 1 Beta

API Documentation. Release Version 1 Beta API Documentation Release Version 1 Beta Document Version Control Version Date Updated Comment 0.1 April 1, 2016 Initialize document 1 Release version PROMOTEXTER V3 BETA - API Documentation 1 Table of

More information

Getting Some REST with webmachine. Kevin A. Smith

Getting Some REST with webmachine. Kevin A. Smith Getting Some REST with webmachine Kevin A. Smith What is webmachine? Framework Framework Toolkit A toolkit for building RESTful HTTP resources What is REST? Style not a standard Resources == URLs http://localhost:8000/hello_world

More information

Lecture 4. Defining Functions

Lecture 4. Defining Functions Lecture 4 Defining Functions Academic Integrity Quiz Reading quiz about the course AI policy Go to http://www.cs.cornell.edu/courses/cs11110/ Click Academic Integrity in side bar Read and take quiz in

More information

Web client programming

Web client programming Web client programming JavaScript/AJAX Web requests with JavaScript/AJAX Needed for reverse-engineering homework site Web request via jquery JavaScript library jquery.ajax({ 'type': 'GET', 'url': 'http://vulnerable/ajax.php',

More information

Lecture 21. Programming with Subclasses

Lecture 21. Programming with Subclasses Lecture 21 Programming with Subclasses Announcements for Today Reading Today: See reading online Tuesday: Chapter 7 Prelim, Nov 9 th 7:30-9:00 Material up to Today Review has been posted Recursion + Loops

More information

Lecture 21. Programming with Subclasses

Lecture 21. Programming with Subclasses Lecture 21 Programming with Subclasses Announcements for This Lecture Assignments Prelim 2 A4 is now graded Mean: 90.4 Median: 93 Std Dev: 10.6 Mean: 9 hrs Median: 8 hrs Std Dev: 4.1 hrs A5 is also graded

More information

APIs Assist Troubleshooting in Manufacturing

APIs Assist Troubleshooting in Manufacturing APIs Assist Troubleshooting in Manufacturing Gabriel Zapodeanu Technology Solutions Architect, Cisco Systems gzapodea@cisco.com, @zapodeanu, github.com/gzapodea Agenda Wireless Networks in Manufacturing

More information

Collecting Tweets. User Timelines, User Update

Collecting Tweets. User Timelines, User Update Collecting Tweets User Timelines, User Update Outline HCDE user module UserTimeline.py Instantiation Parameters HCDE user module Update.py Using UserTimeline.py command line Part of the HCDE User Module

More information

Lecture #16: Generic Functions and Expressivity. Last modified: Fri Feb 26 19:16: CS61A: Lecture #16 1

Lecture #16: Generic Functions and Expressivity. Last modified: Fri Feb 26 19:16: CS61A: Lecture #16 1 Lecture #16: Generic Functions and Expressivity Last modified: Fri Feb 26 19:16:38 2016 CS61A: Lecture #16 1 Consider the function find: Generic Programming def find(l, x, k): """Return the index in L

More information

Twitter and While Loops. April

Twitter and While Loops. April Twitter and While Loops April 18 2016 Today Using GeCoords.py to extract geo locations to write a KML file Getting Twitter posts using tweepy While loops More powerful functions to get Twitter posts Using

More information

Building on the Globus Python SDK

Building on the Globus Python SDK Building on the Globus Python SDK Stephen Rosen April 11, 2017 SDK Overview The Globus SDK is a client-side library which provides language bindings for entities and methods available via web APIs. SDK

More information

Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8

Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8 Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8 Chapter 5: Control Flow This chapter describes related to the control flow of a program. Topics include conditionals, loops,

More information

json-rpc Documentation

json-rpc Documentation json-rpc Documentation Release 1.11.0 Kirill Pavlov May 02, 2018 Contents 1 Features 3 2 Contents 5 2.1 Quickstart................................................ 5 2.2 Method dispatcher............................................

More information

Stepic Plugins Documentation

Stepic Plugins Documentation Stepic Plugins Documentation Release 0 Stepic Team May 06, 2015 Contents 1 Introduction 3 1.1 Quiz Architecture............................................ 3 1.2 Backend Overview............................................

More information

TACHO ONLINE API. TUNGVOGNSSPECIALISTEN APS Københavnsvej 265, DK-4000 Roskilde

TACHO ONLINE API. TUNGVOGNSSPECIALISTEN APS Københavnsvej 265, DK-4000 Roskilde 2018 TACHO ONLINE API TUNGVOGNSSPECIALISTEN APS Københavnsvej 265, DK-4000 Roskilde CONTENT What s new?... 5 Tacho activities... 5 Welcome... 5 More information... 5 Terminology... 5 TVS... 5 Tacho Online...

More information

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki Leveraging the Globus Platform in your Web Applications GlobusWorld April 26, 2018 Greg Nawrocki greg@globus.org Topics and Goals Platform Overview Why expose the APIs A quick touch of the Globus Auth

More information

1 RPN (Danny Yoo / Donovan Preston)

1 RPN (Danny Yoo / Donovan Preston) 1 RPN (Danny Yoo / Donovan Preston) This code implements a reverse polish notation calculator. It s deliberately written in a slightly weird way to avoid being taken used as a homework answer. 1 """ RPN

More information

Lecture 8: Simple Calculator Application

Lecture 8: Simple Calculator Application Lecture 8: Simple Calculator Application Postfix Calculator Dr Kieran T. Herley Department of Computer Science University College Cork 2016/17 KH (27/02/17) Lecture 8: Simple Calculator Application 2016/17

More information

HappyFox API Technical Reference

HappyFox API Technical Reference HappyFox API Technical Reference API Version 1.0 Document Version 0.1 2011, Tenmiles Corporation Copyright Information Under the copyright laws, this manual may not be copied, in whole or in part. Your

More information

Outline. Simple types in Python Collections Processing collections Strings Tips. 1 On Python language. 2 How to use Python. 3 Syntax of Python

Outline. Simple types in Python Collections Processing collections Strings Tips. 1 On Python language. 2 How to use Python. 3 Syntax of Python Outline 1 On Python language 2 3 4 Marcin Młotkowski Object oriented programming 1 / 52 On Python language The beginnings of Pythons 90 CWI Amsterdam, Guido van Rossum Marcin Młotkowski Object oriented

More information

API Security Management SENTINET

API Security Management SENTINET API Security Management SENTINET Overview 1 Contents Introduction... 2 Security Models... 2 Authentication... 2 Authorization... 3 Security Mediation and Translation... 5 Bidirectional Security Management...

More information

Lecture 16: Static Semantics Overview 1

Lecture 16: Static Semantics Overview 1 Lecture 16: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis

More information

UReport USSD application Documentation

UReport USSD application Documentation UReport USSD application Documentation Release 0.1.0 Praekelt Foundation June 07, 2014 Contents 1 UReport JSON HTTP API 3 1.1 Contents................................................. 3 1.2 Response format

More information

Python Programming: Lecture 4 Object Oriented Programming

Python Programming: Lecture 4 Object Oriented Programming Python Programming: Lecture 4 Object Oriented Programming Lili Dworkin University of Pennsylvania October 3, 2014 Good Question from Last Week >>> def foo(a, b, c):... print a, b, c... >>> foo(1, 2, 3)

More information

PIC 16: Iterators and Generators

PIC 16: Iterators and Generators PIC 16: Iterators and Generators Assigned 10/9/2018. To be completed before lecture 10/12/2018. Intended Learning Outcomes. By the end of this preparatory assignment, students should be able to: implement

More information

61A LECTURE 22 TAIL CALLS, ITERATORS. Steven Tang and Eric Tzeng July 30, 2013

61A LECTURE 22 TAIL CALLS, ITERATORS. Steven Tang and Eric Tzeng July 30, 2013 61A LECTURE 22 TAIL CALLS, ITERATORS Steven Tang and Eric Tzeng July 30, 2013 Announcements Homework 12 due Thursday, not Monday. Take the time to get started on the project instead! Almost done with Scheme

More information

CS50 Quiz Review. November 13, 2017

CS50 Quiz Review. November 13, 2017 CS50 Quiz Review November 13, 2017 Info http://docs.cs50.net/2017/fall/quiz/about.html 48-hour window in which to take the quiz. You should require much less than that; expect an appropriately-scaled down

More information

The Merit Palk API allows 3rd party developers to expand and build on the Merit Palk platform.

The Merit Palk API allows 3rd party developers to expand and build on the Merit Palk platform. The Merit Palk API allows 3rd party developers to expand and build on the Merit Palk platform. The Merit Palk API is a RESTful API that is used to access Merit Palk companies using HTTP and JSON. The API

More information

Representing Documents; Unit Testing II

Representing Documents; Unit Testing II Representing Documents; Unit Testing II Benjamin Roth CIS LMU Benjamin Roth (CIS LMU) Representing Documents;Unit Testing II 1 / 26 Documents and Word Statistics Often, documents are the units a natural

More information

Lecture #12: Quick: Exceptions and SQL

Lecture #12: Quick: Exceptions and SQL UC Berkeley EECS Adj. Assistant Prof. Dr. Gerald Friedland Computational Structures in Data Science Lecture #12: Quick: Exceptions and SQL Administrivia Open Project: Starts Monday! Creative data task

More information

Leveraging the Globus Platform in your Web Applications

Leveraging the Globus Platform in your Web Applications Leveraging the Globus Platform in your Web Applications Steve Tuecke tuecke@uchicago.edu NCAR September 5, 2018 Globus serves as A platform for building science gateways, web portals and other applications

More information

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message.

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message. What is CGI? The Common Gateway Interface (CGI) is a set of standards that define how information is exchanged between the web server and a custom script. is a standard for external gateway programs to

More information

Lecture 20. Subclasses & Inheritance

Lecture 20. Subclasses & Inheritance Lecture 20 Subclasses & Inheritance Announcements for Today Reading Today: Chapter 18 Online reading for Thursday Prelim, Nov 9 th 7:30-9:00 Material up to Thursday Review posted on Thursday Recursion

More information

CS61A Lecture 32. Amir Kamil UC Berkeley April 5, 2013

CS61A Lecture 32. Amir Kamil UC Berkeley April 5, 2013 CS61A Lecture 32 Amir Kamil UC Berkeley April 5, 2013 Announcements Hog revisions due Monday HW10 due Wednesday Make sure to fill out survey on Piazza We need to schedule alternate final exam times for

More information

Ninox API. Ninox API Page 1 of 15. Ninox Version Document version 1.0.0

Ninox API. Ninox API Page 1 of 15. Ninox Version Document version 1.0.0 Ninox API Ninox Version 2.3.4 Document version 1.0.0 Ninox 2.3.4 API 1.0.0 Page 1 of 15 Table of Contents Introduction 3 Obtain an API Key 3 Zapier 4 Ninox REST API 5 Authentication 5 Content-Type 5 Get

More information

Black Box DCX3000 / DCX1000 Using the API

Black Box DCX3000 / DCX1000 Using the API Black Box DCX3000 / DCX1000 Using the API updated 2/22/2017 This document will give you a brief overview of how to access the DCX3000 / DCX1000 API and how you can interact with it using an online tool.

More information

Python. Executive Summary

Python. Executive Summary Python Executive Summary DEFINITIONS OBJECT: a unit of data of a particular type with characteristic functionality (i.e., methods and/or response to operators). Everything in Python is an object. "atomic"

More information

Python for C programmers

Python for C programmers Python for C programmers The basics of Python are fairly simple to learn, if you already know how another structured language (like C) works. So we will walk through these basics here. This is only intended

More information

CSC Web Technologies, Spring Web Data Exchange Formats

CSC Web Technologies, Spring Web Data Exchange Formats CSC 342 - Web Technologies, Spring 2017 Web Data Exchange Formats Web Data Exchange Data exchange is the process of transforming structured data from one format to another to facilitate data sharing between

More information

Introduction to APIs. Session 2, Oct. 25

Introduction to APIs. Session 2, Oct. 25 Introduction to APIs Session 2, Oct. 25 API: Application Programming Interface What the heck does that mean?! Interface: allows a user to interact with a system Graphical User Interface (GUI): interact

More information

CSE 115. Introduction to Computer Science I

CSE 115. Introduction to Computer Science I CSE 115 Introduction to Computer Science I Road map Review HTTP Web API's JSON in Python Examples Python Web Server import bottle @bottle.route("/") def any_name(): response = "" response

More information

Account Activity Migration guide & set up

Account Activity Migration guide & set up Account Activity Migration guide & set up Agenda 1 2 3 4 5 What is the Account Activity (AAAPI)? User Streams & Site Streams overview What s different & what s changing? How to migrate to AAAPI? Questions?

More information

Python Intro GIS Week 1. Jake K. Carr

Python Intro GIS Week 1. Jake K. Carr GIS 5222 Week 1 Why Python It s simple and easy to learn It s free - open source! It s cross platform IT S expandable!! Why Python: Example Consider having to convert 1,000 shapefiles into feature classes

More information

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum Ajax The notion of asynchronous request processing using the XMLHttpRequest object has been around for several years, but the term "AJAX" was coined by Jesse James Garrett of Adaptive Path. You can read

More information

Programming Languages

Programming Languages CSE 130 : Spring 2011 Programming Languages Lecture 13: What s in a Name? Ranjit Jhala UC San Diego Next: What s in a name? More precisely: How should programmer think of data What does a variable x really

More information

CS Programming Languages: Python

CS Programming Languages: Python CS 3101-1 - Programming Languages: Python Lecture 5: Exceptions / Daniel Bauer (bauer@cs.columbia.edu) October 08 2014 Daniel Bauer CS3101-1 Python - 05 - Exceptions / 1/35 Contents Exceptions Daniel Bauer

More information

Next: What s in a name? Programming Languages. Data model in functional PL. What s in a name? CSE 130 : Fall Lecture 13: What s in a Name?

Next: What s in a name? Programming Languages. Data model in functional PL. What s in a name? CSE 130 : Fall Lecture 13: What s in a Name? Next: What s in a name? CSE 13 : Fall 211 Programming Languages Lecture 13: What s in a Name? More precisely: How should programmer think of data What does a variable x really mean? Ranjit Jhala UC San

More information

React Native. HTTP/Fetch Sending data

React Native. HTTP/Fetch Sending data React Native HTTP/Fetch Sending data 1 Sending data to web server Two methods GET requests include all required data in the URL. POST requests supply additional data from the client (browser) to the server

More information

RKN 2015 Application Layer Short Summary

RKN 2015 Application Layer Short Summary RKN 2015 Application Layer Short Summary HTTP standard version now: 1.1 (former 1.0 HTTP /2.0 in draft form, already used HTTP Requests Headers and body counterpart: answer Safe methods (requests): GET,

More information

Exceptions & a Taste of Declarative Programming in SQL

Exceptions & a Taste of Declarative Programming in SQL Exceptions & a Taste of Declarative Programming in SQL David E. Culler CS8 Computational Structures in Data Science http://inst.eecs.berkeley.edu/~cs88 Lecture 12 April 18, 2016 Computational Concepts

More information

Coding Intro to APIs and REST

Coding Intro to APIs and REST DEVNET-3607 Coding 1001 - Intro to APIs and REST Matthew DeNapoli DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

CSC148 Week 2. Larry Zhang

CSC148 Week 2. Larry Zhang CSC148 Week 2 Larry Zhang 1 Admin Discussion board is up (link on the course website). 2 Outline for this week Abstract Data Type Stack Queue 3 Abstract Data Type (ADT) 4 What is an abstract data type

More information

[301] JSON. Tyler Caraza-Harter

[301] JSON. Tyler Caraza-Harter [301] JSON Tyler Caraza-Harter Learning Objectives Today JSON differences with Python syntax creating JSON files reading JSON files Read: Sweigart Ch 14 https://automatetheboringstuff.com/chapter14/ JSON

More information