Metadata-Version: 2.4
Name: beagles-config
Version: 0.1.2
Summary: Typed Python configuration for Beagles.
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: hydra-core>=1.3.2

# Beagles-Config

A lightweight plugin that supports **Python** configuration with sophisticated
type annotations and IDE auto-completions under 
[Hydra](https://github.com/facebookresearch/hydra) framework.


## Motivation

### Why YAML

Hydra provides flexible and elegant ways to manage YAML configurations. Its
[key features](https://hydra.cc/docs/intro/#key-features)
make it particularly well suited to machine learning or computational 
neuroscience research, where experiments often differ 
by a few hyperparameters.

However, YAML becomes a little bit inconvenient when we need to configure a
runtime object (e.g., a class instance), especially those have a lot of 
arguments. As YAML configurations are presented as raw text, 
we have to write all arguments we want to test of the object
without IDE auto-completion. Life gets worse when it comes to deep learning 
models, which often consist of many objects that have a lot of arguments :(

Inspired by the configuration system in 
[Detectron2](https://github.com/facebookresearch/detectron2), *Beagles-Config*
- supports using Hydra with configurations written in **Python**,
- enables type annotations and IDE auto-completions in configurations,
- provides the **lazy instantiation** mechanism that configures runtime objects 
in a way similar to call them.

### Why called *Beagles*

*Beagle* was a brig-sloop ⛵️ on which Charles Darwin travelled around the world. 
It carried him to the Galápagos Islands, where his observations inspired the 
ideas that later presented in *On the Origin of Species*.

## Releases

### Development

**v0.1.2** is the current development version of *Beagles-Config*.

It's mainly for self-use. Documentation is currently not available. 

If you want to explore it, run

```bash
pip install beagle[config]
```

in command line, or

```bash
uv install beagle[config]
```

if `uv` is available.

### Stable

*Beagles-Config* is under active development yet. No stable versions of package
and documentation are provided.

