Coder Social home page Coder Social logo

zomatopy's Introduction

Zomatopy

A Python wrapper for the Zomato API v2.1

Installation

pip install zomatopy

Or download the source code from here, and then just install the package using

python setup.py install

Getting Started

Python Version

This wrapper was written for Python 3 and might not work well with Python 2.

Adding Zomatopy to your application

For use with only user based authentication we can create the following configuration:

import zomatopy

config={
  "user_key"="ZOMATO_API_KEY"
}
    
zomato = zomatopy.initialize_app(config)

Methods

Common

Getting all Category IDs and the category names

  • Takes no inputs.
  • Returns a dictionary of Category IDs and corresponding Category Names.
category_dictionary = zomato.get_categories()

Getting ID for a particular city

  • Takes City Name as input.
  • Returns the City ID of the city.
  • Can raise InvalidCityName exception.
#city_name must be a string without numbers or special characters.

city_ID = zomato.get_city_ID(city_name)

Getting Name for a particular City ID

  • Takes City ID as input.
  • Returns name of the city with that ID.
  • Can raise InvalidCityId exception.
#city_ID must be an integer.

city_name = zomato.get_city_name(city_ID)

Getting the Zomato Collections in a city

  • Takes City ID and number of collections as input.
  • If number of collections is not specified, returns all Zomato Collections.
  • Returns a dictionary of Collection Name and Collection URL.
  • Can raise InvalidCityId and LimitNotInteger exceptions.
#city_ID must be an integer.
#limit must be an integer.

# Returns all the Zomato Collections in a city
collections_dictionary = zomato.get_collections(city_ID)

#Returns 'limit' number of collections.
collections_dictionary = zomato.get_collections(city_ID, limit=number_of_collections)

Getting the cuisines in a city

  • Takes City ID as input.
  • Returns a dictionary of Cuisine ID and corresponding Cuisine Names.
  • Can raise InvalidCityId exception.
#city_ID must be an integer.

cuisine_dictionary = get_cuisines(city_ID)

Getting all establishment types in a city.

  • Takes City ID as input.
  • Returns a dictionary of Establishment Type ID and corresponding Establishment Type Name.
  • Can raise InvalidCityId
#city_ID must be an integer.

establishment_types_dictionary = get_establishment_types(city_ID)

Restaurant

Getting the nearby restaurants

  • Takes Latitude and Longitude as inputs.
  • Returns a dictionary of Restaurant IDs and their corresponding Zomato URLs.
  • Can raise InvalidLatitudeOrLongitude exception.
#latitude and longitude must be float or string representation of a float.

restaurant_dictionary = get_nearby_restaurants(latitude, longitude)

Getting the details of a particular restaurant

  • Takes Restaurant ID as input.
  • Returns a dictionary of restaurant details.
  • Can raise a InvalidRestaurantId exception.
#restaurant_ID must be an integer.

restaurant_details = get_restaurant(restaurant_ID)

#restaurant_details.name gives the restaurant name.
#restaurant_details.url gives the restaurant Zomato URL.
#restaurant_details.location gives the restaurant location.
#restaurant_details.city gives the restaurant city name.
#restaurant_details.city_ID gives the restaurant city's ID.
#restaurant_details.user_rating gives the restaurant rating.

Searching restaurants based on query, latitude/longitude and/or cuisine IDs

  • Takes either query, latitude and longitude or cuisine as input (at least one is necessary).
  • limit can be specified to give only those many restaurant results (limit=5 by default).
  • Returns a list of Restaurant IDs.
  • Can raise a LimitNotInteger exception.
#latitude and longitude must be float or string representation of a float.
#multiple cuisine IDs can be specified by separating with commas. Must be a string.

restaurant_list = restaurant_search(query="Buffet", cuisines="1, 25")

Exceptions

InvalidKey

  • If the key is not a valid Zomato API Key.
ValueError: InvalidKey

InvalidCityId

  • If the City ID contains an alphabet or special characters.
  • If the City ID is not present in the Zomato database.
ValueError: InvalidCityId

InvalidCityName

  • If the City Name consists of numbers or special characters.
  • If the City Name is not present in the Zomato database.
ValueError: InvalidCityName

InvalidRestaurantId

  • If the Restaurant ID consists of alphabets or special characters.
  • If the Restaurant ID is not present in the Zomato database.
ValueError: InvalidRestaurantId

InvalidLatitudeOrLongitude

  • If the latitude or longitude value provided in not a number or string representation of a number.
ValueError: InvalidLatitudeOrLongitude

LimitNotInteger

  • If the limit parameter provided for the get_collections() or restaurant_search() methods is not an integer.
ValueError: LimitNotInteger

ApiLimitExceeded

  • If the daily call limit of the API Key is exceeded.
Exception: ApiLimitExceeded

zomatopy's People

Contributors

sharadbhat avatar

Watchers

Sonu Gupta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.