Skip to content

Commit

Permalink
pup clone support in the installer
Browse files Browse the repository at this point in the history
  • Loading branch information
liquidcarbon committed Dec 18, 2024
1 parent e691e65 commit 350fd81
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Puppy helps you set up and manage your python projects. It's the easiest way to get started with modern python on any platform, install packages in virtual environments, and contribute to external projects.

<img src="https://github.com/liquidcarbon/puppy/assets/47034358/da604ebd-4ce3-4e5d-b88b-ef46de7367fc" width="270">
<img alt="Puppy Logo" src="https://github.com/liquidcarbon/puppy/assets/47034358/da604ebd-4ce3-4e5d-b88b-ef46de7367fc" width="270">


## Get started
Expand Down Expand Up @@ -31,7 +31,10 @@ iex (iwr https://pup-py-fetch.hf.space).Content
The `pup-py-fetch` API accepts query parameters that allow specifying the exact environment recipe you want to build:
- `python`: [3.10](https://pup-py-fetch.hf.space?python=3.10) through [3.13](https://pup-py-fetch.hf.space?python=3.13)
- `pixi`: [comma-separated list of pixi/Conda dependencies](https://pup-py-fetch.hf.space?pixi=jupyter,quarto)
- virtual environments: [all other query parameters with comma-separated package names](https://pup-py-fetch.hf.space?env1=duckdb,pandas&env2=cowsay)
- `clone`: [comma-separated list of GitHub repos to clone and install](https://pup-py-fetch.hf.space?clone=marimo-team/marimo) (only GitHub at this time)
- virtual environments: [all other query parameters with comma-separated package names](https://pup-py-fetch.hf.space?env1=duckdb,pandas&env2=cowsay), including:
- regular PyPI packages (no support for version pinning at this time)
- packages from GitHub repos using <username>/<reponame>

> [!NOTE]
> As of Dec 2024, many packages still do not support python 3.13; thus, the default version in puppy is 3.12.
Expand All @@ -47,6 +50,7 @@ curl -fsSL "https://pup-py-fetch.hf.space?pixi=marimo&env1=duckdb,pandas&env2=co
iex (iwr "https://pup-py-fetch.hf.space?python=3.11&pixi=marimo&tables=duckdb,pandas,polars").Content
```


## How It Works

Puppy is a transparent wrapper around [pixi](https://github.com/prefix-dev/pixi/) and [uv](https://github.com/astral-sh/uv), two widely used Rust-based tools that belong together.
Expand Down Expand Up @@ -166,6 +170,18 @@ For details, scan through the [previous section](#using-pup-as-a-module-pupfetch

With marimo, you have more options: [Unified environment management for any computational notebooks](https://github.com/marimo-team/marimo/discussions/2994) - no more Jupyter kernels!


## Where Pixi Shines 🎇

UV is rightfully getting much love in the community, but Pixi is indispensable for:

1. Conda channels support
2. Setting up really complex build environments for multi-language projects. For example, try pulling together what's done here in one API call (python, NodeJS, pnpm, cloned and synced repo):
\
\
<img alt="Pixi build with python, Node, pnpm, and cloned repos" src="https://github.com/user-attachments/assets/b372b1a5-c3d6-415c-acb2-cc65d1f90572" width="480">


## Multi-Puppy-Verse

Can I have multiple puppies? As many as you want! Puppy is not just a package installer, but also a system to organize multiple python projects.
Expand Down
2 changes: 1 addition & 1 deletion pup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
The CLI for pup, a cute python project manager.
"""

__version__ = "2.5.0"
__version__ = "2.5.1"

import collections
import json
Expand Down

0 comments on commit 350fd81

Please sign in to comment.