paramflow 0.1.8__tar.gz → 0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {paramflow-0.1.8/paramflow.egg-info → paramflow-0.2}/PKG-INFO +15 -2
  2. {paramflow-0.1.8 → paramflow-0.2}/README.md +14 -1
  3. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/params.cpython-312.pyc +0 -0
  4. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/parser.cpython-312.pyc +0 -0
  5. {paramflow-0.1.8 → paramflow-0.2}/paramflow/params.py +2 -2
  6. {paramflow-0.1.8 → paramflow-0.2}/paramflow/parser.py +3 -2
  7. {paramflow-0.1.8 → paramflow-0.2/paramflow.egg-info}/PKG-INFO +15 -2
  8. {paramflow-0.1.8 → paramflow-0.2}/setup.py +1 -1
  9. {paramflow-0.1.8 → paramflow-0.2}/LICENSE +0 -0
  10. {paramflow-0.1.8 → paramflow-0.2}/MANIFEST.in +0 -0
  11. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__init__.py +0 -0
  12. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/__init__.cpython-312.pyc +0 -0
  13. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/convert.cpython-312.pyc +0 -0
  14. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/frozen.cpython-312.pyc +0 -0
  15. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/frozen_test.cpython-312-pytest-8.3.4.pyc +0 -0
  16. {paramflow-0.1.8 → paramflow-0.2}/paramflow/__pycache__/params_test.cpython-312-pytest-8.3.4.pyc +0 -0
  17. {paramflow-0.1.8 → paramflow-0.2}/paramflow/convert.py +0 -0
  18. {paramflow-0.1.8 → paramflow-0.2}/paramflow/frozen.py +0 -0
  19. {paramflow-0.1.8 → paramflow-0.2}/paramflow.egg-info/SOURCES.txt +0 -0
  20. {paramflow-0.1.8 → paramflow-0.2}/paramflow.egg-info/dependency_links.txt +0 -0
  21. {paramflow-0.1.8 → paramflow-0.2}/paramflow.egg-info/requires.txt +0 -0
  22. {paramflow-0.1.8 → paramflow-0.2}/paramflow.egg-info/top_level.txt +0 -0
  23. {paramflow-0.1.8 → paramflow-0.2}/pyproject.toml +0 -0
  24. {paramflow-0.1.8 → paramflow-0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: paramflow
3
- Version: 0.1.8
3
+ Version: 0.2
4
4
  Home-page: https://github.com/mduszyk/paramflow
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -45,6 +45,7 @@ pip install "paramflow[dotenv]"
45
45
  ```toml
46
46
  [default]
47
47
  learning_rate = 0.001
48
+ batch_size = 64
48
49
  ```
49
50
 
50
51
  ```app.py```
@@ -54,6 +55,18 @@ params = pf.load('params.toml')
54
55
  print(params.learning_rate)
55
56
  ```
56
57
 
58
+ ```shell
59
+ python app.py --help
60
+ usage: app.py [-h] [--learning_rate LEARNING_RATE] [--batch_size BATCH_SIZE]
61
+
62
+ options:
63
+ -h, --help show this help message and exit
64
+ --learning_rate LEARNING_RATE
65
+ learning_rate = 0.001
66
+ --batch_size BATCH_SIZE
67
+ batch_size = 64
68
+ ```
69
+
57
70
  ## Meta-parameter Layering
58
71
  Meta-parameter layering controls how ```paramflow.load``` reads its own configuration.
59
72
 
@@ -87,7 +100,7 @@ params = pf.load(['params.toml', 'env', '.env', 'args'])
87
100
 
88
101
  Overwrite parameter value:
89
102
  ```shell
90
- python print_params.py --profile dqn-adam --lr 0.0002
103
+ python print_params.py --profile dqn-adam --learning_rate 0.0002
91
104
  ```
92
105
 
93
106
  ## ML hyper-parameters profiles
@@ -27,6 +27,7 @@ pip install "paramflow[dotenv]"
27
27
  ```toml
28
28
  [default]
29
29
  learning_rate = 0.001
30
+ batch_size = 64
30
31
  ```
31
32
 
32
33
  ```app.py```
@@ -36,6 +37,18 @@ params = pf.load('params.toml')
36
37
  print(params.learning_rate)
37
38
  ```
38
39
 
40
+ ```shell
41
+ python app.py --help
42
+ usage: app.py [-h] [--learning_rate LEARNING_RATE] [--batch_size BATCH_SIZE]
43
+
44
+ options:
45
+ -h, --help show this help message and exit
46
+ --learning_rate LEARNING_RATE
47
+ learning_rate = 0.001
48
+ --batch_size BATCH_SIZE
49
+ batch_size = 64
50
+ ```
51
+
39
52
  ## Meta-parameter Layering
40
53
  Meta-parameter layering controls how ```paramflow.load``` reads its own configuration.
41
54
 
@@ -69,7 +82,7 @@ params = pf.load(['params.toml', 'env', '.env', 'args'])
69
82
 
70
83
  Overwrite parameter value:
71
84
  ```shell
72
- python print_params.py --profile dqn-adam --lr 0.0002
85
+ python print_params.py --profile dqn-adam --learning_rate 0.0002
73
86
  ```
74
87
 
75
88
  ## ML hyper-parameters profiles
@@ -44,13 +44,13 @@ def load(source: Optional[Union[str, List[str]]] = None,
44
44
  profile_key: profile,
45
45
  }
46
46
  meta_env_parser = EnvParser(ENV_PREFIX, DEFAULT_PROFILE)
47
- meta_args_parser = ArgsParser(ARGS_PREFIX, DEFAULT_PROFILE)
47
+ meta_args_parser = ArgsParser(ARGS_PREFIX, DEFAULT_PROFILE, add_help=False)
48
48
  meta = deep_merge(meta, meta_env_parser(meta))
49
49
  meta = deep_merge(meta, meta_args_parser(meta))
50
50
  meta = freeze(meta)
51
51
 
52
52
  if meta.source is None:
53
- sys.exit('file meta param is missing')
53
+ sys.exit('source meta param is missing')
54
54
 
55
55
  sources = list(meta.source) if isinstance(meta.source, list) else [meta.source]
56
56
  if ENV_SOURCE not in sources and meta.env_prefix is not None:
@@ -124,16 +124,17 @@ class EnvParser(Parser):
124
124
 
125
125
  class ArgsParser(Parser):
126
126
 
127
- def __init__(self, prefix: str, default_profile: str, target_profile: str = None):
127
+ def __init__(self, prefix: str, default_profile: str, target_profile: str = None, **kwargs):
128
128
  self.prefix = prefix
129
129
  self.default_profile = default_profile
130
130
  self.target_profile = target_profile
131
+ self.kwargs = kwargs
131
132
 
132
133
  def __call__(self, params: Dict[str, any]) -> Dict[str, any]:
133
134
  if self.target_profile is None and self.default_profile in params:
134
135
  self.target_profile = self.default_profile
135
136
  params = params.get(self.default_profile, params)
136
- parser = argparse.ArgumentParser()
137
+ parser = argparse.ArgumentParser(**self.kwargs)
137
138
  for key, value in params.items():
138
139
  typ = type(value)
139
140
  if typ is dict or typ is list or typ is bool or value is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: paramflow
3
- Version: 0.1.8
3
+ Version: 0.2
4
4
  Home-page: https://github.com/mduszyk/paramflow
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -45,6 +45,7 @@ pip install "paramflow[dotenv]"
45
45
  ```toml
46
46
  [default]
47
47
  learning_rate = 0.001
48
+ batch_size = 64
48
49
  ```
49
50
 
50
51
  ```app.py```
@@ -54,6 +55,18 @@ params = pf.load('params.toml')
54
55
  print(params.learning_rate)
55
56
  ```
56
57
 
58
+ ```shell
59
+ python app.py --help
60
+ usage: app.py [-h] [--learning_rate LEARNING_RATE] [--batch_size BATCH_SIZE]
61
+
62
+ options:
63
+ -h, --help show this help message and exit
64
+ --learning_rate LEARNING_RATE
65
+ learning_rate = 0.001
66
+ --batch_size BATCH_SIZE
67
+ batch_size = 64
68
+ ```
69
+
57
70
  ## Meta-parameter Layering
58
71
  Meta-parameter layering controls how ```paramflow.load``` reads its own configuration.
59
72
 
@@ -87,7 +100,7 @@ params = pf.load(['params.toml', 'env', '.env', 'args'])
87
100
 
88
101
  Overwrite parameter value:
89
102
  ```shell
90
- python print_params.py --profile dqn-adam --lr 0.0002
103
+ python print_params.py --profile dqn-adam --learning_rate 0.0002
91
104
  ```
92
105
 
93
106
  ## ML hyper-parameters profiles
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='paramflow',
5
- version='0.1.8',
5
+ version='0.2',
6
6
  packages=find_packages(),
7
7
  install_requires=[
8
8
  "pyyaml",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes