Planet Python

Subscribe to Planet Python feed
Planet Python - http://planetpython.org/
Updated: 1 day 49 min ago

TechBeamers Python: Understanding the Floor Function in Python

Wed, 2023-12-27 14:24

The floor function in Python is a mathematical operation that rounds down a given number to the nearest integer that is less than or equal to the original number. In this tutorial, we will delve into the floor function, exploring its usage, abilities, and various methods for implementation. We will cover the basics of the […]

The post Understanding the Floor Function in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: Python Str Function Explained in Detail

Wed, 2023-12-27 11:24

In this tutorial, we will delve into the str function in Python to understand its capabilities, usage, and practical applications. Python, being a versatile and user-friendly programming language, offers a plethora of built-in functions that simplify various tasks. One such fundamental function is str, which plays a crucial role in working with strings. Understanding the […]

The post Python Str Function Explained in Detail appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: How to Get the Working Directory in Python

Wed, 2023-12-27 09:37

There are multiple ways to get the working directory in Python. Let’s check them out one by one. Later, you can decide which is the most suitable for your case. What are Different Methods to Get the Working Directory in Python? While working on different projects you need to get the current directory in Python […]

The post How to Get the Working Directory in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

Doug Hellmann: virtualenvwrapper 6.0.0

Wed, 2023-12-27 07:28
What’s Changed Breaking Changes formally drop Python 2 support remove toggleglobalsitepackages command, since virtualenv seems to have removed that capability\ drop ksh support by @dhellmann in https://github.com/python-virtualenvwrapper/virtualenvwrapper/pull/27 remove python2 from startup logic for finding the python interpreter by @dhellmann in https://github.com/python-virtualenvwrapper/virtualenvwrapper/pull/28 Updated tested Python versions in README. by @carltongibson in https://github.com/python-virtualenvwrapper/virtualenvwrapper/pull/37 Features add a –version option to the hook loader by @dhellmann in https://github.com/python-virtualenvwrapper/virtualenvwrapper/pull/43 Miscellaneous Improvements switch to implicit namespaces by @dhellmann in https://github.
Categories: FLOSS Project Planets

TechBeamers Python: How to Find a Job in Python – Things You Need to Do

Wed, 2023-12-27 06:20

Are you eager to find a job in Python? Whether you’re a recent graduate or an experienced professional, navigating the job market in the Python ecosystem can be both challenging and rewarding. Your Essential Guide to Find a Job in Python In this extensive tutorial, we’ll explore various aspects of how to find jobs in […]

The post How to Find a Job in Python – Things You Need to Do appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: 20 Real-time Problems based on Concatenated Strings in Python with Solutions

Wed, 2023-12-27 01:58

Here are 20 real-time problems related to concatenated strings in Python, along with their sample solutions: Each problem revolves around concatenated strings, ranging from the straightforward to the more intricate. This isn’t a lecture; consider it a one-on-one session to enhance your Python skills, tackling string-related issues head-on. Let’s begin and learn how to concatenate […]

The post 20 Real-time Problems based on Concatenated Strings in Python with Solutions appeared first on TechBeamers.

Categories: FLOSS Project Planets

Mark Dufour: Shed Skin restricted-Python-to-C++ compiler 0.9.6

Tue, 2023-12-26 19:37

I recently decided to sit down and finally port Shed Skin, an experimental restricted-Python-to-C++ compiler in the works since 2005 or so, to Python3. Three painful months and a total diff of 50k lines later, everything now works with Python3 (Shed Skin itself, and all tests and examples..)

This does not mean that every Python3 feature is supported, but what was there now at least works fine with Python3.. For example, unicode is still restricted to 1-byte characters, and there is no support (yet) for nice new features such as f-strings. Python2 support has been dropped with the new release, and subsequent releases should add support for various new Python3 features.

The following people have contributed along the way:

  • Johan Kristensen (large patch for moving from compiler.ast to ast, still on Python2)
  • Shakeeb Alireza (extension module support for Python3, ported many examples, improved OSX support, and various code cleanups)
  • Folkert van Heusden (some fixes on the C++ side, move to c++17)
  • Jeremie Roquet, Thomas Spura, Paul Boddie and others who kept doing maintenance on the project in my absence

I started work on the port after realizing that Shed Skin was being removed from distributions, especially Debian, as it was still tied to Python2, and I really want to keep Shed Skin in a working state if possible.

So what about the future of the project? Not really sure, but I'm happy to sit down again in a few months to prepare a new release. Any feedback on what to support or improve would be very welcome!

For fun, here are screenshots of some of the Shed Skin example programs (in total 75 working example programs can be found on the github site):

Categories: FLOSS Project Planets

Seth Michael Larson: AI and Wonder

Tue, 2023-12-26 19:00
AI and Wonder AboutBlogNewsletterLinks AI and Wonder

Published 2023-12-27 by Seth Larson
Reading time: minutes

On Christmas Day, Brandt Bucher, a CPython core developer, created a wonderful thing. Brandt wrote a pull request description for the new copy-and-patch JIT compiler for CPython in the style of the poem “A Visit from St. Nicholas” that describes the changes being made (with references!) and rhymes all the way through. Truly a work of art!

This work undoubtedly took a while to complete and was a source of joy for many people who read the whole thing. This work of art received hundreds of reactions on GitHub, was #1 on HackerNews with 260+ points, and a bunch of love when I shared the URL on Mastodon.


Personal opinions inbound! Vote in this poll before proceeding with the article.

Then I saw a comment that implied being able to have this sort of poem on every pull request might be desirable, or “even more amazing”, and could be done using AI. To experiment with what that might feel like I fired up everyone's favorite GPT and provided the following prompt as input:

Create a rhyming poem in the style of "A Visit from St Nicholas" about adding a Just-in-Time compiler to CPython

Sure enough, in a few moments I received a satisfactory answer including no less than two “jubilant cheers” from Guido. I felt no sense of wonder in reading the generated poem, but with some editing its unclear whether I would know that a single instance wasn't created using a tool instead of by hand. If there were thousands of these works being created within seconds though it would not be hard to figure out that AI was involved.

Wonder or awe is a deeply personal feeling and people experience it differently. It's a feeling that appears to have positive effects on humans, so I am dismayed by the diminished sense of wonder caused by the direction that some digital art is taking. There are knock-on effects too, attempts to blend in AI works amongst human works makes it more difficult than ever to believe or appreciate what you see on the internet at first glance.

This is only my own opinion and there will likely be varied thoughts on this phenomenon. Regardless, I'll continue to support the artists that I enjoy the most and highlighting wondrous works created by humans.

Thanks for reading! ♡ Did you find this article helpful and want more content like it? Get notified of new posts by subscribing to the RSS feed or the email newsletter.

This work is licensed under CC BY-SA 4.0

Categories: FLOSS Project Planets

PyCoder’s Weekly: Issue #609 (Dec. 26, 2023)

Tue, 2023-12-26 14:30

#609 – DECEMBER 26, 2023
View in Browser »

A lot has happened in the Python ecosystem in 2023 and with our final issue of the year, we’re recapping the most popular links in PyCoders this year. That’s right, the most clicked articles, discussion, and the five most clicked projects as well.

Here’s to you, dear reader. Thanks for continuing to be with us at PyCoder’s Weekly. I’m sure 2024 will be just as interesting as 2023. And if in 2024 you come across a cool article or a project you think deserves notice, send it to us.

Happy Pythoning!

— The PyCoder’s Weekly Team
    Christopher Trudeau, Curator
    Dan Bader, Editor

Design and Guidance: Object-Oriented Programming in Python

In this video course, 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.
REAL PYTHON course

Python 3.12 Preview: More Intuitive and Consistent F-Strings

In this tutorial, you’ll preview one of the upcoming features of Python 3.12, which introduces a new f-string syntax formalization and implementation. The new implementation lifts some restrictions and limitations that affect f-string literals in Python versions lower than 3.12.
REAL PYTHON

Learning About Code Metrics in Python With Radon

Radon is a code metrics tool. This article introduces you to it and teaches you how you can improve your code based on its measurements.
MIKE DRISCOLL

Speeding Up Your Code When Multiple Cores Aren’t an Option

Parallelism isn’t the only answer: often you can optimize low-level code to get significant performance improvements.
ITAMAR TURNER-TRAURING

Discussions “Why Python Is Terrible”

HACKER NEWS

Kill a Developer in 4 Words or Less 😂

Some favourites: “Let’s deploy this Friday!”, “Works on my machine!”, “You’ve got merge conflicts”
TWITTER

Python Jobs Senior Python Architect and Tech Lead (America)

Six Feet Up

Python Tutorial Editor (Anywhere)

Real Python

Software Engineer - Intern (Summer 2024) (Dallas, TX, USA)

Causeway Capital Management

More Python Jobs >>>

Articles & Tutorials How to Catch Multiple Exceptions in Python

In this how-to tutorial, you’ll learn different ways of catching multiple Python exceptions. You’ll review the standard way of using a tuple in the except clause, but also expand your knowledge by exploring some other techniques, such as suppressing exceptions and using exception groups.
REAL PYTHON

78% MNIST Accuracy Using GZIP in Under 10 Lines of Code

MNIST is a collection of hand-written digits that is commonly used to play with classification algorithms. It turns out that some compression mechanisms can double as classification tools. This article covers a bit of why with the added code-golf goal of a small amount of code.
JAKOBS.DEV

ChatGPT: Your Personal Python Coding Mentor

Large language models have gained popularity since OpenAI released ChatGPT. In this tutorial, you’ll learn how to use ChatGPT as your Python coding mentor. You’ll study a variety of use cases, learn how to interpret results, and learn to beware of incorrect and irrelevant responses.
REAL PYTHON

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.
REAL PYTHON

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.
JEREMY HOWARD

6 Cool Things You Can Do With the functools Module

The functools module in the standard library has all sorts of useful bits and pieces. This article talks about six of them: caching, writing fewer dunder methods, freeze functions, generic functions, better decorators, and reduce().
BOB BELDERBOS

Discover bpython: A Python REPL With IDE-Like Features

In this tutorial, you’ll learn about bpython, an alternative Python REPL that brings code suggestions and many other IDE-like features to the terminal. Once you discover how much bpython can improve your productivity, you’ll never want to return to using the vanilla Python REPL again.
REAL PYTHON

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.
REAL PYTHON

How to Annotate Methods That Return self

In this tutorial, you’ll learn how to use the Self type hint in Python to annotate methods that return an instance of their own class. You’ll gain hands-on experience with type hints and annotations of methods that return an instance of their class, making your code more readable and maintainable.
REAL PYTHON

Boost Your Coding Productivity With Ptpython

Learn how to enhance your Python development workflow with auto-completion, syntax highlighting, history navigation, and more. In this tutorial, you’ll walk through the fundamentals of ptpython, covering installation, basic usage, and advanced features.
REAL PYTHON

AsyncIO: Why I Hate It

Charles is the creator of Peewee ORM and often gets the question “when will it support asyncio?” In this opinion piece he talks about why he doesn’t like asyncio and the alternatives he prefers.
CHARLES LEIFER opinion

Projects & Code nicegui: Create Web-Based UI With Python

GITHUB.COM/ZAUBERZEUG

Comprehensive Python Cheatsheet

GTO76.GITHUB.IO

csvkit: A Suite of CSV Utilities

GITHUB.COM/WIRESERVICE

pynimate: Python Package for Statistical Data Animations

GITHUB.COM/JULKAAR9

Cross Platform GUI Framework Based on HTML/CSS

GITHUB.COM/SCRIPTIOT • Shared by dragondjf

Happy Pythoning!
This was PyCoder’s Weekly Issue #609.
View in Browser »

[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week >> Click here to learn more ]

Categories: FLOSS Project Planets

TechBeamers Python: How to Get the Current Timestamp as a String in Python

Tue, 2023-12-26 12:49

Dealing with timestamps is common in programming, especially when you need to record events or log information. In Python, there are various ways to get the current timestamp as a string. In this simple guide, we’ll explore different methods with examples that anyone can understand. 7 Ways to Get the Current Timestamp in Python Before […]

The post How to Get the Current Timestamp as a String in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: How to Check If Python List is Empty

Tue, 2023-12-26 07:05

Checking whether a Python list is empty is a fundamental task in programming. An empty list often signals the absence of data or the need for specific handling. In this tutorial, we will explore various methods to check if a Python list is empty, covering different aspects and providing multiple examples. Understanding these techniques is […]

The post How to Check If Python List is Empty appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: Multiple Ways to Loop Through a Dictionary in Python

Tue, 2023-12-26 00:09

Dictionaries are a fundamental data structure in Python, offering a powerful way to store and organize data. When it comes to working with dictionaries, one common task is iterating through their key-value pairs. In this tutorial, we will delve into various methods to loop through a dictionary in Python, exploring different aspects and providing multiple […]

The post Multiple Ways to Loop Through a Dictionary in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: A Beginner’s Guide to Linked Lists in Python

Mon, 2023-12-25 15:23

Linked lists are like a series of connected boxes, where each box holds a piece of information and points to the next box. They’re a cool way to organize data in Python. Let’s check out how to use linked lists in Python in a simple and friendly way. Understanding Linked Lists What is a Linked […]

The post A Beginner’s Guide to Linked Lists in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: Python vs C++ – Is Python or C++ Better?

Mon, 2023-12-25 12:48

Python and C++ are both powerful programming languages, but they cater to different needs and come with distinct features. Deciding which language is better depends on various factors, including the nature of the project, performance requirements, ease of development, and personal preferences. In this tutorial, we will explore different aspects of Python and C++ to […]

The post Python vs C++ – Is Python or C++ Better? appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: 10 Python Beginner Projects for Ultimate Practice

Mon, 2023-12-25 10:59

In this tutorial, we’ll explore a variety of Python beginner projects that cover different aspects of programming. As you know programming is best learned by doing, and Python is an excellent language for beginners due to its simplicity and readability. Each project here will give you new concepts and build on the skills you’ve acquired. […]

The post 10 Python Beginner Projects for Ultimate Practice appeared first on TechBeamers.

Categories: FLOSS Project Planets

TechBeamers Python: Beginner’s Guide to Datetime Format in Python

Mon, 2023-12-25 07:02

Handling dates and times is a common task in programming, and Python’s datetime module provides a robust framework for working with these values. In this tutorial, we’ll explore how to use the datetime format in Python, covering the basics, custom formatting, localization, and parsing datetime strings. 1. Introduction to datetime Module Before diving into formatting, […]

The post Beginner’s Guide to Datetime Format in Python appeared first on TechBeamers.

Categories: FLOSS Project Planets

PyPy: PyPy v7.3.14 release

Sun, 2023-12-24 23:22
PyPy v7.3.14: release of python 2.7, 3.9, and 3.10

The PyPy team is proud to release version 7.3.14 of PyPy.

Hightlights of this release are compatibility with HPy-0.9, cffi 1.16, additional C-API interfaces, and more python3.10 fixes.

The release includes three different interpreters:

  • PyPy2.7, which is an interpreter supporting the syntax and the features of Python 2.7 including the stdlib for CPython 2.7.18+ (the + is for backported security updates)

  • PyPy3.9, which is an interpreter supporting the syntax and the features of Python 3.9, including the stdlib for CPython 3.9.18.

  • PyPy3.10, which is an interpreter supporting the syntax and the features of Python 3.10, including the stdlib for CPython 3.10.13.

The interpreters are based on much the same codebase, thus the multiple release. This is a micro release, all APIs are compatible with the other 7.3 releases. It follows after 7.3.13 release on Sept 29, 2023.

We recommend updating. You can find links to download the v7.3.14 releases here:

https://pypy.org/download.html

We would like to thank our donors for the continued support of the PyPy project. If PyPy is not quite good enough for your needs, we are available for direct consulting work. If PyPy is helping you out, we would love to hear about it and encourage submissions to our blog via a pull request to https://github.com/pypy/pypy.org

We would also like to thank our contributors and encourage new people to join the project. Since the last release we have contributions from three new contributors. PyPy has many layers and we need help with all of them: bug fixes, PyPy and RPython documentation improvements, or general help with making RPython's JIT even better.

If you are a python library maintainer and use C-extensions, please consider making a HPy / CFFI / cppyy version of your library that would be performant on PyPy. In any case, both cibuildwheel and the multibuild system support building wheels for PyPy.

What is PyPy?

PyPy is a Python interpreter, a drop-in replacement for CPython It's fast (PyPy and CPython 3.7.4 performance comparison) due to its integrated tracing JIT compiler.

We also welcome developers of other dynamic languages to see what RPython can do for them.

We provide binary builds for:

  • x86 machines on most common operating systems (Linux 32/64 bits, Mac OS 64 bits, Windows 64 bits)

  • 64-bit ARM machines running Linux (aarch64).

  • Apple M1 arm64 machines (macos_arm64).

  • s390x running Linux

PyPy support Windows 32-bit, Linux PPC64 big- and little-endian, and Linux ARM 32 bit, but does not release binaries. Please reach out to us if you wish to sponsor binary releases for those platforms. Downstream packagers provide binary builds for debian, Fedora, conda, OpenBSD, FreeBSD, Gentoo, and more.

What else is new?

For more information about the 7.3.14 release, see the full changelog.

Please update, and continue to help us make pypy better.

Cheers, The PyPy Team

Categories: FLOSS Project Planets

Armin Ronacher: The Life and Death of Open Source Companies

Sun, 2023-12-24 19:00

You likely know that I've contributed significantly to the Open Source community, that I work for an Open Source Company, that we got shit for calling ourselves Open Source and that we subsequently created a new license to address at least some of these concerns. I also shared my personal thoughts on that license recently which unfortunately promptly attracted a bunch more negative comments for that. That introduction might make me sound a tad bitter, so let's talk about something else.

This Christmas I received a 3D printer and I love it for two reasons. Firstly, it was an unexpected gift from my wonderful wife, who chose it. She organized me a brand new Bambu Lab A1 3D printer. It has been a few years since I toyed around with 3D printing and it was mostly in the context of other people assembling printers. That's because even though I love toying around with software, I cannot say the same for hardware. This printer, however, is remarkably easy to set up and use, significantly boosting my enjoyment in this hobby. For this purchase she had to balance my love for Open Source with user friendly technology and I think given the good experience, she chose well.

The printer comes with a brief guide for the initial setup. In about 15 minutes of removing some screws and mounting some components we were off to the races. The cloud account appears optional but after scanning a QR code I could operate it from my phone too. It's quick, it's super plug and play and it just feels like an incredibly well put together product.

Since I've had to leave the printer at home over the holidays, I've been engaging in related activities like reading up, creating models, and exploring the slicer software. Emotions surrounding this printer are charged. If you step into the wrong parts of the internet you find a lot of hate. Some of it might be warranted, but others just feels incredibly out of proportion. I've noticed a fair amount of controversy surrounding the printer online, largely centered on its Chinese origins, its optional cloud service, and its impact on the Open Source 3D printing community. I won't talk much about the China part [1] here, but I do want to talk about the cloud and license aspect.

The reason I even write about this printer is the licensing situation and a bit of a rant about Open Source communities. Here is what I believe is currently happening, and I'm saying this as a person that knew next to nothing until a few days ago about 3D printing: Bambu Labs is making some other players in that space reconsider Open Source.

Bambu entered the industry in a very different way than anyone else before. They offer a user friendly experience at a very attractive price point (lower than some of the competition). They also added built-in cloud service stuff and with a really good quality. But it's a space dominated by Open Source hardware and software. And they don't really do that. Bambu seems to add new people into the 3D printing community who don't don't care (or not as much) about Open Source. Yet Bambu heavily relied on Open Source software to put them on the map.

If you open their Bambu Studio, you can see that it's built on top of PrusaSlicer and SuperSlicer, both of which are Open Source. As both of those are licensed under AGPL (which is a very viral license), so is Bambu Studio. But none of the firmware or hardware designs of the Bambu printer are. In fact, Bambu apparently is also loading itself up with patents over in China, so they probably don't care about Open Source much at all. If I were Prusa (which in many ways was the user friendly, dominant player before) I wouldn't be very happy.

So let's discuss Prusa: The Bambu A1 competes with Prusa's MK4 model but is signficantly cheaper, faster and does more. For the price of one Prusa MK4 with shipping I could buy three Bambu A1 printers or two Bambu A2 printers plus the AMS addon which adds multi-color printing. There is absolutely no reason to buy a Prusa MK4 today unless you want to support Open Source or a European company (Prusa is from Czechia).

I was able tell that Prusa is reconsidering their Open Source approach and that with a few days as a member of this community because people are complaining (The MK4 firmware is not Open Source). Prusa is not hiding that they are reconsidering their ways thanks to a blog post by their founder about how they are reconsidering their Open Source ways:

[…] things we’ve been doing at Prusa Research for over ten years were only possible thanks to the great 3D printing community and open-source philosophy. However, the new printers and software releases have made me think again about the current state of open source in the 3D printing world. How sustainable it is, how our competitors deal with it, what it brings to the community, and what troubles us as developers. Consider this article as a call for discussion – as a kick-off that will (hopefully) open up a new perspective on the connection between open-source licensing, consumer hardware, and software development.

[…]

The open-source movement relies on the fact that everyone involved plays by the same rules.

—Josef Průša in The state of open-source in 3D printing in 2023

I strongly recommend reading that entire post, because it captures quite well the challenging situation that Open Source companies are in. My take on this is very much the same as for our own situation at Sentry: building a true Open Source company is hard. Under the OSI definition of Open Source you are put at a massive disadvantage as you are prevented from putting protections in place that shield you from other competitors in that place that chose not to play by the same rules but can leverage your source.

Historically the GPL has provided some protections here, but in all reality in the modern world it doesn't. That's because distribution is really no longer the defining element. Yes, Bambu Studio has to be AGPL licensed because so is what it's built on, but in many ways that's just the enabler for a proprietary system that they have in place. They have reaped years of benefits from this, benefiting from the work of others. Some paid, but also from many who contributed for free.

Here is what I think would be a negative outcome: if this situation forces companies like Prusa to abandon their Open Source practices.

However, I believe this situation reaffirms my belief that licenses like our FSL (TL;DR: it includes a two-year commercial non-compete period, after which it transitions to either MIT or Apache 2, depending on the choice) are a viable alternative, even though they are not considered Open Source by today's definition. Because one thing is absolutely clear to me: Bambu carries inherent risk for me as a user. They manufacture the parts and provide the firmware.

If they go out of business, owning their device becomes much riskier than owning printers from the Open Source community. For an end-user, having an Open Source license is a far stronger proposition. That's why I find the comparison of the FSL to a “source available” or even “proprietary” license somewhat insulting. A hypothetical FSL-inspired license for Open Source hardware would grant a hardware company a limited-time non-compete advantage over other players in the space, while giving users and the community the assurance that they hold the keys after two years.

The world around us is changing, and so must we as the Open Source community. Software distribution is no longer the main focus, with much emphasis now on services. The situation also changes for successful Open Source hardware communities. Their innovations are slowly reaching more users, many of whom do not value Open Source as much. In some ways, the protections in Open Source that worked in a commercial context are no longer effective.

What Bambu has done — and which I believe will be appreciated in the long term — is to make their products more accessible to a broader audience. They introduced 3D printing to people who were previously unwilling to invest the time. This means there's more potential for profit for everyone involved, but it also means that it will be harder for Open Source to compete, especially if Open Source entities don't get a grip of their user experience and business models. As a user, I wish I could have the Bambu experience with an Open Source-like model, where the risk is managed over the long term, while allowing the companies that create these products to pay their employees and continue innovating.

[1]If you do care about my opinion here: I have no business with China. In some ways if I were to have to worry about something from a government, I care the least about China. The US and my own one can cause a lot more problems to me. If I were to never be able to go to China again, very little in my life would change.
Categories: FLOSS Project Planets

Brett Cannon: State of standardized lock files: December 2023

Sun, 2023-12-24 17:05

Back in October, I released mousebender 2023.2. The biggest change was adding support for PEP 714 (which unless you&aposre running a package index you don&apost need to know about it). The other small thing was adding ProjectFileDetails as a union of typed dicts to make it easier to write typed code that processes individual files found on a package index. This means mousebender now supports all the standards around package indexes.

All of this was to support my work towards implementing a resolver since it needs to be able to find out what files are available. I&aposm still slowly plugging away at implementing the abstract API of resolvelib&aposs provider API, but it&aposs slow going and thus why this update is a bit light compared to the August one.

Categories: FLOSS Project Planets

James Bennett: Know your Python container types

Sun, 2023-12-24 16:08

This is the last of a series of posts I’m doing as a sort of Python/Django Advent calendar, offering a small tip or piece of information each day from the first Sunday of Advent through Christmas Eve. See the first post for an introduction.

Python contains multitudes

There are a lot of container types available in the Python standard library, and it can be confusing sometimes to keep track of them all. So since it’s …

Read full entry

Categories: FLOSS Project Planets

Pages