Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,14 @@ cytoolz = "*"
[feature.release.tasks]
release-contributors = "python ci/release_contributors.py"

[feature.dev.dependencies]
ipython = ">=9.8.0,<10"
black = ">=25.1.0,<26"
ipdb = ">=0.13.13,<0.14"
Copy link
Contributor

@dcherian dcherian Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've started using pdbpp now, and really like it.

Here's a list from my personal dev tool yaml. Can we add

  • pdbpp
  • line_profiler
  • memory_profiler
  • memray
  • snakeviz
  • icecream
  • ipykernel
  • snoop (haven't tried this one yet, had forgotten about it but it looks great)

Is asv in the dev env?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm... looks like it might be better to have a profiling feature / env, in that case. I'd probably include pyinstrument in that list, as well. memory_profiler does not appear to be maintained anymore (not sure if that's a problem).

I don't think asv is anywhere yet, I believe. Is it possible to use that with pixi, or does that have its own dependency installation system? I think I remember it using conda envs before.

Copy link
Contributor

@dcherian dcherian Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like it might be better to have a profiling feature / env

Why not just one big fat one? :P

memory_profiler does not appear to be maintained anymore (not sure if that's a problem).

Interesting. I still find %mprun -f in a notebook is very effective (recent example).

I don't think asv is anywhere yet, I believe. Is it possible to use that with pixi, or does that have its own dependency installation system

I think it still manages its own; but you can tell it to use rattler as a solver. I think it's useful to jsut add asv so we can run benchmarks.


[feature.dev.pypi-dependencies]
pytest-accept = ">=0.2.2, <0.3"

[environments]
# Testing
# test-just-xarray = { features = ["test"] } # https://github.com/pydata/xarray/pull/10888/files#r2511336147
Expand Down Expand Up @@ -386,3 +394,14 @@ doc = { features = [
] }
pre-commit = { features = ["pre-commit"], no-default-feature = true }
release = { features = ["release"], no-default-feature = true }
dev = { features = [

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you see this env as the "default" env for users, you can just rename it to default instead of dev. This would then allow users to run pixi run xxx or pixi shell to start this developer env. And in scripts you can still use -e to specify the more precise env.
If you still want to use the current default env for something else you can rename it with:

new-default = []

Also, you can use solve-group to specify that all these environments should have the same versions for the overlapping dependencies. These guarantees lower file system usage and reproducible environments between the different sets. That would look like this:

typing = { features = ["typing"], solve-group = "main" }
doc = { features = [
  "doc",
  "backends",
  "test",
  "accel",
  "viz",
  "extras",
], solve-group = "main"}
dev = { features = [ "py313",
  "test",
  "backends",
  "accel",
  "numba",
  "dask",
  "viz",
  "extras",
  "dev",
], solve-group = "main"}

If this works, pixi will guarantee that they all use the exact same python and other base dependencies. When they conflict in dependencies, you can still leave out the solve-group.

Copy link
Contributor

@VeckoTheGecko VeckoTheGecko Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking the time to look at this @ruben-arts ! (and for responding to my Discord comment about this :)) ) . Also useful for another project I'm working on

"py313",
"test",
"backends",
"accel",
"numba",
"dask",
"viz",
"extras",
"dev",
] }
Loading