Language Selection

English French German Italian Portuguese Spanish

Programming With Python (LWN)

Filed under
Development
  • Unplugging old batteries

    Python is famous for being a "batteries included" language—its standard library provides a versatile set of modules with the language—but there may be times when some of those batteries have reached their end of life. At the 2018 Python Language Summit, Christian Heimes wanted to suggest a few batteries that may have outlived their usefulness and to discuss how the process of retiring standard library modules should work.

    The "batteries included" phrase for Python came from the now-withdrawn PEP 206 in 2006. That PEP argued that having a rich standard library was an advantage for the language since users did not need to download lots of other modules to get real work done. That argument still holds, but there are some modules that are showing their age and should, perhaps, be unplugged and retired from the standard library.

  • Advanced computing with IPython

    If you use Python, there's a good chance you have heard of IPython, which provides an enhanced read-eval-print loop (REPL) for Python. But there is more to IPython than just a more convenient REPL. Today's IPython comes with integrated libraries that turn it into an assistant for several advanced computing tasks. We will look at two of those tasks, using multiple languages and distributed computing, in this article.

    IPython offers convenient access to documentation, integration with matplotlib, persistent history, and many other features that greatly ease interactive work with Python. IPython also comes with a collection of "magic" commands that alter the effect of single lines or blocks of code; for example, you can time your code simply by typing %%time at the prompt before entering your Python statements. All of these features also work when using the Jupyter notebook with the IPython kernel, so you can freely switch between the terminal and the browser-based interface while using the same commands.

More Python

An introduction to the Tornado Python web app framework

  • An introduction to the Tornado Python web app framework

    Now let's look at a somewhat different option: the Tornado framework. Tornado is, for the most part, as bare-bones as Flask, but with a major difference: Tornado is built specifically to handle asynchronous processes. That special sauce isn't terribly useful in the app we're building in this series, but we'll see where we can use it and how it works in a more general situation.

    Let's continue the pattern we set in the first two articles and start by tackling the setup and config.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

Antergos Linux Project Ends

What started as a summertime hobby seven years ago quickly grew into an awesome Linux distribution with an even more awesome community around it. Our goal was to make Arch Linux available to a wider audience of users by providing a streamlined, user friendly experience including a safe place for users to communicate, learn, and help one another. There have been 931,439 unique downloads of Antergos since 2014 (when we began keeping track). We think it’s safe to say we’ve accomplished our goal. Today, we are announcing the end of this project. As many of you probably noticed over the past several months, we no longer have enough free time to properly maintain Antergos. We came to this decision because we believe that continuing to neglect the project would be a huge disservice to the community. Taking this action now, while the project’s code still works, provides an opportunity for interested developers to take what they find useful and start their own projects. For existing Antergos users: there is no need to worry about your installed systems as they will continue to receive updates directly from Arch. Soon, we will release an update that will remove the Antergos repos from your system along with any Antergos-specific packages that no longer serve a purpose due to the project ending. Once that is completed, any packages installed from the Antergos repo that are in the AUR will begin to receive updates from there. Read more Also: Arch-Based Antergos Linux Distribution Calls It Quits

Sad News - Martin Schwidefsky

We are devastated by the tragic death of Martin Schwidefsky who died in an accident last Saturday. Martin was the most significant contributor to the initial s390 port of the Linux Kernel and later the maintainer of the s390 architecture backend. His technical expertise as well as his mentoring skills were outstanding. Martin was well known for his positive mindset and his willingness to help. He will be greatly missed. Read more

today's leftovers

  • This Week Twitter Taught Me: Thunderbird is Go, But Windows Text Editors are Not!
    Although it’s proving difficult to stay on (Linux related) topic, this series has proven a great success in only 3 weeks — so much so that I’m planning to launch three separate spin-offs! I mean, I might as well milk the franchise for all I can while the udders drip with goodwill, right? Keep an eye out for “This Week My Spam Folder Taught Me“, “This Fortnight a Disqus Bot Taught Me” (spoiler: bit repetitive that one) and, to serve the overlooked people-who-read-this-site-whilst-diving niche, “This Month Diving Taught Me”. I wouldn’t get your hopes up for the latter, though. I can’t swim, let alone dive…
  • Timetable Scheduler App For Linux
    Timetable is a scheduling app available on flathub repositories. The app is maintained by the Elementary OS team and thus it’s User Interface looks like its own native OS. Might look a bit out of place on GNOME, KDE, Cinnamon, etc but still yet the app works like a charm. Read on below to get more done with Timetable.
  • Juan Luis Baptiste : New docker images for upcoming mageia 7
    I have added new docker images for the upcoming mageia 7 release. Thanks to the latest work on our image build tools, the images are available in all architectures mageia 7 supports: x86_64 armv7hl aarch64
  • Manas and Marek: Improving Fedora release process
    Manas Mangaonkar (pac23) is working on the Change Management Tool, a tool for the Fedora Program Managers and contributors to propose, edit, and approve changes per Fedora’s change process. He was selected for Google Summer of Code 2019. We asked Manas a few questions as he prepares for his next three months working with Ben Cotton, his mentor for the summer.
  • Candy Tsai: Outreachy 2019 March-August Internship – The Application Process
    Really excited to be accepted for the project “Debian Continuous Integration: user experience improvements” (referred to as debci in this post) of the 2019 March-August round of the Outreachy internship! A huge thanks to my company and my manager Frank for letting me do this since I mentioned it out of the blue. Thanks to the Women Techmakers community for letting me know this program exists.
  • Ubuntu Weekly Newsletter Issue 579
  • Sony's Deal With Microsoft Blindsided Its Own PlayStation Team [iophk: "RIP Playstation"]

    Last week, the companies announced a strategic partnership to co-develop game streaming technology and host some of PlayStation’s online services on the Redmond-based company’s Azure cloud platform. It comes after PlayStation spent seven years developing its own cloud gaming offering, with limited success.

    Negotiations with Microsoft began last year and were handled directly by Sony’s senior management in Tokyo, largely without the involvement of the PlayStation unit, according to people familiar with the matter. Staff at the gaming division were caught off-guard by the news. Managers had to calm workers and assure them that plans for the company’s next-generation console weren’t affected, said the people, asking not to be identified discussing private matters.

Kernel: Guix and Logitech

  • Creating and using a custom Linux kernel on Guix System
    Guix is, at its core, a source based distribution with substitutes, and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix. One of the packages which I prefer to not build myself is the Linux-Libre kernel. The kernel, while not requiring an overabundance of RAM to build, does take a very long time on my build machine (which my children argue is actually their Kodi computer), and I will often delay reconfiguring my laptop while I want for a substitute to be prepared by the official build farm. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when I build the package for myself. The Linux kernel, however, can also just be described as a package installed on my machine, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written.
  • Improved Logitech wireless device support in kernel 5.2
    The just released 5.2-rc1 kernel includes improved support for Logitech wireless keyboards and mice. Until now we were relying on the generic HID keyboard and mouse emulation for 27 MHz and non-unifying 2.4 GHz wireless receivers. Starting with the 5.2 kernel instead we actually look at the devices behind the receiver. This allows us to provide battery monitoring support and to have per device quirks, like device specific HID-code to evdev-code mappings where necessary. Until now device specific quirks where not possible because the receivers have a generic product-id which is the same independent of the device behind the receiver. The per device key-mapping is especially important for 27MHz wireless devices, these use the same HID-code for Fn + F1 to Fn + F12 for all devices, but the markings on the keys differ per model. Sofar it was impossible for Linux to get the mapping for this right, but now that we have per device product-ids for the devices behind the receiver we can finally fix this. As is the case with other devices with vendor specific mappings, the actual mapping is done in userspace through hwdb.
  • The Better Logitech Wireless Device Support In The Linux 5.2 Kernel
    Red Hat's Hans de Goede who was involved in this latest Logitech support improvement work for the Linux 5.2 kernel has now blogged to share additional background information on the effort.