agileconfig-python 0.1.2__tar.gz → 0.1.4__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.
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/PKG-INFO +18 -1
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/README.md +17 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/PKG-INFO +18 -1
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/pyproject.toml +1 -1
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/LICENSE +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python/__init__.py +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python/config_loader.py +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/SOURCES.txt +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/dependency_links.txt +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/requires.txt +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/top_level.txt +0 -0
- {agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agileconfig-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Python client for AgileConfig with WebSocket updates and environment fallback
|
|
5
5
|
Author: Wei Zheng
|
|
6
6
|
License: MIT License
|
|
@@ -46,6 +46,11 @@ Dynamic: license-file
|
|
|
46
46
|
|
|
47
47
|
# agileconfig-python
|
|
48
48
|
|
|
49
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/ci.yml)
|
|
50
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/publish.yml)
|
|
51
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
52
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
53
|
+
|
|
49
54
|
Python client for [AgileConfig](https://github.com/dotnetcore/AgileConfig). The client loads configuration over HTTP, listens for reload notifications over WebSocket, and falls back to `os.environ` when the server is unavailable.
|
|
50
55
|
|
|
51
56
|
## Installation
|
|
@@ -72,6 +77,18 @@ loader.stop()
|
|
|
72
77
|
|
|
73
78
|
The initial HTTP request populates the cache. When AgileConfig publishes a reload event, the cache is refreshed. If the server cannot be reached within the configured timeout, `get_var_value` reads the variable name from the process environment and ignores its prefix.
|
|
74
79
|
|
|
80
|
+
## Singleton behavior and safety notes
|
|
81
|
+
|
|
82
|
+
`AgileConfigLoader` is a process-wide singleton. Creating it multiple times in the same Python process returns the same instance and does not reinitialize it.
|
|
83
|
+
|
|
84
|
+
Important implications:
|
|
85
|
+
|
|
86
|
+
- Do not assume a second `AgileConfigLoader(...)` call with different credentials or URL will switch connections. The first initialization wins for the process lifetime.
|
|
87
|
+
- Avoid creating loaders in many modules with different parameters. Prefer one startup location and reuse that instance.
|
|
88
|
+
- Calling `loader.stop()` stops the shared background listener for the singleton. Other parts of your app using the same loader will stop receiving updates.
|
|
89
|
+
- In tests, call `stop()` during teardown to avoid background-thread leakage across test cases.
|
|
90
|
+
- If your process forks workers, create the loader inside each worker process after fork, not in the parent before fork.
|
|
91
|
+
|
|
75
92
|
## API
|
|
76
93
|
|
|
77
94
|
- `AgileConfigLoader(url, app_id, secret, env)` creates the singleton loader and starts its listener.
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# agileconfig-python
|
|
2
2
|
|
|
3
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/publish.yml)
|
|
5
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
6
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
7
|
+
|
|
3
8
|
Python client for [AgileConfig](https://github.com/dotnetcore/AgileConfig). The client loads configuration over HTTP, listens for reload notifications over WebSocket, and falls back to `os.environ` when the server is unavailable.
|
|
4
9
|
|
|
5
10
|
## Installation
|
|
@@ -26,6 +31,18 @@ loader.stop()
|
|
|
26
31
|
|
|
27
32
|
The initial HTTP request populates the cache. When AgileConfig publishes a reload event, the cache is refreshed. If the server cannot be reached within the configured timeout, `get_var_value` reads the variable name from the process environment and ignores its prefix.
|
|
28
33
|
|
|
34
|
+
## Singleton behavior and safety notes
|
|
35
|
+
|
|
36
|
+
`AgileConfigLoader` is a process-wide singleton. Creating it multiple times in the same Python process returns the same instance and does not reinitialize it.
|
|
37
|
+
|
|
38
|
+
Important implications:
|
|
39
|
+
|
|
40
|
+
- Do not assume a second `AgileConfigLoader(...)` call with different credentials or URL will switch connections. The first initialization wins for the process lifetime.
|
|
41
|
+
- Avoid creating loaders in many modules with different parameters. Prefer one startup location and reuse that instance.
|
|
42
|
+
- Calling `loader.stop()` stops the shared background listener for the singleton. Other parts of your app using the same loader will stop receiving updates.
|
|
43
|
+
- In tests, call `stop()` during teardown to avoid background-thread leakage across test cases.
|
|
44
|
+
- If your process forks workers, create the loader inside each worker process after fork, not in the parent before fork.
|
|
45
|
+
|
|
29
46
|
## API
|
|
30
47
|
|
|
31
48
|
- `AgileConfigLoader(url, app_id, secret, env)` creates the singleton loader and starts its listener.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agileconfig-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Python client for AgileConfig with WebSocket updates and environment fallback
|
|
5
5
|
Author: Wei Zheng
|
|
6
6
|
License: MIT License
|
|
@@ -46,6 +46,11 @@ Dynamic: license-file
|
|
|
46
46
|
|
|
47
47
|
# agileconfig-python
|
|
48
48
|
|
|
49
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/ci.yml)
|
|
50
|
+
[](https://github.com/IshootLaser/agileconfig-python/actions/workflows/publish.yml)
|
|
51
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
52
|
+
[](https://pypi.org/project/agileconfig-python/)
|
|
53
|
+
|
|
49
54
|
Python client for [AgileConfig](https://github.com/dotnetcore/AgileConfig). The client loads configuration over HTTP, listens for reload notifications over WebSocket, and falls back to `os.environ` when the server is unavailable.
|
|
50
55
|
|
|
51
56
|
## Installation
|
|
@@ -72,6 +77,18 @@ loader.stop()
|
|
|
72
77
|
|
|
73
78
|
The initial HTTP request populates the cache. When AgileConfig publishes a reload event, the cache is refreshed. If the server cannot be reached within the configured timeout, `get_var_value` reads the variable name from the process environment and ignores its prefix.
|
|
74
79
|
|
|
80
|
+
## Singleton behavior and safety notes
|
|
81
|
+
|
|
82
|
+
`AgileConfigLoader` is a process-wide singleton. Creating it multiple times in the same Python process returns the same instance and does not reinitialize it.
|
|
83
|
+
|
|
84
|
+
Important implications:
|
|
85
|
+
|
|
86
|
+
- Do not assume a second `AgileConfigLoader(...)` call with different credentials or URL will switch connections. The first initialization wins for the process lifetime.
|
|
87
|
+
- Avoid creating loaders in many modules with different parameters. Prefer one startup location and reuse that instance.
|
|
88
|
+
- Calling `loader.stop()` stops the shared background listener for the singleton. Other parts of your app using the same loader will stop receiving updates.
|
|
89
|
+
- In tests, call `stop()` during teardown to avoid background-thread leakage across test cases.
|
|
90
|
+
- If your process forks workers, create the loader inside each worker process after fork, not in the parent before fork.
|
|
91
|
+
|
|
75
92
|
## API
|
|
76
93
|
|
|
77
94
|
- `AgileConfigLoader(url, app_id, secret, env)` creates the singleton loader and starts its listener.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{agileconfig_python-0.1.2 → agileconfig_python-0.1.4}/agileconfig_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|