paramflow 0.4.2__tar.gz → 0.5__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 (31) hide show
  1. {paramflow-0.4.2/paramflow.egg-info → paramflow-0.5}/PKG-INFO +1 -1
  2. paramflow-0.5/paramflow/__pycache__/params.cpython-313.pyc +0 -0
  3. paramflow-0.5/paramflow/__pycache__/parser.cpython-313.pyc +0 -0
  4. {paramflow-0.4.2 → paramflow-0.5}/paramflow/params.py +5 -3
  5. {paramflow-0.4.2 → paramflow-0.5}/paramflow/parser.py +13 -0
  6. {paramflow-0.4.2 → paramflow-0.5/paramflow.egg-info}/PKG-INFO +1 -1
  7. {paramflow-0.4.2 → paramflow-0.5}/setup.py +1 -1
  8. paramflow-0.4.2/paramflow/__pycache__/params.cpython-313.pyc +0 -0
  9. paramflow-0.4.2/paramflow/__pycache__/parser.cpython-313.pyc +0 -0
  10. {paramflow-0.4.2 → paramflow-0.5}/LICENSE +0 -0
  11. {paramflow-0.4.2 → paramflow-0.5}/MANIFEST.in +0 -0
  12. {paramflow-0.4.2 → paramflow-0.5}/README.md +0 -0
  13. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__init__.py +0 -0
  14. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/__init__.cpython-312.pyc +0 -0
  15. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/__init__.cpython-313.pyc +0 -0
  16. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/convert.cpython-312.pyc +0 -0
  17. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/convert.cpython-313.pyc +0 -0
  18. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/frozen.cpython-312.pyc +0 -0
  19. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/frozen.cpython-313.pyc +0 -0
  20. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/frozen_test.cpython-312-pytest-8.3.4.pyc +0 -0
  21. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/params.cpython-312.pyc +0 -0
  22. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/params_test.cpython-312-pytest-8.3.4.pyc +0 -0
  23. {paramflow-0.4.2 → paramflow-0.5}/paramflow/__pycache__/parser.cpython-312.pyc +0 -0
  24. {paramflow-0.4.2 → paramflow-0.5}/paramflow/convert.py +0 -0
  25. {paramflow-0.4.2 → paramflow-0.5}/paramflow/frozen.py +0 -0
  26. {paramflow-0.4.2 → paramflow-0.5}/paramflow.egg-info/SOURCES.txt +0 -0
  27. {paramflow-0.4.2 → paramflow-0.5}/paramflow.egg-info/dependency_links.txt +0 -0
  28. {paramflow-0.4.2 → paramflow-0.5}/paramflow.egg-info/requires.txt +0 -0
  29. {paramflow-0.4.2 → paramflow-0.5}/paramflow.egg-info/top_level.txt +0 -0
  30. {paramflow-0.4.2 → paramflow-0.5}/pyproject.toml +0 -0
  31. {paramflow-0.4.2 → paramflow-0.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramflow
3
- Version: 0.4.2
3
+ Version: 0.5
4
4
  Summary: A lightweight library for hyperparameter and configuration management
5
5
  Home-page: https://github.com/mduszyk/paramflow
6
6
  Classifier: Programming Language :: Python :: 3
@@ -6,13 +6,13 @@ from typing import List, Dict, Optional, Union, Final, Type, Tuple
6
6
 
7
7
  from paramflow.convert import convert_type
8
8
  from paramflow.frozen import freeze, ParamsDict
9
- from paramflow.parser import PARSER_MAP, EnvParser, ArgsParser, DotEnvParser, Parser
9
+ from paramflow.parser import PARSER_MAP, EnvParser, ArgsParser, DotEnvParser, Parser, DictParser
10
10
 
11
11
  ENV_SOURCE: Final[str] = 'env'
12
12
  ARGS_SOURCE: Final[str] = 'args'
13
13
 
14
14
 
15
- def load(*sources: str | Tuple[str, ...],
15
+ def load(*sources: str | Tuple[str, ...] | dict | Tuple[dict, ...],
16
16
  meta_env_prefix: str = 'P_',
17
17
  meta_args_prefix: str = '',
18
18
  env_prefix: str = 'P_',
@@ -75,7 +75,9 @@ def parse(parsers: List[Parser], default_profile: str, target_profile: str):
75
75
  def build_parsers(sources: List[str], meta: Dict[str, any]):
76
76
  parsers = []
77
77
  for source in sources:
78
- if source == ARGS_SOURCE:
78
+ if isinstance(source, dict):
79
+ parser = DictParser(source)
80
+ elif source == ARGS_SOURCE:
79
81
  parser = ArgsParser(meta.args_prefix, meta.default_profile, meta.profile, descr='Parameters')
80
82
  elif source == ENV_SOURCE:
81
83
  parser = EnvParser(meta.env_prefix, meta.default_profile, meta.profile)
@@ -1,5 +1,6 @@
1
1
  import argparse
2
2
  import configparser
3
+ import copy
3
4
  import json
4
5
  import os
5
6
  import sys
@@ -17,6 +18,18 @@ class Parser(ABC):
17
18
  pass
18
19
 
19
20
 
21
+ class DictParser(Parser):
22
+
23
+ def __init__(self, params):
24
+ self.params = params
25
+
26
+ def __call__(self, *args) -> Dict[str, any]:
27
+ return {
28
+ 'default': copy.deepcopy(self.params),
29
+ '__source__': ['dict'],
30
+ }
31
+
32
+
20
33
  class TomlParser(Parser):
21
34
 
22
35
  def __init__(self, path: str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramflow
3
- Version: 0.4.2
3
+ Version: 0.5
4
4
  Summary: A lightweight library for hyperparameter and configuration management
5
5
  Home-page: https://github.com/mduszyk/paramflow
6
6
  Classifier: Programming Language :: Python :: 3
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='paramflow',
5
- version='0.4.2',
5
+ version='0.5',
6
6
  description='A lightweight library for hyperparameter and configuration management',
7
7
  packages=find_packages(),
8
8
  install_requires=[
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes