Skip to content

Details

Hi, and welcome to our August Python Meetup!

We're a community of Python enthusiasts who enjoy learning, sharing knowledge, and helping grow the Python ecosystem. Whether you're writing your first lines of code or you're an experienced developer building the tools others rely on every day, you'll find a place here.

Come along to meet fellow Python programmers, learn something new, share your experiences, and be part of a welcoming and supportive community.

How Pixi has revolutionalised Xarray's dev workflows: A story of perfectly reproducible environments and more
by Nick Hodgskin

Over the past few years Pixi has been getting meteoric adoption in industry and the scientific community. The story is analogous to that of uv: where uv solved a lot of environment management pain for pure Python (i.e., PyPI) packages, Pixi is solving many environment management pains in the conda ecosystem - providing many features and workflows that are just not possible with conda or with uv. This talk explains what Pixi is, the powerful workflows it enables, as well as how its being used in large open source projects like Xarray. This talk will also contextualise the position of Pixi in the modern environment management scene, and explain the cases where using Pixi will make your life much easier than uv.

Nick Hodgskin is a UWA graduate, now Research Software Engineer at Utrecht University in the Netherlands. He primarily works on Parcels**, but has also become a maintainer on Xarray and an active member in the Pangeo and Scientific Python communities. His primary contributions to Xarray have been introducing and maintaining their Pixi development workflows, and has also written pages in the Pixi docs along the way.

Making Xarray Lazier - Optimising Computation Graphs
By Charles Turner

Squeezing performance out of a program more or less boils down to a single principle - don’t make the CPU do any work it doesn’t need to. There are a heap of ways to do this - use simpler data structures with less overhead, pick a better algorithm, rewrite it in Rust™.

If you wanted to try something more eccentric, you could take a users code, infer the intent, and rewrite it to do something that takes less work to produce provably equivalent results. At a high level, this is how a JIT compiler, like numba works - it takes your code, figures out what you want to do, and then removes all the extra unnecessary work that python has to do around that.

Polars does this whenever you use its LazyFrame API - it builds a plan, and then rewrites that plan to be as efficient as possible. xarray, despite being lazy, builds its plan eagerly, which leaves performance on the table. A year ago, I started trying to fix this. Now, with the help of Jean Claude van Code, I’ve got something that does something useful.
Warning: WIP, this will be chaos.

Charles works at ACCESS-NRI, where he works on open source tools to make analysing climate model data less painful. He previously built similar tooling for air quality and observational oceanography.

Related topics

Events in Perth
Data Science
Python
Software Development
Web Development
Computer Science

You may also like