Python steering council accepts lazy imports

Barry Warsaw, writing for the Python steering council, has announced
that PEP 810 (“Explicit lazy
imports”) has been approved, unanimously, by the four who could vote. Since
Pablo Galindo Salgado was one of the PEP authors, he did not vote. The PEP provides a way to defer importing modules until the names
defined in a module are
needed by other parts of the program. We covered the PEP and the discussion around it
a few weeks back. The council also had “recommendations about some of
the PEP’s details, a few suggestions for filling a couple of small
gaps
“, including:

Use lazy as the keyword. We debated many of the given alternatives
(and some we came up with ourselves), and ultimately agreed with the PEP’s
choice of the lazy keyword. The closest challenger was
defer, but once we tried to use that in all the places where the
term is visible, we ultimately didn’t think it was as good an overall
fit. The same was true with all the other alternative keywords we could
come up with, so… lazy it is!

What about from foo lazy import bar? Nope! We like that in both module imports and from-imports that the lazy keyword is the first thing on the line. It helps to visually recognize lazy imports of both varieties.

AXC3000 Starter Kit Highlights Altera Agilex 3 FPGA with HyperRAM and MIPI Support

Arrow has introduced the AXC3000 Starter Kit, a compact FPGA development platform featuring the first production device from the Altera Agilex 3 family. Following the Agilex 5 AXE5000 devkit, this board provides a smaller form factor and focuses on low- to mid-range applications that demand efficient compute performance in compact designs. The Altera Agilex 3 […]

[$] An explicit thread-safety proposal for Python

Python already has several ways to run programs concurrently —
including asynchronous functions, threads, subinterpreters, and multiprocessing
— but all of those options have drawbacks of one kind or another.

PEP 703
(“Making the Global Interpreter Lock Optional in CPython”)
removed a major barrier to running Python
threads in parallel, but also exposed Python programmers to the same tricky
synchronization problems found in other languages supporting multithreaded
programs. A new draft proposal
by Mark Shannon,

PEP 805
(“Safe Parallel Python”), suggests a way for the CPython runtime
to cut down on concurrency bugs, making it more practical for Python programmers
to use versions of the language without the global interpreter lock (GIL).

11 Best Free and Open Source OpenAPI Linter Tools

OpenAPI is an industry standard to describe HTTP APIs. When using OpenAPI in your project, you can leverage other tools to help you generate documentation, code, tests, mock results, or even deploy your API. This article picks some useful tools to help you validate OpenAPI in your project.

The post 11 Best Free and Open Source OpenAPI Linter Tools appeared first on Linux Today.

[$] Namespace reference counting and listns()

The kernel’s namespaces feature is, among
other things, a key part of the implementation of containers. Like much in
the kernel, though, the namespace API evolved over time; there was no
design at the outset. As a result, this API has some rough edges and
missing features. Christian Brauner is working to straighten out the
namespace situation somewhat with this
daunting 72-part patch series
that, among other things, adds a new
system call to allow user space to query the namespaces present on the
system.

Calibre 8.13 Open-Source E-Book Manager Improves Library Export on Linux

Calibre 8.13 is a small update that only improves library export on Linux distros that mount /tmp in RAM by no longer using the /tmp directory when dealing with a large Full-Text Search (FTS) database, and improves virtual libraries by allowing users to define their search expressions more comfortably in a multi-line edit box.

The post Calibre 8.13 Open-Source E-Book Manager Improves Library Export on Linux appeared first on Linux Today.