Skip to content
Open
Show file tree
Hide file tree
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
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,19 @@ Kauldron is a library for training machine learning models, optimized for
post-mortem debugging on borg, runtime shape checking, and many others...).
[Open an issue](https://github.com/google-research/kauldron/issues)..

## Lightweight installation

If you only need specific sub-modules, you can install them individually
without pulling in the full dependency tree:

```bash
pip install kauldron[konfig] # Config system only
pip install kauldron[kontext] # Tree manipulation / key system only
pip install kauldron[ktyping] # Array type checking only
```

A standard `pip install kauldron` still installs all dependencies.

## Citing Kauldron

If Kauldron was helpful for a publication, please cite this repository:
Expand Down
62 changes: 41 additions & 21 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,47 @@ classifiers = [
]
keywords = []

# pip dependencies of the project
dependencies = [
# By default, install all dependencies (backward compatible).
# For lightweight installs, use e.g. `pip install kauldron[konfig]`
dependencies = []

# This is set automatically by flit using `kauldron.__version__`
dynamic = ["version"]

[project.urls]
homepage = "https://github.com/google-research/kauldron"
repository = "https://github.com/google-research/kauldron"
documentation = "https://kauldron.readthedocs.io"

# Other: `documentation`, `changelog`

[project.optional-dependencies]
# Lightweight sub-module installs
konfig = [
"absl-py",
"etils[edc,enp,epath,epy]",
"immutabledict",
"lark",
"ml_collections",
]
kontext = [
"etils[epy,etree-jax]",
"jax",
"ml_collections",
"typing_extensions",
]
ktyping = [
"etils[edc,enp,epath,epy]",
"immutabledict",
"jax",
"lark",
"numpy",
"typeguard>=4.4.1",
]
# Full install (all dependencies, equivalent to the previous default)
# Installed through `pip install kauldron[all]`
all = [
"kauldron[konfig,kontext,ktyping]",
"altair",
"chex",
"clu",
Expand All @@ -24,13 +62,8 @@ dependencies = [
"flax",
"grain ; sys_platform != 'win32'",
"graphviz",
"immutabledict",
"jax",
"jaxtyping",
"lark",
"mediapy",
"ml_collections",
"numpy",
"opencv-python", # speeds up pygrain image loading
"optax",
"orbax-checkpoint",
Expand All @@ -42,25 +75,12 @@ dependencies = [
"tensorflow",
"tensorflow_datasets>=4.9.7",
"tqdm",
"typeguard>=4.4.1",
"typing_extensions",
"xmanager",
]

# This is set automatically by flit using `kauldron.__version__`
dynamic = ["version"]

[project.urls]
homepage = "https://github.com/google-research/kauldron"
repository = "https://github.com/google-research/kauldron"
documentation = "https://kauldron.readthedocs.io"

# Other: `documentation`, `changelog`

[project.optional-dependencies]
# Development deps (unittest, linting, formating,...)
# Installed through `pip install .[dev]`
dev = [
"kauldron[all]",
"pytest",
"pytest-xdist",
"hypothesis==6.80.0",
Expand Down
Loading