Practical Metaprogramming in Python

Bharat Saraswat (~bhansa)


Description:

At first word Metaprogramming seems very funky and alien thing but if you have ever worked with decorators or metaclasses, your were doing metaprogramming there. In nutshell we can say metaprogramming is the code which manipulates code.

In this workshop, we will be covering some important topics like:

General OOPS in python: [Duration: 15mins]

What is OOPS?
Practical use cases
    - Creating Python classes
    - Creating Object instances 
    - Using Inheritance

Descriptors: [Duration: 20mins]

What & How
Modeling attriubutes in Python
Practical use cases for descriptors 
    - Reduce memory footprint for an object
    - Quick approach to create Json

Metaclasses: [Duration: 25mins]

How classes work in Python
Class and object creation lifecycle
What and How of metaclasses
Practical use cases
    - Singleton and bean like Objects
    - Abstract family of classes
    - Logging infra

Decorators: [Duration: 15mins]

What & How
Practical use cases
    - Loggers
    - Memoizations

Generators: [Duration: 15mins]

Introduction to generators
Practical use cases
    - Memory efficient
    - Infinite stream of data
    - Pipelining generators

Data Classes: [Duration: 25mins]

Introduction to Data Classes
Practical use cases
    - Implementing basic Data Classes
    - Optimizing Data Classes

Project Implementation: [Duration: 30mins]

We will be covering all above topics to create a single project.

Design patterns & choices are an important aspect of any production application and guide the scalability, performance, and robustness of the application. In this talk, we will see some practical implementations of such design patterns.

Prerequisites:

Knowledge/Experience of python programming, classes and objects, basic overview of oops concepts is plus.

Content URLs:

Previous talk by Ramanathan at PySangamam 2018:
https://www.youtube.com/watch?v=RY5QHJow90M

Speaker Info:

Speaker 1: Bharat Saraswat

Bharat is working as a Web and Analytics developer at Deloitte. He is interested in Data Analysis and Visualization. He has submitted solutions for multiple ML competitions from Kaggle, Analytics vidhya and Deloitte Dlabs. He is also a core team member of Hyderabad Python Community.

Speaker 2: Ramanathan Ramakrishnamoorthy

Co-Founder, Director & Head of Research & Development at Zentropy Technologies. Before finding Zentropy, Ram worked with a leading hedge fund as a Project Manager responsible for building tools and technologies required by the middle and the back office. He was instrumental in delivering some of the most mission-critical strategic projects that helped in the overall business of the firm.

Having a keen eye for subtle data patterns, Ram also has a great understanding of machine learning and data science domain and applies the right solutions as per the project requirements. He is a specialist in performing exploratory and predictive analysis on Time Series data.

Speaker Links:

https://github.com/bhansa
https://stackoverflow.com/users/3950422/bhansa

Id: 1417
Section: Core Python
Type: Workshop
Target Audience: Intermediate
Last Updated: