appsettings2 1.3.3__tar.gz → 1.3.7__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 (23) hide show
  1. {appsettings2-1.3.3/src/appsettings2.egg-info → appsettings2-1.3.7}/PKG-INFO +3 -2
  2. {appsettings2-1.3.3 → appsettings2-1.3.7}/pyproject.toml +3 -2
  3. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/Configuration.py +2 -2
  4. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/ConfigurationBuilder.py +6 -2
  5. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/__init__.py +2 -2
  6. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/helpers.py +4 -1
  7. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/JsonConfigurationProvider.py +6 -2
  8. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/TomlConfigurationProvider.py +7 -2
  9. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/YamlConfigurationProvider.py +5 -2
  10. {appsettings2-1.3.3 → appsettings2-1.3.7/src/appsettings2.egg-info}/PKG-INFO +3 -2
  11. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/requires.txt +2 -1
  12. {appsettings2-1.3.3 → appsettings2-1.3.7}/LICENSE +0 -0
  13. {appsettings2-1.3.3 → appsettings2-1.3.7}/README.md +0 -0
  14. {appsettings2-1.3.3 → appsettings2-1.3.7}/setup.cfg +0 -0
  15. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/ConfigurationException.py +0 -0
  16. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/CommandLineConfigurationProvider.py +0 -0
  17. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/ConfigurationProvider.py +0 -0
  18. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/EnvironmentConfigurationProvider.py +0 -0
  19. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/__init__.py +0 -0
  20. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/py.typed +0 -0
  21. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/SOURCES.txt +0 -0
  22. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/dependency_links.txt +0 -0
  23. {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appsettings2
3
- Version: 1.3.3
3
+ Version: 1.3.7
4
4
  Summary: Unifies configuration sources into a Configuration object that can be bound to complex types, or accessed directly for configuration data.
5
5
  Author-email: Shaun Wilson <mrshaunwilson@msn.com>
6
6
  License: MIT License
@@ -41,8 +41,9 @@ Description-Content-Type: text/markdown
41
41
  License-File: LICENSE
42
42
  Requires-Dist: pyyaml>=6.0.2
43
43
  Provides-Extra: dev
44
+ Requires-Dist: coverage; extra == "dev"
44
45
  Requires-Dist: mypy; extra == "dev"
45
- Requires-Dist: punit>=1.2.10; extra == "dev"
46
+ Requires-Dist: punit>=1.4.0; extra == "dev"
46
47
  Requires-Dist: twine; extra == "dev"
47
48
  Requires-Dist: types-PyYAML; extra == "dev"
48
49
  Dynamic: license-file
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "appsettings2"
3
- version = "1.3.3"
3
+ version = "1.3.7"
4
4
  description = "Unifies configuration sources into a Configuration object that can be bound to complex types, or accessed directly for configuration data."
5
5
  keywords = ["appsettings", "configuration"]
6
6
  authors = [
@@ -24,8 +24,9 @@ dependencies = [
24
24
 
25
25
  [project.optional-dependencies]
26
26
  dev = [
27
+ "coverage",
27
28
  "mypy",
28
- "punit>=1.2.10",
29
+ "punit (>=1.4.0)",
29
30
  "twine",
30
31
  "types-PyYAML"
31
32
  ]
@@ -71,7 +71,7 @@ class Configuration:
71
71
  def __len__(self) -> int:
72
72
  return len(self.__keys)
73
73
 
74
- def __recursiveBind(self, target:object, source:Configuration|dict) -> Any:
74
+ def __recursiveBind(self, target:object, source:'Configuration|dict') -> Any:
75
75
  if target is None:
76
76
  return None
77
77
  if hasattr(target, '__class__'):
@@ -212,7 +212,7 @@ class Configuration:
212
212
  delattr(self, t[1])
213
213
 
214
214
  @staticmethod
215
- def fromDictionary(source:dict, *, normalize:bool = False, scrubkeys:bool = False) -> Configuration:
215
+ def fromDictionary(source:dict, *, normalize:bool = False, scrubkeys:bool = False) -> 'Configuration':
216
216
  """
217
217
  Constructs a :py:class:`~appsettings2.Configuration` instance from the supplied dictionary `source`.
218
218
 
@@ -4,9 +4,10 @@
4
4
  from .Configuration import Configuration
5
5
  from .ConfigurationException import ConfigurationException
6
6
  from .providers import *
7
- from typing import Optional
7
+ from typing import Optional, TypeAlias
8
8
 
9
- type FileDescriptor = int
9
+
10
+ FileDescriptor: TypeAlias = int
10
11
 
11
12
 
12
13
  class ConfigurationBuilder:
@@ -105,3 +106,6 @@ class ConfigurationBuilder:
105
106
  for provider in self.__providers:
106
107
  provider.populateConfiguration(configuration)
107
108
  return configuration
109
+
110
+
111
+ __all__ = ['ConfigurationBuilder']
@@ -9,8 +9,8 @@ from . import helpers
9
9
  from . import providers
10
10
 
11
11
 
12
- __version__ = '1.3.3'
13
- __commit__ = 'b4194e2'
12
+ __version__ = '1.3.7'
13
+ __commit__ = 'b929b9f'
14
14
  __all__ = [
15
15
  '__version__', '__commit__',
16
16
  'Configuration',
@@ -1,6 +1,7 @@
1
1
  # SPDX-FileCopyrightText: © 2025 Shaun Wilson
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
+ import pathlib
4
5
  from typing import Optional
5
6
 
6
7
  from .Configuration import Configuration
@@ -8,7 +9,9 @@ from .ConfigurationBuilder import ConfigurationBuilder
8
9
  from .providers import *
9
10
 
10
11
 
11
- def getConfiguration(baseName:str = 'appsettings', json:bool = True, toml:bool = True, yaml:bool = True, cli:bool = True, environment:bool = True, variations:Optional[list[str|None]] = ['', 'prod', 'production', 'stage', 'staging', 'qa', 'dev', 'development', 'local']) -> Configuration:
12
+ def getConfiguration(baseName:str|pathlib.PosixPath|pathlib.Path = 'appsettings', json:bool = True, toml:bool = True, yaml:bool = True, cli:bool = True, environment:bool = True, variations:Optional[list[str|None]] = ['', 'prod', 'production', 'stage', 'staging', 'qa', 'dev', 'development', 'local']) -> Configuration:
13
+ if type(baseName) is pathlib.Path or type(baseName) is pathlib.PosixPath:
14
+ baseName = str(baseName)
12
15
  builder:ConfigurationBuilder = ConfigurationBuilder()
13
16
  variations = variations if variations is not None and len(variations) > 0 else [None]
14
17
  for variation in variations:
@@ -6,9 +6,10 @@ from ..Configuration import Configuration
6
6
  from ..ConfigurationException import ConfigurationException
7
7
  import json as _json
8
8
  import os
9
- from typing import Optional
9
+ from typing import Optional, TypeAlias
10
10
 
11
- type FileDescriptor = int
11
+
12
+ FileDescriptor: TypeAlias = int
12
13
 
13
14
 
14
15
  class JsonConfigurationProvider(ConfigurationProvider):
@@ -56,3 +57,6 @@ class JsonConfigurationProvider(ConfigurationProvider):
56
57
  self.__populateRecursive(configuration, kvp[0], kvp[1])
57
58
  else:
58
59
  configuration.set(f'{kvp[0]}', kvp[1])
60
+
61
+
62
+ __all__ = ['JsonConfigurationProvider']
@@ -6,9 +6,11 @@ from ..Configuration import Configuration
6
6
  from ..ConfigurationException import ConfigurationException
7
7
  import os
8
8
  import tomllib as _toml
9
- from typing import Any, Optional
9
+ from typing import Any, Optional, TypeAlias
10
+
11
+
12
+ FileDescriptor: TypeAlias = int
10
13
 
11
- type FileDescriptor = int
12
14
 
13
15
 
14
16
  class TomlConfigurationProvider(ConfigurationProvider):
@@ -56,3 +58,6 @@ class TomlConfigurationProvider(ConfigurationProvider):
56
58
  self.__populateRecursive(configuration, kvp[0], kvp[1])
57
59
  else:
58
60
  configuration.set(f'{kvp[0]}', kvp[1])
61
+
62
+
63
+ __all__ = ['TomlConfigurationProvider']
@@ -6,10 +6,10 @@ from ..Configuration import Configuration
6
6
  from ..ConfigurationException import ConfigurationException
7
7
  from io import StringIO
8
8
  import os
9
- from typing import Optional
9
+ from typing import Optional, TypeAlias
10
10
  import yaml as _yaml
11
11
 
12
- type FileDescriptor = int
12
+ FileDescriptor: TypeAlias = int
13
13
 
14
14
 
15
15
  class YamlConfigurationProvider(ConfigurationProvider):
@@ -58,3 +58,6 @@ class YamlConfigurationProvider(ConfigurationProvider):
58
58
  self.__populateRecursive(configuration, kvp[0], kvp[1])
59
59
  else:
60
60
  configuration.set(f'{kvp[0]}', kvp[1])
61
+
62
+
63
+ __all__ = ['YamlConfigurationProvider']
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appsettings2
3
- Version: 1.3.3
3
+ Version: 1.3.7
4
4
  Summary: Unifies configuration sources into a Configuration object that can be bound to complex types, or accessed directly for configuration data.
5
5
  Author-email: Shaun Wilson <mrshaunwilson@msn.com>
6
6
  License: MIT License
@@ -41,8 +41,9 @@ Description-Content-Type: text/markdown
41
41
  License-File: LICENSE
42
42
  Requires-Dist: pyyaml>=6.0.2
43
43
  Provides-Extra: dev
44
+ Requires-Dist: coverage; extra == "dev"
44
45
  Requires-Dist: mypy; extra == "dev"
45
- Requires-Dist: punit>=1.2.10; extra == "dev"
46
+ Requires-Dist: punit>=1.4.0; extra == "dev"
46
47
  Requires-Dist: twine; extra == "dev"
47
48
  Requires-Dist: types-PyYAML; extra == "dev"
48
49
  Dynamic: license-file
@@ -1,7 +1,8 @@
1
1
  pyyaml>=6.0.2
2
2
 
3
3
  [dev]
4
+ coverage
4
5
  mypy
5
- punit>=1.2.10
6
+ punit>=1.4.0
6
7
  twine
7
8
  types-PyYAML
File without changes
File without changes
File without changes