Contribute Media
A thank you to everyone who makes this possible: Read More

Designing a Pythonic Interface


Honza Král - Designing a Pythonic Interface [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (

When designing an abstraction for a complex system (an ORM-like library in our case) you face a lot of design decisions and challenges. This talk details how we chose to tackle those when designing elasticsearch-dsl.

The json query language for elasticsearch, as well as its other APIs, can be very daunting to new users and can be a bit cumbersome when working with python. That is why we created elasticsearch-dsl - a sort of ORM for elasticsearch.

We will go through the design philosophy and obstacles found during the development - trying to make a more pythonic interface for elasticsearch while maintaining access to all of the features of the underlying query language.

The focus of the talk is more on the library and interface design than on elasticsearch and its query language itself, that is used only to demonstrate the principles.

Improve this page