The Real Python Podcast

Real Python
undefined
Jun 23, 2023 • 1h 14min

Resources and Advice for Building CircuitPython Projects

Are you looking to advance your CircuitPython projects? Would you like a collection of resources and tools to help you along your path? This week on the show, Tod Kurt is here to discuss building projects with CircuitPython. Tod has been working with embedded electronics for a long time and has been an active member of the Arduino community. He recently started to build projects using CircuitPython, and it has become his preferred prototype method. He shares software resources, hardware tools, and advice about working with CircuitPython and embedded electronics. We discuss several of his music hardware projects and the libraries and modules that he uses for synthesis. He also shares a powerful online prototyping tool to plan your project before spending money or plugging in a soldering iron. Course Spotlight: Python Basics: Reading and Writing Files In this video course, you’ll learn how to move data back and forth between your Python programs and external software by reading and writing files. You’ll practice reading and writing data stored in the CSV file format, one of the most widely supported file formats for transferring tabular data. Topics: 00:00:00 – Introduction 00:02:17 – Tod’s background and ThingM 00:06:37 – The Bootloader Podcast 00:09:58 – Why did you move from C to Python? 00:13:47 – Starting new projects with CircuitPython instead of Arduino 00:17:14 – Advantages of the Arduino language 00:21:07 – Modules that extend CircuitPython with C 00:25:23 – Synthesis and sample playback in CircuitPython 00:32:54 – Video Course Spotlight 00:34:13 – ulab for NumPy-like functionality in CircuitPython 00:39:20 – Raspberry Pi Pico as inexpensive project board 00:46:08 – STEMMA QT and breadboards 00:48:40 – Powering projects with a USB power bank 00:51:25 – Software tools - tio, circup, and discotool 00:56:55 – CircuitPython tricks GitHub repo 00:59:44 – Wokwi simulator for CircuitPython and Raspberry Pi Pico 01:01:25 – PCB board design resources 01:03:27 – todbot projects on Tindie 01:06:11 – Hardware tools for projects 01:08:21 – What are you excited about in the world of Python? 01:09:42 – What do you want to learn next? 01:11:30 – How can people follow your work online? 01:12:50 – Thanks and goodbye Show Links: todbot blog – Random experiments, circuits, and code by Tod Kurt. todbot - YouTube ThingM The Bootloader Podcast The CircuitPython Show Podcast CircuitPython Arduino - Home Extending CircuitPython: An Introduction - Adafruit Learning System Adafruit Feather RP2040 with DVI - HDMI Output Episode #75: Building With CircuitPython & Constraints of Python for Microcontrollers displayio – Native helpers for driving displays - CircuitPython Mozzi synthio: Support for multi-channel audio synthesis - Adafruit ulab: Crunch Numbers fast in CircuitPython - Adafruit Learning System Raspberry Pi Pico RP2040 - Adafruit What is STEMMA? - Adafruit STEMMA & STEMMA QT USB Power bank - Current Favorite - Amazon tio: A simple serial device I/O tool - GitHub circup: CircuitPython library updater - GitHub discotool: USB Arduino type boards discovery library and tool - GitHub circuitpython-tricks: Some CircuitPython tricks, mostly reminders to myself - GitHub Wokwi Simulator - CircuitPython on Raspberry Pi Pico Project EAGLE - PCB Design And Electrical Schematic Software - Autodesk KiCad EDA - Schematic Capture & PCB Design Software Introducing KiCanvas - Stargirl (Thea) Flowers PicoTouch - Capsense MIDI keyboard - Tindie PicoStepSeq PCB from todbot synth toys - Tindie USB Voltage and Current Tester - Amazon USB Hub with Individual Power Switches - Amazon CPython Internals Book – Real Python ThinkDSP: Free Book on Digital Signal Processing in Python todbot blog – Random experiments, circuits, and code by Tod Kurt. Tod Kurt (todbot) (@todbot@mastodon.social) - Mastodon Adafruit Discord - @todbot Level up your Python skills with our expert-led courses: Python Basics: Reading and Writing Files Getting Started With MicroPython Python Basics: File System Operations Support the podcast & join our community of Pythonistas
undefined
Jun 16, 2023 • 49min

Inheriting a Large Python Code Base & Building a GUI With Kivy

What are the unique challenges of a large Python code base? What techniques can you implement to simplify the management of a big project? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects. We discuss a recent thread on Hacker News about working with a large Python code base. Christopher advises configuring tests and using tools to keep your code consistent across an organization. He also answers several questions about code complexity, typing, and leveraging third-party libraries. We cover several other articles and projects from the Python community, including news from the Python Language Summit, Kivy for GUI development, the power of bit manipulation, the removal of unused import statements in your code, and a Python-based iOS project for adding reminders about links from a podcast. Course Spotlight: Build Cross-Platform GUI Apps With Kivy In this video course, you’ll learn how to build a cross-platform mobile application with Python and the Kivy GUI framework. You’ll discover how to develop an application that can run on your desktop as well as your phone. Then, you’ll package your app for Windows, Linux, and macOS. Topics: 00:00:00 – Introduction 00:01:43 – Python 3.13 Removes 20 Stdlib Modules 00:03:20 – Making the Global Interpreter Lock Optional 00:04:52 – What Is the Standard Library For? 00:06:14 – Python’s .__call__() Method: Creating Callable Instances 00:11:40 – The Power of Bit Manipulation 00:15:39 – Using Kivy for GUI Development 00:21:18 – Video Course Spotlight 00:22:43 – How Do You Deal With Large Python Code Bases? 00:40:50 – unimport: Remove Unused Import Statements in Your Code 00:42:36 – Update: rsync-time-machine.py 00:43:20 – memocast: Add links heard in podcasts into iOS reminders 00:47:42 – A request to listeners 00:48:20 – Thanks and goodbye Show Links: Python 3.13 Removes 20 Stdlib Modules – Core developers are busy working on PEP 594, removing dead batteries from Python 3.13. This long post in the discussion forum highlights what work has been completed so far. Making the Global Interpreter Lock Optional – In the past, Sam Gross has outlined how to make the GIL optional in CPython. He presented at the Python Language Summit, providing updates on his progress and future plans for the project. PEP 703 – Making the Global Interpreter Lock Optional in CPython | peps.python.org PEP 703 - Discussion on Python.org What Is the Standard Library For? – This post summarizes a conversation at the Python Language Summit proposing that guidelines be defined for when something should be added to the standard library. Python’s .__call__() Method: Creating Callable Instances – In this tutorial, you’ll learn what a callable is in Python and how to create callable instances using the .__call__() special method in your custom classes. You’ll also code several examples of practical use cases for callable instances in Python. The Power of Bit Manipulation – In this article, you learn about bit manipulation and how to solve problems efficiently using it in Python. Using Kivy for GUI Development – Kivy is an open-source Python library for developing desktop and mobile GUI apps. It’s supported on Windows, Linux, macOS, Android, and iOS. This article introduces you to Kivy and teaches you how to build your first GUI with it. Discussion: How Do You Deal With Large Python Code Bases? Projects: unimport: Remove Unused Import Statements in Your Code memocast: 🎧 A small iOS app for e.g. iPhone that allow you to add links heard in podcasts into reminders Additional Links: Binary, Bytes, and Bitwise Operators in Python – Real Python Build a Mobile Application With the Kivy Python Framework – Real Python Open Source ERP and CRM | Odoo Moodle - Open-source learning platform | Moodle.org rsync-time-machine.py: Time Machine-style backups using rsync Pythonista for iOS Level up your Python skills with our expert-led courses: Python Basics: Object-Oriented Programming Simplify Python GUI Development With PySimpleGUI Build Cross-Platform GUI Apps With Kivy Support the podcast & join our community of Pythonistas
undefined
Jun 9, 2023 • 1h 1min

Volunteering, Organizing, and Finding a Python Community

Have you thought about getting more involved in the Python community? Are you interested in volunteering for an event or becoming an organizer? This week on the show, we speak with organizers from this year’s PyCascades conference about making connections, learning new skills, and rationing your time. We have three guests to discuss working on PyCascades 2023 and how they got involved in volunteering. Conference Chair Ben Berry, a site reliability engineer based in Seattle, is currently working on a private platform-as-a-service. Diversity Chair Madison Swain-Bowden is a senior data engineer out of Seattle, currently working at Automattic on the Openverse team. Sponsorship Chair Michael van der Kamp is a back-end engineer at Coffee Meets Bagel. We discuss finding other volunteers, maintaining motivation, and connecting with sponsors. Our guests also share their stories of overcoming challenges, connecting with community, and finding fulfillment through volunteering. This week’s episode is brought to you by Proxify. Course Spotlight: Using pandas to Make a Gradebook in Python With this course and Python project, you’ll build a script to calculate grades for a class using pandas. The script will quickly and accurately calculate grades from a variety of data sources. You’ll see examples of loading, merging, and saving data with pandas, as well as plotting some summary statistics. Topics: 00:00:00 – Introduction 00:02:34 – Conference Chair Ben Berry 00:03:58 – Diversity Chair Madison Swain-Bowden 00:06:04 – Sponsorship Chair Michael van der Kamp 00:08:28 – Scheduling of conferences around one another 00:10:41 – How did you get involved in the community? 00:20:01 – Sponsor: Proxify 00:20:57 – Workplace groups and guilds 00:27:41 – How community helps with job referrals 00:32:19 – New position and added responsibilities 00:41:24 – How would you pitch volunteering? 00:44:32 – Video Course Spotlight 00:45:45 – How do you avoid overdoing it? 00:52:46 – What are you excited about in the world of Python? 00:55:16 – What do you want to learn next? 00:59:22 – Thanks and goodbye Show Links: The Team - PyCascades 2023 PyCascades 2023 - YouTube PyLadies – Women Who Love Coding in Python Puget Sound Programming Python (PuPPy) (Seattle, WA) - Meetup PySprings (Colorado Springs, CO) - Meetup What is Lean Coffee? - an introduction to agenda-less meetings Async IO in Python: A Complete Walkthrough – Real Python Structural Pattern Matching – Real Python Using FastAPI to Build Python Web APIs – Real Python Rust Programming Language Rust for Rustaceans - No Starch Press CircuitPython Michael van der Kamp - LinkedIn Madison on Tumblr Ben Berry (@benb@fosstodon.org) Level up your Python skills with our expert-led courses: Using pandas to Make a Gradebook in Python The pandas DataFrame: Working With Data Efficiently Building Python Project Documentation With MkDocs Support the podcast & join our community of Pythonistas
undefined
Jun 2, 2023 • 53min

Building Python CI With Docker & Applying for a Hacker Initiative Grant

Do you need a refresher on using Docker with Python? Would you like to learn how to configure a continuous integration pipeline with modern tools and Docker? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects. We share a Real Python tutorial from Bartosz Zaczyński about building continuous integration with Docker. Docker provides consistent environments for configuring, testing, and delivering Python applications. In this tutorial, you’ll get up to speed with current Docker and CI techniques. We also speak with Bill Pollock from No Starch Press about Hacker Initiative. The public nonprofit gives back to and strengthens the hacking community. The 2023 grant cycle is currently open until August 15. We discuss the application process and projects from previous grant recipients. We cover several other articles and projects from the Python community, including a news update and some resources on implementing metaclasses in Python, creating time machine-style backups, and scanning your project for vulnerabilities. Course Spotlight: Metaclasses in Python Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you’ll learn how Python’s metaclasses work in object-oriented programming. Topics: 00:00:00 – Introduction 00:02:26 – PyPI Temporarily Suspended New Registrations 00:03:38 – PyPI was subpoenaed 00:04:54 – Python 3.12.0 beta 1 released 00:05:19 – Build Robust Continuous Integration With Docker and Friends 00:13:02 – Metaclasses in Python 00:20:03 – Pronouncing SQL - Is there life after SQL? 00:22:52 – Video Course Spotlight 00:24:25 – pyscan: Python dependency vulnerability scanner, written in Rust 00:26:28 – rsync-time-machine.py: Time Machine-Style Backups 00:29:20 – Bill Pollock and Hacker Initiative 00:34:18 – Previous grant recipients 00:36:58 – First Tech Challenge 00:43:18 – Large vs small nonprofits 00:45:48 – Applying for the 2023 grant cycle 00:49:01 – Underserved areas 00:51:45 – Thanks and goodbye News: PyPI Temporarily Suspended New Registrations – Due to a large volume of traffic from malicious users, PyPI temporarily suspended new account and project registrations on May 20. The suspension was lifted thirty hours later on May 21. PyPI was subpoenaed - The Python Package Index – The PSF received three subpoenas from the US Department of Justice for PyPI user data in March and April of 2023. Python Insider: Python 3.12.0 beta 1 released Show Links: Build Robust Continuous Integration With Docker and Friends – In this tutorial, you’ll use Docker and GitHub Actions to build a robust continuous integration pipeline for a multi-container web application consisting of Flask and Redis. Along the way, you’ll learn how to dockerize a Python web application. Metaclasses in Python - Real Python Video Course – Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you’ll learn how Python’s metaclasses work in object-oriented programming. Is there life after SQL? - YouTube Projects: pyscan: Python dependency vulnerability scanner, written in Rust - GitHub rsync-time-machine.py: Time Machine-Style Backups Hacker Initiative Links: Hacker Initiative – By hackers. For hackers. Apply for the 2023 Grant Cycle – Hacker Initiative 2022 Grant Recipients – Hacker Initiative Additional Links: Release CPython 3.12.0b1 w/ WASI SDK 20 - brettcannon/cpython-wasi-build Episode #149: Coding With namedtuple & Python’s Dynamic Superpowers What is FIRST Tech Challenge? - FIRST No Starch Press - “The finest in geek entertainment” Level up your Python skills with our expert-led courses: Continuous Integration With Python Metaclasses in Python Writing Clean, Pythonic Code With namedtuple Support the podcast & join our community of Pythonistas
undefined
May 26, 2023 • 55min

Discussing Mojo & Improving Python Object-Oriented Programming

Would you like to speed up your Python machine-learning code dramatically? What if you only had to change a few keywords and add a couple of type hints on portions of your code? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects. We discuss a new programming language named Mojo, which is a superset of Python. It aims to fix Python’s performance and deployment problems. The project has many interesting ideas and a leader who has helped to shape modern compiler technology. We also share a pair of Real Python tutorials from Leodanis Pozo Ramos about object-oriented programming in Python. The first one is a deep dive into the creation of classes. It’s an excellent refresher for anyone looking to hone their OOP skills in Python. The second tutorial covers the SOLID principles, which are five well-established standards for improving your object-oriented design. These principles guide you to create object-oriented code that is more maintainable, extensible, scalable, and testable. We cover several other articles and projects from the Python community, including a news update, showing warnings when running Django, tracking the progress of your Python program, and a Markdown browser for your terminal. This week’s episode is brought to you by Koyeb. Course Spotlight: Using k-Nearest Neighbors (kNN) in Python In this video course, you’ll learn all about the k-nearest neighbors (kNN) algorithm in Python, including how to implement kNN from scratch. Once you understand how kNN works, you’ll use scikit-learn to facilitate your coding process. Topics: 00:00:00 – Introduction 00:02:39 – PEP 713: Callable Modules 00:04:22 – PEP 712: “Converter” Parameter for dataclasses.field 00:06:49 – Python Classes: The Power of Object-Oriented Programming 00:16:44 – Sponsor: Koyeb 00:17:33 – SOLID Principles: Improve Object-Oriented Design in Python 00:22:00 – Mojo, a Superset of Python 00:34:31 – Mojo might be the biggest thing to happen in programming for decades 00:41:48 – Mojo – a new programming language for AI developers 00:44:03 – Video Course Spotlight 00:45:23 – Have Python Show Warnings When Running Django 00:47:52 – TQDM: Tracking the Progress of Your Python Program 00:50:34 – frogmouth: A Markdown Browser for Your Terminal 00:53:59 – Thanks and goodbye News: PEP 713: Callable Modules PEP 712: “Converter” Parameter for dataclasses.field Show Links: Python Classes: The Power of Object-Oriented Programming – In this tutorial, you’ll learn how to create and use full-featured classes in your Python code. Classes provide a great way to solve complex programming problems by approaching them through models that represent real-world objects. SOLID Principles: Improve Object-Oriented Design in Python – In this tutorial, you’ll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that is more maintainable, extensible, scalable, and testable. Mojo, a Superset of Python – Mojo is a new programming language, which is a superset of Python. It aims to fix Python’s performance and deployment problems. Have Python Show Warnings When Running Django – How to show warnings when running Python, and Django, during local development. The easy, yet not well-known, way. Discussion: Mojo might be the biggest thing to happen in programming for decades - Hacker News Mojo, a new programming language for AI developers - Hacker News Projects: TQDM: Tracking the Progress of Your Python Program frogmouth: A Markdown Browser for Your Terminal Additional Links: Video - tqdm documentation tqdm documentation pipx Episode #101: Tools for Setting Up Python on a New Machine – The Real Python Podcast Level up your Python skills with our expert-led courses: Using Jupyter Notebooks Using k-Nearest Neighbors (kNN) in Python Using Multiple Constructors in Your Python Classes Support the podcast & join our community of Pythonistas
undefined
May 12, 2023 • 1h 9min

Virtual Environment Structure & Surveying the Packaging Ecosystem

How do Python virtual environments work under the hood? How does understanding these concepts help you with managing them for your projects? This week on the show, CPython core developer Brett Cannon returns to discuss his recent articles about virtual environments and the Python packaging landscape. Brett talks about his recent article “How Virtual Environments Work.” He was researching the topic to solve an issue with a Linux Python distribution that doesn’t provide the tools to create virtual environments. We talk about how he solved the problem by creating a tiny library named microvenv. We also take a look at the Python packaging ecosystem. Brett talks about the early days of Python, when these tools didn’t exist. He contrasts that with the current packaging solution explosion and how each one attempts to solve unique problems. We also discuss the Python Packaging User Survey and the plans for packaging summits at PyCon US. Note that we recorded this episode two weeks before PyCon US 2023. Course Spotlight: Getting the Most Out of the Python Standard REPL In this video course, you’ll learn how to use the Python standard REPL (Read-Eval-Print Loop) to run your code interactively. This tool will allow you to test new ideas, explore and experiment with new tools and libraries, refactor and debug your code, try out examples, and more. Topics: 00:00:00 – Introduction 00:01:58 – Virtual environments 00:07:10 – PEP 704 & virtual environment workflows 00:26:57 – Experimenting with not including pip 00:34:44 – Video Course Spotlight 00:36:35 – What are you using for packaging? 00:43:32 – Python Packaging User Survey & the history of packaging 00:48:40 – Packing only gets complex when it’s not pure Python code 01:01:22 – Outcomes after the survey and the packaging summit 01:03:56 – What are you excited about in the world of Python? 01:05:28 – What’s something you want to learn next? 01:07:12 – How can people follow the work that you do? 01:08:14 – Thanks and goodbye Show Links: How virtual environments work PEP 704 – Require virtual environments by default for package installers - peps.python.org microvenv - PyPI python-launcher: Python launcher for Unix - GitHub bootstrap.pypa.io Classifying Python virtual environment workflows Python Packaging User Survey - Results PDF Thoughts on the Python packaging ecosystem - Pradyun Gedam pypa/packaging: Core utilities for Python packages - GitHub Flit 3.8.0 - Flit 3.8.0 documentation hatch - PyPI hatchling - PyPI Episode #93: Launching Python, Virtual Environments, and Locking Dependencies With Brett Cannon – The Real Python Podcast PEP 665 – A file format to list Python dependencies for reproducibility of an application - peps.python.org Programming Rust, 2nd Edition Tall, Snarky Canadian - Brett’s Blog Microsoft Python Blog Visual Studio Code Blog Brett Cannon (@brettcannon@fosstodon.org) - Mastodon Level up your Python skills with our expert-led courses: Getting the Most Out of the Python Standard REPL Working With Python Virtual Environments Publishing Python Packages to PyPI Support the podcast & join our community of Pythonistas
undefined
May 5, 2023 • 38min

Checking Project Dependencies & Python Dev Resource Collections

How can you ensure that you’ve appropriately declared your project’s required dependencies? How do you determine what dependencies are missing from a third-party project that you can’t run? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects. We discuss a new Python dependency checker called FawltyDeps. The tool helps you determine if you’ve declared too few or too many packages for your project. Christopher has brought several developer resource collections: a list of assured open-source Python packages from Google, test databases with interesting datasets, and multiple Django third-party packages. We cover several other articles and projects from the Python community, including a news update, advice on how to pitch yourself as a guest to a podcast, how to submit articles and projects to PyCoders Weekly, PyPI’s introduction of trusted publishers and organizations, a tool for tracking package history, a pixel art paint program written in Python, and a project for efficient string matching with regular expressions. Course Spotlight: Publishing Python Packages to PyPI In this video course, you’ll learn how to create a Python package for your project and how to publish it to PyPI, the Python Package Index. Quickly get up to speed on everything from naming your package to configuring it using setup.cfg. Topics: 00:00:00 – Introduction 00:02:19 – PEP 684 – A Per-Interpreter GIL Accepted 00:03:59 – Python 3.10 Runtime Now Available in AWS Lambda 00:04:19 – PyCon US 2023 Follow Up 00:08:05 – Podcast Topic & Guest Submissions 00:13:45 – Submissions to PyCoders Weekly 00:16:49 – Google’s Assured OSS Python Packages 00:18:27 – Groovy Datasets for Test Databases 00:19:10 – Top 10 Django Third-Party Packages 00:20:27 – Video Course Spotlight 00:21:46 – FawltyDeps - A Dependency Checker for Your Python 00:26:58 – PyPI Introduces “Trusted Publishers” 00:28:27 – Introducing PyPI Organizations 00:29:02 – pypi-diff: PyPI Package History Tracking 00:30:29 – PyDPainter: A usable pixel art paint program written in Python 00:35:19 – trrex: Efficient String Matching With Regular Expressions 00:37:16 – Thanks and Goodbye News: PEP 684 – A Per-Interpreter GIL Accepted Python 3.10 Runtime Now Available in AWS Lambda Show Links: PyCon US 2023 - Follow Up The Real Python Podcast (podcast@realpython.com) PyCoder’s Weekly - Submit a Link Google’s Assured OSS Python Packages – Google publishes a list of the open-source packages that it uses and secures within its own software supply chain. The list is public, so you can take advantage of their assessment. Groovy Datasets for Test Databases – When you experiment with a new-to-you data science skill, you need some sort of data to work with. Why be boring? This article talks about several available datasets that you can use when you practice your coding skills. Top 10 Django Third-Party Packages – Will covers a list of his favorite third-party packages for Django. This includes old favorites, like Django REST framework, and lesser-known packages, like django-filter and django-environ. FawltyDeps: A Dependency Checker for Your Python – FawltyDeps is a new tool to help you identify undeclared and unused dependencies in your Python code, making your projects leaner and more reproducible. PyPI Introduces “Trusted Publishers” – PyPI package maintainers can adopt a new, more secure, OIDC-authenticated publishing method that doesn’t require sharing long-lived passwords or API tokens with external systems. Introducing PyPI Organizations - The Python Package Index pypi-diff: PyPI Package History Tracking Projects PyDPainter: A usable pixel art paint program written in Python - GitHub trrex: Efficient String Matching With Regular Expressions Additional Links: Data Is Plural FawltyDeps Quick PyDPainter Demo - YouTube Having a look at PyDPainter and comparing it to Deluxe Paint on the Amiga - YouTube Level up your Python skills with our expert-led courses: Everyday Project Packaging With pyproject.toml Publishing Python Packages to PyPI Documenting Python Projects With Sphinx and Read the Docs Support the podcast & join our community of Pythonistas
undefined
Apr 28, 2023 • 1h 19min

Targeting WebAssembly Platforms & Distilling a Minimum Viable Python

Are you familiar with the different versions of WebAssembly? Could WASM be the “write once, run everywhere” solution that developers have searched for? Where does distributing Python applications fit in the narrative? This week on the show, we have CPython core developer Brett Cannon to discuss his recent articles about WebAssembly and MVPy. Brett has completed his syntactic sugar series, which we discussed in a previous episode. He details the origin of the series and his process of unearthing a minimum viable version of Python. Brett shares how he updated his PyCon US talk on the subject after feedback from presenting it at PyCascades. We also dig deep into WebAssembly, specifically WebAssembly System Interface (WASI). Brett explains the concept of a “platform target triple” and the importance of defining which system CPython is compiled for. We also discuss WebAssembly becoming a ubiquitous distribution system. Course Spotlight: Python Basics: Building Systems With Classes In this video course, you’ll learn how to work with classes to build complex systems in Python. By composing classes, inheriting from other classes, and overriding class behavior, you’ll harness the power of object-oriented programming (OOP). Topics: 00:00:00 – Introduction 00:02:05 – PyCascades 2023 00:02:56 – Using social media for polls and checking interest 00:06:02 – Completing the syntactic sugar blog series 00:15:29 – Minimum Viable Python (MVPy) and WebAssembly 00:19:29 – Other teams focusing on WebAssembly 00:21:31 – Sponsor: Courier 00:22:13 – Stack of technology 00:26:50 – WebAssembly and its platform targets 00:32:35 – WASI and connecting to a runtime 00:38:33 – Extension modules and dynamic libraries 00:47:29 – Overcoming road blocks and envisioning a new WASI assignment 00:51:51 – Video Course Spotlight 00:53:26 – PEP 11 & CPython platform support for WASI 01:03:11 – Machine-specific runtime 01:04:57 – Write once, run everywhere 01:13:14 – Talks and summits planned for PyCon 2023 01:18:00 – Thanks and goodbye Show Links: MVPy: Minimum Viable Python Python’s Syntactic Sugar - PyCon US 2023 Episode #47: Unraveling Python’s Syntax to Its Core With Brett Cannon – The Real Python Podcast syntactic sugar - Tall, Snarky Canadian Brett Cannon (@brettcannon@fosstodon.org) - Fosstodon WASI - wasi.dev WebAssembly and its platform targets Introducing the Disney+ Application Development Kit (ADK) - Mike Hanley Compute@Edge services using WebAssembly - Fastly Developer Hub Experimental - Python for the Web - Visual Studio Marketplace PEP 11 – CPython platform support - peps.python.org Testing a Python project using the WASI build of CPython with pytest The rise of WebAssembly - InfoWorld Can WASM become the new Docker? bytecodealliance/wasmtime: A fast and secure runtime for WebAssembly Emscripten - Dev Documentation PyScript - Run Python in your HTML Level up your Python skills with our expert-led courses: Python Basics: Object-Oriented Programming Inheritance and Composition: A Python OOP Guide Python Basics: Building Systems With Classes Support the podcast & join our community of Pythonistas
undefined
Apr 14, 2023 • 43min

Seeking Faster Text Processing & Python's .__repr__() vs .__str__()

What can you do if your text manipulation in Python is slowing you down? Are there faster alternatives using a compiled extension? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects. Christopher shares a recent article by Itamar Turner-Trauring called “Speeding Up Text Processing in Python (Is Hard).” The piece compares the performance of string-matching scenarios using several alternatives to pure Python that rely on compiled extensions. We also discuss a recent Real Python tutorial by Stephen Gruppetta on when to use .__repr__() vs .__str__() in Python. We cover the use cases for these special methods and the intended audiences for the strings they produce. We share several other articles and projects from the Python community, including a news update, an article on the functional power of Python’s reduce(), a call to ban 1+N in Django, a friendly project to fetch your data files, and a tool for tracking your work from the shell. Course Spotlight: Unicode in Python: Working With Character Encodings In this course, you’ll get a Python-centric introduction to character encodings and Unicode. Handling character encodings and numbering systems can at times seem painful and complicated, but this guide is here to help with easy-to-follow Python examples. Topics: 00:00:00 – Introduction 00:02:11 – The Python Package Index Launches a Blog 00:03:11 – PEP 582 (Python Local Packages Directory) Rejected 00:05:00 – Django 4.2 Release Candidate 1 Released 00:05:34 – Want to Host DjangoCon Europe 2024? 00:06:23 – When Should You Use .__repr__() vs .__str__() in Python? 00:14:16 – Sponsor: Snyk 00:15:06 – Speeding Up Text Processing in Python (Is Hard) 00:22:21 – reduce() - The Power of a Single Python Function 00:30:27 – Video Course Spotlight 00:32:04 – Ban 1+N in Django 00:35:26 – Pooch - A Friend to Fetch Your Data Files 00:39:11 – workedon - Track Your Work From the Shell 00:41:53 – Thanks and Goodbye News: The Python Package Index Launches a Blog PEP 582 (Python Local Packages Directory) Rejected Django 4.2 Release Candidate 1 Released Want to Host DjangoCon Europe 2024? Show Links: When Should You Use .__repr__() vs .__str__() in Python? – In this tutorial, you’ll learn the difference between the string representations returned by .__repr__() vs .__str__() and understand how to use them effectively in classes that you define. Speeding Up Text Processing in Python (Is Hard) – If you need to speed up string parsing and formatting in Python, you have many choices. This article covers the uses of Cython, mypyc, Rust, and PyPy and considers how to choose between them. reduce() - The Power of a Single Python Function – “While Python is not a pure functional programming language, you still can do a lot of functional programming in it. In fact, just one function - reduce() - can do most of it.” This article introduces you to reduce(). Ban 1+N in Django – The 1+N database anti-pattern is common: fetch some rows from the database then re-fetch specific rows to get all the items. An ORM can hide this away and make you fail to realize that it’s happening. This article discusses how to avoid this anti-pattern in Django. It also has an added meta-bonus: a link to the attempt to write the article with ChatGPT. Projects: Pooch: A Friend to Fetch Your Data Files workedon: Track Your Work From the Shell Additional Links: Python’s reduce(): From Functional to Pythonic Style – Real Python Episode #116: Exploring Functional Programming in Python With Bruce Eckel – The Real Python Podcast Lightning talk at PyCascades 2023 - Pooch: A friend to fetch your data files - YouTube Secure copy protocol - Wikipedia Level up your Python skills with our expert-led courses: Python's map() Function: Transforming Iterables Python Basics: Strings and String Methods Unicode in Python: Working With Character Encodings Support the podcast & join our community of Pythonistas
undefined
Apr 7, 2023 • 50min

Automate Processes and Distribute Python Tools With RPA and RCC

Are you exploring automation of your repetitive business tasks with Python? How are you going to share your helpful tools with co-workers? This week on the show, Sampo Ahokas from Robocorp is here to discuss robotic process automation (RPA) and distribution of these robots. Sampo is a co-founder and VP of engineering at Robocorp. We talk about using Robot Framework, an open-source RPA tool, to develop bots that implement your existing Python skills. Sampo shares example projects and additional resources for new users. We discuss the typical difficulties of sharing automation tools with a team and trying to avoid the dreaded “works on my machine” problem. Sampo describes how their group worked to develop a Conda-based tool for creating shareable packages and environments. Course Spotlight: Manipulating ZIP Files With Python In this video course, you’ll learn how to manipulate ZIP files using Python’s zipfile module from the standard library. Through hands-on examples, you’ll learn how to read, write, compress, and extract files from your ZIP files quickly. Topics: 00:00:00 – Introduction 00:02:25 – What is robotic process automation (RPA)? 00:03:55 – What do you mean by automation? 00:05:56 – Additional examples of RPA 00:07:41 – What is the RPA platform? 00:10:06 – What is the Robot Framework? 00:12:42 – Robocorp portal 00:14:09 – Python integration 00:17:06 – Sponsor: REVSYS 00:17:56 – Distribution with RCC 00:20:24 – Why does the system use conda under the hood? 00:24:12 – What hurdles did you face creating RCC? 00:27:51 – Steps for the end user 00:30:52 – Making the project open source 00:35:20 – Video Course Spotlight 00:36:42 – Tips for someone starting with automation 00:42:17 – Integration with VSCode 00:44:18 – Intelligent document processing (IDP) 00:45:36 – What are you excited about in the world of Python? 00:47:46 – What do you want to learn next? 00:48:13 – How can people follow the project online? 00:48:46 – Thanks and goodbye Show Links: Open Source RPA - Intelligent Automation Software - Robocorp What is RPA? A breakdown of RPA and its benefits - Robocorp Robocorp Portal RPA Documentation, Training Courses, Certificates - Robocorp documentation rpaframework: Collection of open-source libraries and tools for Robotic Process Automation (RPA), designed to be used with both Robot Framework and Python rcc: RCC is a set of tooling that allows you to create, manage, and distribute Python-based self-contained automation packages - or ‘robots’ as we call them. Conda - documentation QuantStack micromamba - documentation Low-code RPA Development Solution | Automation Studio - Robocorp Bolster IDP With Robotic Process Automation - DZone Visual Studio Code - Code Editing. Redefined Welcome to LangChain - 🦜🔗 LangChain 0.0.131 Sampo Ahokas - LinkedIn Robocorp (@RobocorpInc) - Twitter Community for Software Robot Developers RPA Resources, White Papers and Case Studies - Robocorp Level up your Python skills with our expert-led courses: Reading and Writing Files in Python Testing Your Code With pytest Manipulating ZIP Files With Python Support the podcast & join our community of Pythonistas

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app