Tutorials
Pages 4
-
- Sign Up For Tutorials
- Writing tests that write themselves
- David Kua
- Saturday, November 18th, 2017 at 11:10 a.m.
- Software requirements:
- Add your name here:
- Python can do that? Building cross-platform graphical tools for Android and iOS with Kivy
- Stephen Astels
- Saturday, November 18th, 2017 at 2:20 p.m.
- Software requirements
- Add your name here:
- Simple made easy 2: a new infrastructure for microservices
- Steve Jackson
- Sunday, November 19th, 2017 at 11:50 a.m.
- Software requirements
- Add your name here:
- Matplotlib custom tools universe
- Federico Ariza
- Sunday, November 19th, 2017 at 1:55 p.m.
- The tool API
- The work
- Software requirements
- Add your name here:
- Thinking in GraphQL with Python
- Mafinar Khan
- Sunday, November 19th, 2017 at 3:40 p.m.
- Software requirements
- Add your name here:
Clone this wiki locally
Sign Up For Tutorials
The tutorials at PyCon Canada have a limited capacity of up to 60 people. If you're interested in attending one of the PyCon Canada tutorials, please sign-up in advance below. You can sign up by clicking the "edit" button in the top right of this page, and adding your name to the lists. If you do not have access to edit this page, please send us an email at speakers@pycon.ca Note that you must already have a ticket to PyCon Canada 2017 to attend.
We will also be using this list to send out any tutorial requirements (things that you should have installed on your laptop before arriving at the tutorial).
Writing tests that write themselves
David Kua
Saturday, November 18th, 2017 at 11:10 a.m.
Property-based testing is a powerful method of generating test cases from properties of your code. With a few lines of code you can have tests that create and test hundreds of examples and can catch edge cases in your code that you weren't even aware of. Originally only available for Haskell developers via the QuickCheck library, property-based tests can now be written in a variety of languages including Python. In this tutorial you will learn about the basics of property-based testing and how to get started writing property-based tests using the Python library Hypothesis. You will also learn how to add and use property-based tests alongside other tests in your existing codebases.
Software requirements:
To follow along, attendees will need working knowledge of Python and a laptop with Python 2.7+, pytest, and Hypothesis.
Add your name here:
- Danial Gagne
- Ke Sun
- Steven Seguin
- François Leblanc
- Renaud Grandjean-Joyeux
- Ankit Mittal
- Hoa Du
- Keefer Rourke
- Dan Gale
- David Ward
- Ihtisham Mazhar
- Nadia Tahiri
- Cam Guinemer
- Paul Gamble
- Victoria Powell
- Nik Sieber
- Darrell Aucoin
- Abbas Taher
- Diana Gil
- Emeric Vigier
- Erik Hauner
- Jason Bernhardt
- Ludovic Demers
- Nathan Blok
- Tim Fenwick
- Christine Gibson
- Roberta Voulon
- Steve Jackson
- Emmanuel Thompson
- Wajdi Al-Hawari
- Nitesh Arora
- Trish Gillett
- Phil Isaac
- Obiamaka Agbaneje
- Annaelle Duff
- Mohamed Konate
- khaled kachkorian
- Yann Parizeau
- David Côté
- Deept Ijoshi
- Ahmad Akkaoui
- Alexandre Tremblay
- Seak Pek Chhan
- Ghislain Bourgeois
- Joshua Butler
- Mark Iantorno
- Dhia Ayachi
- Saida Khazri
- Michael Mulley
- Olesya Baranova
- François Lefebvre
- Oleksandr Huziy
- Ricardo Lima
- Douglas Soares de Andrade
- Ai O
- Timothée Faucon
- Paul Morelle
- Javier Ramirez Martinez
- Gary Graham
- Amy Wooding
- Mohamed Kerbachi
- Ahmed Belgana
Python can do that? Building cross-platform graphical tools for Android and iOS with Kivy
Stephen Astels
Saturday, November 18th, 2017 at 2:20 p.m.
As developers at Learn Leap Fly, we have been using Python and Kivy to make innovative educational apps that run on Android and iOS devices. Along the way we have had to create tools to help us, for example, manage our library of sound and graphics assets. The Kivy library let us quickly create graphical tools for whatever task we needed to solve. We could then deploy them on Android and iOS for our team members for whom the instruction “You’ll need to pip install ...” would seem like gibberish.
In this tutorial we will describe our experiences with Kivy, with a focus on rapid tool development, and guide the audience through the creation of a simple multi-platform graphical tool.
Software requirements
- The tutorial will be using python 2.7. Alternatively, Kivy mostly works with Python 3. Mostly.
- You will need Jupyter Notebook and Kivy, as well as the notebooks and example data here.
- Easiest way to install Jupyter Notebook is by installing Anaconda
- NOTE that there is a bug in the current release of Kivy that might crash the install. Luckily the bug has already been fixed in the development (master) branch. I would recommend:
- install Anaconda
- create a conda environment (conda create --name myenv)
- activate the environment ("source activate myenv" on macOS/Linux, Windows is a bit different)
- install Kivy's dependancies as described on the Kivy Homepage but DON'T do the final "pip install kivy"
- install the development branch of Kivy (pip install http://github.com/kivy/kivy/archive/master.zip)
- (Optional) We will show how to build Kivy apps for iOS. To do this yourself requires a Mac and the kivy-ios package.
Add your name here:
- Danial Gagne
- Radu Raicea
- Shawn Elbaz
- Keefer Rourke
- Ihtisham Mazhar
- Nadia Tahiri
- Talha Mirza
- Paul Gamble
- Victoria Powell
- Franco Saliola
- Susie Saliola
- Paul Pype
- Erik Hauner
- Jason Bernhardt
- Christopher Palazzolo
- John Palazzolo
- Andrew Francis
- Max Humber
- Yinyi Hu
- Steve Jackson
- Emeric Vigier
- Alejandra Cabrera
- Sean Casey
- Vincent Lizotte
- Oleksandr Huziy
- Timothée Faucon
- Pierre Paul Lefebvre
- Joel Babcock
- Derrick Yang
- Jen Garner
- Félix Antoine Goudreault
- Cody Antunez
- Jonathan Dundas
- Patricia Campbell
Simple made easy 2: a new infrastructure for microservices
Steve Jackson
Sunday, November 19th, 2017 at 11:50 a.m.
This tutorial illustrates how self-trained “citizen programmers” can employ Python to create exactly the Microservices they need and want. This empowers the stakeholders, and eases many of the cultural problems that so often bring conflict in software development work. The DSI methodology is inherently Agile, because it naturally supports the 12 Principles (without scrums, kanbans, standups, or micro-managing) DSI systems can be built so as to expose just a tiny attack surface. Disaster recovery based on immutable data storage can be engineered into each design. DSI is ideal for IoT data sources. Development of the microservices can proceed in parallel, in remote shops. Late-arriving change orders are not disruptive.
Software requirements
None. Just bring your curiosity.
Add your name here:
- Mafinar Khan
- Renaud Grandjean-Joyeux
- Danial Gagne
- Keefer Rourke
- Nadia Tahiri
- Cam Guinemer
- Serge Basso
- Paul Gamble
- Victoria Powell
- Nik Sieber
- Abbas Taher
- Erik Hauner
- Jason Bernhardt
- Jim Matchett
- Nathan Blok
- Tim Fenwick
- Yinyi Hu
- Roberta Voulon
- Josh Baker
- Philippe Casgrain
- Marc-Antoine Parent
- Nitesh Arora
- Phil Isaac
- Gary Graham
- Dhia Ayachi
- Dan Gale
- Saida Khazri
- Douglas Soares de Andrade
- köusu
- Mohamed Kerbachi
- Ahmed Belgana
- JPLemelin
- Francis Bolduc
- Joshua Butler
- Andrew Jenssen
- Jean-Philippe Mallette
- Yanis Medjkoune
- Jean-Paul Fiorini
- Ryan Sampana
- Kojo Idrissa
- Zachary Bergeron
- Gabriel Provencher
- Shaun Hamelin-Owens
- Timothée Faucon
- Tristan Lescut
Matplotlib custom tools universe
Federico Ariza
Sunday, November 19th, 2017 at 1:55 p.m.
The tool API
- Discover the new ToolManager capabilities and how does it handle tools.
- Explore tool classes and see how easy is to create new tools to handle your specific needs
The work
We will not go to the moon (only 60 minutes), but you will do the basics so you can go on your own.
- Remove the clutter from the plot Toolbar and customize it to fit your needs (or my needs since I'm the one teaching).
- Create a tool to toggle legend visibility
- Add a tool for line color changing
- What about a tool for hiding/showing different lines?
- Get you started with your own tools
Software requirements
- Upstream version of matplotlib (master from github) installed and running
- GTK3 or Tk backends working (prefereably GTK3)
- Make sure the example
matplotlib/examples/user_interfaces/toolmanager_sgskip.pyworks
Add your name here:
- François Leblanc
- Andry Randriamoeliarivony
- Ankit Mittal
- Hoa Du
- Dan Gale
- Jonathan Deng
- Cam Guinemer
- Allen P. Doss
- Darrell Aucoin
- Usama Mostafa
- Dilhan Tanir
- John Harrigan
- Nassim Tabet
- Miti Modi
- Asieh Harati
- Erik Hauner
- Elvin Cordero
- Ian Flores
- Karim Yacout
- Sepideh Ghafouri
- Martin Denault
- Emmanuel Thompson
- Mohamed Kerbachi
- Ahmed Belgana
- Félix Antoine Goudreault
- Jean-Philippe Mallette
- Felix Archambault
Thinking in GraphQL with Python
Mafinar Khan
Sunday, November 19th, 2017 at 3:40 p.m.
GraphQL is a query language that facilitates data centric communication between clients and servers. It is designed to be language agnostic, and there is one or more implementations of it in almost all major languages. In this tutorial, I will focus on API designining with GraphQL through Python.
I would start off with introducing the concept of GraphQL, why was it made and what are the more natural type of problems it tries to solve. It will be followed by presentation of some minor use cases and how an API designer would go on thinking about the design. How Python and GraphQL come together and an introduction to the Graphene work-flow will precede the longest part of the tutorial, developing a real life Asset Tracking API with Django and Graphene. I had created RESTful asset tracking systems with Django few years back. I intend to create a similar and simplified version through GraphQL and explain every step along the way, with relevant and neutral experience comparisons when needed. My main focus will be on three "How to"-s in descending order of emphasis: i) How to Think, ii) How to Create, iii) How to Test.
Anyone with the knowledge of Python and web development with it would feel comfortable with the contents covered.
Software requirements
- A system with Python 2.7+ and pip
- We will be installing the following libraries during the tutorial
- Django
- graphene-django
- During the tutorial, please go to this live link on your computer so that you can see the live slides while I can focus on writing on the board.
- This repository will be used for the demo app.
Add your name here:
- Ke Sun
- Myles Braithwaite
- Cam Guinemer
- Serge Basso
- Paul Gamble
- Victoria Powell
- Nik Sieber
- Darrell Aucoin
- Abbas Taher
- Iruoma Nwabuzor
- Kyle Connolly
- Miti Modi
- Erik Hauner
- Jason Bernhardt
- Tim Fenwick
- Jens Nistler
- Elvin Cordero
- Cedric Jolly
- Ian Flores
- Yinyi Hu
- Brad Dillon
- Christine Gibson
- Michael Mulley
- Andre Prado
- Roberta Voulon
- Anarosa Paredes
- Emmanuel Thompson
- Andres Roget
- Marc-Antoine Parent
- Obiamaka Agbaneje
- Mohamed Konate
- Alejandra Cabrera
- Sean Casey
- Joshua Butler
- Vincent Lizotte
- Ricardo Lima
- Saida Khazri
- Douglas Soares de Andrade
- Ai Onda
- Timothée Faucon
- Paul Morelle
- Gary Graham
- Mohamed Kerbachi
- Ghislain Bourgeois
- Éric Saulnier
- Benoit Paquet
- JPLemelin
- Francis Bolduc
- Yanis Medjkoune
- Ryan Sampana
- Jean-Paul Fiorini
- Gabriel Provencher
- Shaun Hamelin-Owens
- Pascal de Ladurantaye
- Thomas Kearvell
- Alexandre Tremblay
- Ankur Taxali
- Nicolas Leblanc
- Mounir Messelmeni
- Jens Nistler
- Steffen Zieger