Python Bytes Crossover 2023
- Michael #1: Hatch v1.8
- Michael #3: Steering Council 2024 Term Election Results
- Extras
- Joke: Joke: The dream is dead?
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @mkennedy@fosstodon.org
- Brian: @brianokken@fosstodon.org
- Show: @pythonbytes@fosstodon.org
Join us on YouTube at pythonbytes.fm/live to be
part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too.
Michael #1: Hatch v1.8
- Hatch now manages installing Python for you.
- Hatch can build .app and .exe stand-alone binaries for you
- The macOS ones are signed (signed!)
- Discussion here
Brian #2: svcs : A Flexible Service Locator for Python
- Hynek
- A library to help structure and test Python web applications.
- “svcs (pronounced services) is a dependency container* for Python. It gives you a central place to register factories for types/interfaces and then imperatively acquire instances of those types with automatic cleanup* and **health checks.”
- “Benefits:
- Eliminates tons of repetitive boilerplate code,
- unifies acquisition* and cleanups of services,
- provides full static type safety for them,
- simplifies testing through loose coupling,
- improves live introspection and monitoring* with **health checks.”
- Hynek has started a YouTube channel, and is starting with an explanation of svcs.
- Yes, Hynek, we want more videos. I like that it’s not a beginner level.
- My request for future videos: just past beginner, and also intermediate level.
- There are plenty of basics videos out there, not as many filling the gaps between beginner and production.
Michael #3: Steering Council 2024 Term Election Results
- The 2024 Term Python Steering Council is:
- Pablo Galindo Salgado
- Gregory P. Smith
- Emily Morehouse
- Barry Warsaw
- Thomas Wouters
- Full results are available in PEP 8105 .
- How do you become a candidate?
- Candidates must be nominated by a core team member. If the candidate is a core team member, they may nominate themselves.
Brian #4: Python protocols. When to use them in your projects to abstract and decoupling
- Carlos Vecina
- “Protocols are an alternative (or a complement) to inheritance, abstract classes and Mixins.”
- Understanding interactions between ABC, MixIns and Protocols in Python
- With examples
Extras
Brian:
- Donations. It’s a decent time of the year to donate to projects that help you
- Python Software Foundation
- Django Software Foundation
- Python Bytes
- Also, look for “Sponsor this project” links in GitHub for projects you depend on.
Michael:
- Mastodon guidelines (mine):
- If you have a picture and description, I’ll probably follow you back
- If you have posts that seem relevant +1
- If you have a verified webpage +1
- If your account is private, won’t. I don’t understand really since private group messages already exist and the profile itself is public.
- Speaking of Mastodon. I had a productive conversation with the PSF and others around masks and conferences.
- Dropbox spooks users by sending data to OpenAI for AI search features
- There was a comment in the above article to the effect of “Once you give your data to a third party (even trusted like Dropbox), you no longer control that data.” That sent me searching and thinking…
- sync.com? proton drive (discount code)? nextcloud? filen.io? icedrive.net?
- ownCloud’s recent CVE makes me a bit nervous of self-hosted options.
- Either way, Cryptomator is very interesting.
- Beyond privacy, this got me thinking, just how many hours of dev time have been diverted to add mediocre-at-best AI features to everything?
- I’m doing a big digital decluttering and have lots to say on that soon.
- Not submitting my talks to PyCascades this year.
- But I did submit 3 talks to PyCon US. 🤞
- I will be giving the keynote at PyCon Philippines.
Joke: The dream is dead?
Episode Deep Dive
Guests
Brian Okken is a seasoned Python developer and the co-host of the "Python Bytes" podcast. With a strong background in software development and a passion for creating efficient and scalable Python applications, Brian brings valuable insights into Python’s evolving ecosystem. His expertise in testing, dependency management, and modern Python practices makes him an essential voice in the Python community.
Michael Kennedy is a renowned Python developer, educator, and the host of the "Talk Python To Me" podcast. With over a decade of experience in the Python community, Michael is passionate about teaching and empowering developers through his extensive range of courses at Talk Python Training. His expertise spans across Python web development, data science, and software engineering best practices, making him a beloved figure among Python enthusiasts.
Key Points and Takeaways
Hatch v1.8: Enhancing Python Project Management
Hatch is a modern Python packaging tool comparable to Flit, PDM, and Poetry. In version 1.8, Hatch has expanded its capabilities to manage not just Python projects but also the Python interpreter itself. This evolution addresses the ongoing debate within the Python community about whether environment management should focus solely on projects or include the Python runtime.
- PyApp Integration: Introduced as part of Hatch v1.8, PyApp is a runtime installer for Python projects written in Rust. It allows Python applications to be distributed as standalone executables (.exe for Windows, .app for macOS), simplifying deployment for end-users.
- Cross-Platform Support: PyApp provides signed installers for multiple platforms, ensuring security and reducing installation barriers.
- Performance Improvements: Hatch now includes a hashing mechanism for dependencies, significantly speeding up virtual environment activation by avoiding unnecessary checks.
- Discussion: For more details, join the discussion here.
svcs: A Flexible Service Locator for Python
svcs is a versatile service locator designed to streamline dependency management in Python applications. While primarily intended for web applications, its flexible architecture makes it suitable for various types of projects.
- Dependency Injection Alternative: svcs offers a different approach compared to traditional dependency injection, focusing on inversion of control without requiring base class inheritance.
- Comprehensive Documentation: The project includes extensive documentation with examples across frameworks like FastAPI, Flask, Pyramid, and Starlet, making it easy to integrate into existing projects.
- Benefits:
- Eliminates tons of repetitive boilerplate code.
- Unifies acquisition and cleanups of services.
- Provides full static type safety.
- Simplifies testing through loose coupling.
- Improves live introspection and monitoring with health checks.
- Community Engagement: Hynek has started a YouTube channel with an explanation of svcs. Future videos are requested to focus on intermediate levels to fill gaps between beginner and production.
Steering Council 2024 Election Results
The Python Steering Council for the 2024 term has been elected, bringing fresh leadership to guide Python's future development. The newly elected members are:
- Pablo Galindo Salgado
- Gregory P. Smith
- Emily Morehouse
- Barry Warsaw
- Thomas Waters
These leaders are well-respected within the community, and their election ensures continued robust governance for Python's evolution. For detailed voting results and candidate information, refer to PEP 8105.
- Becoming a Candidate: Candidates must be nominated by a core team member. If the candidate is a core team member, they may nominate themselves.
Understanding Python Protocols
Python protocols, introduced in Python 3.8, are a powerful feature for enhancing type hinting and ensuring code reliability. They allow developers to define expected behaviors without enforcing strict inheritance hierarchies.
- Defining Protocols: By inheriting from
Protocol
, developers can specify method signatures that implementing classes must adhere to, enabling more flexible and maintainable code structures. - Type Checking Enhancements: Tools like PyCharm can leverage protocols to perform more accurate type checking, ensuring that objects conform to expected interfaces without requiring explicit inheritance.
- Comparison with Duck Typing: While Python's duck typing allows for flexible code, protocols provide a way to enforce interface contracts at the type-checking level, bridging the gap between dynamic typing and static type safety.
- Article Reference: For an in-depth understanding, read Python protocols: When to use them in your projects to abstract and decoupling.
- Defining Protocols: By inheriting from
Posit Connect: Streamlining Deployment
Posit Connect, sponsored by the episode, is a deployment platform from the makers of Shiny. It supports a wide range of Python tools and frameworks, including Streamlit, Dash, Shiny for Python, Bokeh, FastAPI, Flask, and more.
- Comprehensive Support: Posit Connect simplifies the deployment process for various Python-based data projects, enabling developers to publish, share, and manage their applications with ease.
- Enterprise-Ready Features: With robust security and IT compliance features, Posit Connect is suitable for enterprise environments, ensuring that deployments meet organizational standards.
- Free Trial Available: Developers can try Posit Connect for free for three months by visiting talkpython.fm/posit.
Community Engagement on Mastodon
The hosts discuss their experiences with Mastodon, emphasizing the importance of meaningful interactions and the challenges of connecting with new followers who may have incomplete profiles.
- Building Connections: Engaging with the Python community on Mastodon fosters deeper relationships and collaborative opportunities.
- Profile Best Practices: Encouraging followers to maintain complete and consistent profiles across platforms helps in building trust and recognition within the community.
- Mastodon Guidelines:
- If you have a picture and description, you’ll probably follow back.
- If you have relevant posts, it’s a plus.
- If you have a verified webpage, it’s another plus.
- Private accounts are less likely to be followed back due to unclear intentions.
Dropbox's New AI Features and Privacy Concerns
Dropbox has introduced new AI-driven features that can automatically process and send private documents to OpenAI. While these features enhance functionality, they raise privacy concerns regarding data handling and user consent.
- User Control: It's crucial for users to review and adjust their privacy settings to ensure that sensitive information remains secure.
- Alternatives for Enhanced Privacy: The discussion highlights alternatives like end-to-end encrypted cloud storage solutions to maintain data privacy.
- Relevant Article: Read more about it on Ars Technica.
Encrypted Cloud Storage Solutions
To address privacy concerns with cloud storage, the hosts explore various encrypted storage options:
- Cryptomator: An open-source tool that provides client-side encryption for cloud storage, ensuring that only users can access their data. Visit Cryptomator for more information.
- Proton Drive: Offers secure, encrypted cloud storage with user-controlled encryption keys, suitable for sensitive documents. Check out Proton Drive with a discount code.
- Sync.com: Provides end-to-end encrypted storage with a focus on simplicity and security. Learn more at Sync.com.
- Nextcloud: A self-hosted solution for those seeking more control, though recent vulnerabilities like ownCloud’s CVE-2023-49103 raise security concerns.
- IceDrive: The next generation of cloud storage with encryption. Visit IceDrive.
- Filestream: Explore at filen.io.
These solutions empower users to safeguard their data against unauthorized access, even when using third-party cloud services.
Digital Decluttering and AI Feature Concerns
The hosts express concerns about the increasing integration of AI features into various tools, questioning the allocation of development time towards adding mediocre AI functionalities instead of improving core features. Additionally, there's a focus on personal digital decluttering to enhance productivity and security.
Keynote at PyCon Philippines 2024
Michael Kennedy shares his excitement about delivering the keynote at PyCon Philippines 2024 in February. This opportunity allows him to engage with the local Python community and share insights from the year's discussions, further strengthening the global Python network.
Quotes and Stories
On Hatch's Evolution:
"Hatch has gone in that direction of now Hatch manages Python, not just Python projects. And there's this thing to solve this problem in the form of PyApp." — Michael Kennedy
On svcs Benefits:
“svcs (pronounced services) is a dependency container for Python. It gives you a central place to register factories for types/interfaces and then imperatively acquire instances of those types with automatic cleanup and health checks.” — Brian Okken
Domain Renewal Anecdote:
"So I had about eight that I was not really using last year... Somebody could have paid you $5,000, but they instead got it for like 20 bucks or something." — Michael Kennedy
Overall Takeaway
The Python Bytes Crossover 2023 episode serves as a comprehensive wrap-up of the year’s advancements and community developments in the Python ecosystem. From the enhanced capabilities of Hatch and the innovative service locator tool svcs to the election of new Python Steering Council members, listeners gain valuable insights into the tools and governance shaping Python’s future. The discussion on Python protocols underscores the language’s commitment to flexibility and type safety, while conversations around encrypted cloud storage emphasize the community’s dedication to data privacy and security. Additionally, the episode highlights the importance of community engagement through platforms like Mastodon and addresses contemporary concerns regarding AI integration in development tools. Celebrating both technical advancements and the vibrant Python community, this episode inspires developers and data scientists to continue building, contributing, and safeguarding their projects within the ecosystem.
Relevant Links
- Hatch
- PyApp
- svcs
- PEP 8105: Steering Council Elections
- Python Protocols Article by Carlos Vecina
- Posit Connect
- Talk Python Training
- Cryptomator
- Proton Drive
- Sync.com
- Python Bytes Podcast
- PyCon Philippines 2024
- Dropbox AI Features Article
- ownCloud’s CVE-2023-49103
- IceDrive
- Filestream
- The Complete pytest Course
- Python Software Foundation Donations
- Django Software Foundation Fundraising
- Python Bytes Patreon
- Sponsor Projects on GitHub
- PyCon Cascades
- Sponsor this project on GitHub