An HParams implementation with argparse.
Project description
Argparse HParams
A simple argument parser for hyper-parameters.
Installation
From PyPI:
pip install argparse-hparams
From Github:
pip install git+https://github.com/enhuiz/argparse-hparams.git
Example
from argparse_hparams import dataclass, HParams, Annotated, Flag
@dataclass
class HParamsTest(HParams):
# This will call: parser.add_argument(type=int, default=0)
x: int = 0
# You may annotate custom data for parser.add_argument(...).
# The annotated default will overwrite dataclass default
# This will call: parser.add_argument(type=str.upper, default='bad')
y: Annotated[str, dict(type=str.upper, default="bad")] = "good"
# This will call: parser.add_argument(type=int, nargs=2, default=(2, 3))
pair: Annotated[tuple[int, int], dict(type=int, nargs=2)] = (2, 3)
# This will call: parser.add_argument(action="store_true", default=False)
ok: Flag = False
if __name__ == "__main__":
test = HParamsTest()
test.show()
$ python example.py
┌────────────┐
│ Arguments │
├────────────┤
│x: 0 │
│y: BAD │
│pair: (2, 3)│
│ok: False │
└────────────┘
$ python example.py --default default.yml
┌────────────┐
│ Arguments │
├────────────┤
│x: 0 │
│y: 1 │
│pair: [4, 5]│
│ok: False │
└────────────┘
$ python example.py --help
usage: example.py [-h] [--x int] [--y upper] [--pair int int] [--ok] [--default Path]
optional arguments:
-h, --help show this help message and exit
--x int x (default: 0)
--y upper y (default: bad)
--pair int int pair (default: (2, 3))
--ok ok (default: False)
--default Path A YAML configuration file that overrides the defaults (default: None)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for argparse-hparams-0.0.1.dev20211127192230.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 806cae6a115ac1e22da5512003f6fa42ed2c13856c4cd56d115df41788d4b7d8 |
|
MD5 | 1f2509c64a802bd99b97409726e61611 |
|
BLAKE2b-256 | 66c713f2784b6a971083fcd882aeeeac839c980083ac47d1547e0911c5d503c7 |
Close
Hashes for argparse_hparams-0.0.1.dev20211127192230-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c40b625fc2e325e7ab1ee6f84f1bd2cba8cb0c6a5dc0d146d8e682a9c8b222f4 |
|
MD5 | 1d4aa0c81f162207fdebf27225dc9ae3 |
|
BLAKE2b-256 | 1a2aa4aea698dd14faf8c43e452c0fa4d4cbba5c391a395f7abdbd2b7f140025 |