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.
- {appsettings2-1.3.3/src/appsettings2.egg-info → appsettings2-1.3.7}/PKG-INFO +3 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/pyproject.toml +3 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/Configuration.py +2 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/ConfigurationBuilder.py +6 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/__init__.py +2 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/helpers.py +4 -1
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/JsonConfigurationProvider.py +6 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/TomlConfigurationProvider.py +7 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/YamlConfigurationProvider.py +5 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7/src/appsettings2.egg-info}/PKG-INFO +3 -2
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/requires.txt +2 -1
- {appsettings2-1.3.3 → appsettings2-1.3.7}/LICENSE +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/README.md +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/setup.cfg +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/ConfigurationException.py +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/CommandLineConfigurationProvider.py +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/ConfigurationProvider.py +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/EnvironmentConfigurationProvider.py +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/__init__.py +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/py.typed +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/SOURCES.txt +0 -0
- {appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2.egg-info/dependency_links.txt +0 -0
- {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
|
+
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.
|
|
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
|
+
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.
|
|
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
|
-
|
|
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']
|
|
@@ -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:
|
{appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/JsonConfigurationProvider.py
RENAMED
|
@@ -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
|
-
|
|
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']
|
{appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/TomlConfigurationProvider.py
RENAMED
|
@@ -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']
|
{appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/YamlConfigurationProvider.py
RENAMED
|
@@ -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
|
-
|
|
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
|
+
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appsettings2-1.3.3 → appsettings2-1.3.7}/src/appsettings2/providers/ConfigurationProvider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|