# Scooch
Scooch is a recursive acronym for **S**cooch **C**onfigures **O**bject
**O**riented **C**lass **H**ierarchies, and that's exactly what this package
does. It is a configuration package for python codebases that simplifies the
problem of configuring parameters in python code by translating YAML
configuration files into object oriented class hierarchies.
# Who needs Scooch?
Scooch is useful for people who need an accessible interface to enable
tweakability in their code. ML practitioners are a good example. They
typically write code that is intended to be continuously experimented with and
adjusted in response to observations from running the code. As such, it is useful
to abstract these tweakable parameters from the codeĀ into a config file, providing
three major benefits:
- The config file provides a centralized location for adjustable parameters of
interest in the code, improving iteration and workflow.
- Loading, saving and adjusting the configuration of your code is separated
from the many other working variables and data structures that may exist in
code.
- The configuration of any part of the code can be hashed, logged, and indexed,
to provide a record of the code configuration at any one time.
# Why use Scooch?
There are many other projects out there that endeavor to translate config files
into parameters in python code, for example:
- [Gin](https://github.com/google/gin-config)
- [Sacred](https://sacred.readthedocs.io/en/stable/index.html)
- [Hydra](https://hydra.cc/)
However, what makes Scooch different is that it not only translates config
parameters into variables in your code, but into object oriented class
hierarchies. This means configurations can benefit from object oriented concepts
such as Inheretance, Encapsulation, Abstraction and Polymorphism.
For more information about how to use, and why to use Scooch. Please refer to
the [documentation](http://www.mattcmccallum.com/scooch/docs).
Raw data
{
"_id": null,
"home_page": "http://www.mattcmccallum.com/scooch/docs",
"name": "scooch",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "scooch python configuration machine learning",
"author": "Matt C. McCallum",
"author_email": "scooch@mattcmccallum.com",
"download_url": "https://files.pythonhosted.org/packages/12/4e/95ddbf8f18aaf5c010e6d59c827f12052368ea9eb08c1c60df8271f3e6c3/scooch-1.0.4.tar.gz",
"platform": null,
"description": "\n# Scooch\n\nScooch is a recursive acronym for **S**cooch **C**onfigures **O**bject \n**O**riented **C**lass **H**ierarchies, and that's exactly what this package \ndoes. It is a configuration package for python codebases that simplifies the \nproblem of configuring parameters in python code by translating YAML \nconfiguration files into object oriented class hierarchies.\n\n# Who needs Scooch?\n\nScooch is useful for people who need an accessible interface to enable \ntweakability in their code. ML practitioners are a good example. They \ntypically write code that is intended to be continuously experimented with and \nadjusted in response to observations from running the code. As such, it is useful \nto abstract these tweakable parameters from the code\u00a0into a config file, providing \nthree major benefits:\n\n - The config file provides a centralized location for adjustable parameters of \n interest in the code, improving iteration and workflow.\n - Loading, saving and adjusting the configuration of your code is separated \n from the many other working variables and data structures that may exist in \n code.\n - The configuration of any part of the code can be hashed, logged, and indexed, \n to provide a record of the code configuration at any one time.\n\n# Why use Scooch?\n\nThere are many other projects out there that endeavor to translate config files \ninto parameters in python code, for example:\n\n - [Gin](https://github.com/google/gin-config)\n - [Sacred](https://sacred.readthedocs.io/en/stable/index.html)\n - [Hydra](https://hydra.cc/)\n\nHowever, what makes Scooch different is that it not only translates config \nparameters into variables in your code, but into object oriented class \nhierarchies. This means configurations can benefit from object oriented concepts \nsuch as Inheretance, Encapsulation, Abstraction and Polymorphism.\n\nFor more information about how to use, and why to use Scooch. Please refer to \nthe [documentation](http://www.mattcmccallum.com/scooch/docs).\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "A python module for configuring hierarchical class structures in yaml with defaults",
"version": "1.0.4",
"project_urls": {
"Bug Reports": "https://github.com/PandoraMedia/scooch/issues",
"Documentation": "http://www.mattcmccallum.com/scooch/docs",
"Homepage": "http://www.mattcmccallum.com/scooch/docs",
"Source": "https://github.com/PandoraMedia/scooch"
},
"split_keywords": [
"scooch",
"python",
"configuration",
"machine",
"learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "124e95ddbf8f18aaf5c010e6d59c827f12052368ea9eb08c1c60df8271f3e6c3",
"md5": "c63360a259372ad16bee612e64a35709",
"sha256": "ea240e7cd3aa7207a72e576a0694a85de91c7da1a3917dcff54fb54ad3e08f3c"
},
"downloads": -1,
"filename": "scooch-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "c63360a259372ad16bee612e64a35709",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 26059,
"upload_time": "2024-04-30T23:52:40",
"upload_time_iso_8601": "2024-04-30T23:52:40.198394Z",
"url": "https://files.pythonhosted.org/packages/12/4e/95ddbf8f18aaf5c010e6d59c827f12052368ea9eb08c1c60df8271f3e6c3/scooch-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-30 23:52:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PandoraMedia",
"github_project": "scooch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "scooch"
}