Skip to main content

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


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

File details

Details for the file argparse-hparams-0.0.1.dev20211127192230.tar.gz.

File metadata

  • Download URL: argparse-hparams-0.0.1.dev20211127192230.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for argparse-hparams-0.0.1.dev20211127192230.tar.gz
Algorithm Hash digest
SHA256 806cae6a115ac1e22da5512003f6fa42ed2c13856c4cd56d115df41788d4b7d8
MD5 1f2509c64a802bd99b97409726e61611
BLAKE2b-256 66c713f2784b6a971083fcd882aeeeac839c980083ac47d1547e0911c5d503c7

See more details on using hashes here.

File details

Details for the file argparse_hparams-0.0.1.dev20211127192230-py3-none-any.whl.

File metadata

  • Download URL: argparse_hparams-0.0.1.dev20211127192230-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for argparse_hparams-0.0.1.dev20211127192230-py3-none-any.whl
Algorithm Hash digest
SHA256 c40b625fc2e325e7ab1ee6f84f1bd2cba8cb0c6a5dc0d146d8e682a9c8b222f4
MD5 1d4aa0c81f162207fdebf27225dc9ae3
BLAKE2b-256 1a2aa4aea698dd14faf8c43e452c0fa4d4cbba5c391a395f7abdbd2b7f140025

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page