config2py 0.1.44__tar.gz → 0.1.45__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 (29) hide show
  1. config2py-0.1.45/.gitattributes +1 -0
  2. config2py-0.1.45/.github/workflows/ci.yml +171 -0
  3. config2py-0.1.45/.gitignore +119 -0
  4. {config2py-0.1.44 → config2py-0.1.45}/PKG-INFO +13 -7
  5. {config2py-0.1.44 → config2py-0.1.45}/config2py/s_configparser.py +0 -1
  6. {config2py-0.1.44 → config2py-0.1.45}/config2py/tools.py +0 -1
  7. config2py-0.1.45/config_store_test.ini +4 -0
  8. config2py-0.1.45/misc/config2py - demo.ipynb +568 -0
  9. config2py-0.1.44/config2py.egg-info/PKG-INFO → config2py-0.1.45/misc/config2py - demo.md +31 -153
  10. config2py-0.1.45/pyproject.toml +84 -0
  11. {config2py-0.1.44 → config2py-0.1.45}/setup.cfg +1 -5
  12. config2py-0.1.44/config2py.egg-info/SOURCES.txt +0 -22
  13. config2py-0.1.44/config2py.egg-info/dependency_links.txt +0 -1
  14. config2py-0.1.44/config2py.egg-info/not-zip-safe +0 -1
  15. config2py-0.1.44/config2py.egg-info/requires.txt +0 -5
  16. config2py-0.1.44/config2py.egg-info/top_level.txt +0 -1
  17. {config2py-0.1.44 → config2py-0.1.45}/LICENSE +0 -0
  18. {config2py-0.1.44 → config2py-0.1.45}/README.md +0 -0
  19. {config2py-0.1.44 → config2py-0.1.45}/config2py/__init__.py +0 -0
  20. {config2py-0.1.44 → config2py-0.1.45}/config2py/base.py +0 -0
  21. {config2py-0.1.44 → config2py-0.1.45}/config2py/errors.py +0 -0
  22. {config2py-0.1.44 → config2py-0.1.45}/config2py/scrap/__init__.py +0 -0
  23. {config2py-0.1.44 → config2py-0.1.45}/config2py/sync_store.py +0 -0
  24. {config2py-0.1.44 → config2py-0.1.45}/config2py/tests/__init__.py +0 -0
  25. {config2py-0.1.44 → config2py-0.1.45}/config2py/tests/test_sync_store.py +0 -0
  26. {config2py-0.1.44 → config2py-0.1.45}/config2py/tests/test_tools.py +0 -0
  27. {config2py-0.1.44 → config2py-0.1.45}/config2py/tests/utils_for_testing.py +0 -0
  28. {config2py-0.1.44 → config2py-0.1.45}/config2py/util.py +0 -0
  29. {config2py-0.1.44 → config2py-0.1.45}/setup.py +0 -0
@@ -0,0 +1 @@
1
+ *.ipynb linguist-documentation
@@ -0,0 +1,171 @@
1
+ name: Continuous Integration (Modern)
2
+ on: [push, pull_request]
3
+
4
+ env:
5
+ PROJECT_NAME: config2py
6
+
7
+ jobs:
8
+ validation:
9
+ name: Validation
10
+ if: "!contains(github.event.head_commit.message, '[skip ci]')"
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.10", "3.12"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Install Dependencies
25
+ uses: i2mint/wads/actions/install-deps@master
26
+ with:
27
+ dependency-files: pyproject.toml
28
+ extras: dev,test
29
+ # Fallback for projects still using setup.cfg:
30
+ # dependency-files: setup.cfg
31
+ # ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} # Uncomment for private dependencies
32
+
33
+ - name: Format Source Code
34
+ uses: i2mint/wads/actions/ruff-format@master
35
+ with:
36
+ line-length: 88
37
+ target-path: .
38
+
39
+ - name: Lint Validation
40
+ uses: i2mint/wads/actions/ruff-lint@master
41
+ with:
42
+ root-dir: ${{ env.PROJECT_NAME }}
43
+ output-format: github
44
+ # Ruff will read configuration from pyproject.toml
45
+
46
+ - name: Run Tests
47
+ uses: i2mint/wads/actions/run-tests@master
48
+ with:
49
+ root-dir: ${{ env.PROJECT_NAME }}
50
+ exclude: examples,scrap
51
+ coverage: true
52
+ pytest-args: -v --tb=short
53
+
54
+ windows-validation:
55
+ name: Windows Tests (Informational)
56
+ if: "!contains(github.event.head_commit.message, '[skip ci]')"
57
+ runs-on: windows-latest
58
+ continue-on-error: true # Don't fail the entire workflow if Windows tests fail
59
+
60
+ steps:
61
+ - uses: actions/checkout@v4
62
+
63
+ - name: Set up Python 3.10
64
+ uses: actions/setup-python@v5
65
+ with:
66
+ python-version: "3.10"
67
+
68
+ - name: Install Dependencies
69
+ uses: i2mint/wads/actions/install-deps@master
70
+ with:
71
+ dependency-files: pyproject.toml
72
+ extras: dev,test
73
+
74
+ - name: Run tests
75
+ id: test
76
+ continue-on-error: true
77
+ run: pytest
78
+
79
+ - name: Report test results
80
+ if: always()
81
+ run: |
82
+ if [ "${{ steps.test.outcome }}" == "failure" ]; then
83
+ echo "::warning::Windows tests failed but workflow continues"
84
+ echo "## ⚠️ Windows Tests Failed" >> $GITHUB_STEP_SUMMARY
85
+ echo "Tests failed on Windows but this is informational only." >> $GITHUB_STEP_SUMMARY
86
+ else
87
+ echo "## ✅ Windows Tests Passed" >> $GITHUB_STEP_SUMMARY
88
+ fi
89
+
90
+ publish:
91
+ name: Publish
92
+ if: "!contains(github.event.head_commit.message, '[skip ci]') && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main')"
93
+ needs: validation
94
+ runs-on: ubuntu-latest
95
+ strategy:
96
+ matrix:
97
+ python-version: ["3.12"]
98
+
99
+ steps:
100
+ - uses: actions/checkout@v4
101
+ with:
102
+ fetch-depth: 0
103
+ token: ${{ secrets.GITHUB_TOKEN }}
104
+
105
+ - name: Set up Python ${{ matrix.python-version }}
106
+ uses: actions/setup-python@v5
107
+ with:
108
+ python-version: ${{ matrix.python-version }}
109
+
110
+ - name: Format Source Code
111
+ uses: i2mint/wads/actions/ruff-format@master
112
+
113
+ - name: Update Version Number
114
+ id: version
115
+ uses: i2mint/isee/actions/bump-version-number@master
116
+
117
+ - name: Build Distribution
118
+ uses: i2mint/wads/actions/build-dist@master
119
+ with:
120
+ sdist: true
121
+ wheel: true
122
+ # Uncomment for private dependencies:
123
+ # with:
124
+ # ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
125
+
126
+ - name: Publish to PyPI
127
+ uses: i2mint/wads/actions/pypi-upload@master
128
+ with:
129
+ pypi-username: ${{ secrets.PYPI_USERNAME }}
130
+ pypi-password: ${{ secrets.PYPI_PASSWORD }}
131
+ skip-existing: false
132
+
133
+ - name: Track Code Metrics
134
+ uses: i2mint/umpyre/actions/track-metrics@master
135
+ continue-on-error: true # Don't fail CI if metrics collection fails
136
+ with:
137
+ github-token: ${{ secrets.GITHUB_TOKEN }}
138
+ config-path: .github/umpyre-config.yml # Optional: defaults to .umpyre.yml
139
+
140
+ - name: Commit Changes
141
+ uses: i2mint/wads/actions/git-commit@master
142
+ with:
143
+ commit-message: "**CI** Formatted code + Updated version to ${{ env.VERSION }} [skip ci]"
144
+ ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
145
+ push: true
146
+
147
+ - name: Tag Repository
148
+ uses: i2mint/wads/actions/git-tag@master
149
+ with:
150
+ tag: ${{ env.VERSION }}
151
+ message: "Release version ${{ env.VERSION }}"
152
+ push: true
153
+
154
+
155
+ github-pages:
156
+ name: Publish GitHub Pages
157
+
158
+ permissions:
159
+ contents: write
160
+ pages: write
161
+ id-token: write
162
+
163
+ if: "!contains(github.event.head_commit.message, '[skip ci]') && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)"
164
+ needs: publish
165
+ runs-on: ubuntu-latest
166
+
167
+ steps:
168
+ - uses: i2mint/epythet/actions/publish-github-pages@master
169
+ with:
170
+ github-token: ${{ secrets.GITHUB_TOKEN }}
171
+ ignore: "tests/,scrap/,examples/"
@@ -0,0 +1,119 @@
1
+ docs/*
2
+ docsrc/*
3
+ wads_configs.json
4
+ data/wads_configs.json
5
+ wads/data/wads_configs.json
6
+
7
+ # Byte-compiled / optimized / DLL files
8
+ __pycache__/
9
+ *.py[cod]
10
+ *$py.class
11
+
12
+
13
+ .DS_Store
14
+ # C extensions
15
+ *.so
16
+
17
+ # Distribution / packaging
18
+ .Python
19
+ build/
20
+ develop-eggs/
21
+ dist/
22
+ downloads/
23
+ eggs/
24
+ .eggs/
25
+ lib/
26
+ lib64/
27
+ parts/
28
+ sdist/
29
+ var/
30
+ wheels/
31
+ *.egg-info/
32
+ .installed.cfg
33
+ *.egg
34
+ MANIFEST
35
+ _build
36
+
37
+ # PyInstaller
38
+ # Usually these files are written by a python script from a template
39
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
40
+ *.manifest
41
+ *.spec
42
+
43
+ # Installer logs
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Unit test / coverage reports
48
+ htmlcov/
49
+ .tox/
50
+ .coverage
51
+ .coverage.*
52
+ .cache
53
+ nosetests.xml
54
+ coverage.xml
55
+ *.cover
56
+ .hypothesis/
57
+ .pytest_cache/
58
+
59
+ # Translations
60
+ *.mo
61
+ *.pot
62
+
63
+ # Django stuff:
64
+ *.log
65
+ local_settings.py
66
+ db.sqlite3
67
+
68
+ # Flask stuff:
69
+ instance/
70
+ .webassets-cache
71
+
72
+ # Scrapy stuff:
73
+ .scrapy
74
+
75
+ # Sphinx documentation
76
+ docs/_build/
77
+
78
+ # PyBuilder
79
+ target/
80
+
81
+ # Jupyter Notebook
82
+ .ipynb_checkpoints
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # celery beat schedule file
88
+ celerybeat-schedule
89
+
90
+ # SageMath parsed files
91
+ *.sage.py
92
+
93
+ # Environments
94
+ .env
95
+ .venv
96
+ env/
97
+ venv/
98
+ ENV/
99
+ env.bak/
100
+ venv.bak/
101
+
102
+ # Spyder project settings
103
+ .spyderproject
104
+ .spyproject
105
+
106
+ # Rope project settings
107
+ .ropeproject
108
+
109
+ # mkdocs documentation
110
+ /site
111
+
112
+ # mypy
113
+ .mypy_cache/
114
+
115
+ # PyCharm
116
+ .idea
117
+
118
+ # Notebook playground
119
+ vf.ipynb
@@ -1,16 +1,22 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: config2py
3
- Version: 0.1.44
3
+ Version: 0.1.45
4
4
  Summary: Simplified reading and writing configurations from various sources and formats
5
- Home-page: https://github.com/i2mint/config2py
6
- License: apache-2.0
7
- Platform: any
8
- Description-Content-Type: text/markdown
5
+ Project-URL: Homepage, https://github.com/i2mint/config2py
6
+ License: Apache-2.0
9
7
  License-File: LICENSE
8
+ Requires-Python: >=3.10
10
9
  Requires-Dist: dol
11
10
  Requires-Dist: i2
12
- Requires-Dist: importlib_resources; python_version < "3.9"
13
- Dynamic: license-file
11
+ Requires-Dist: importlib-resources; python_version < '3.9'
12
+ Provides-Extra: dev
13
+ Requires-Dist: pytest-cov>=4.0; extra == 'dev'
14
+ Requires-Dist: pytest>=7.0; extra == 'dev'
15
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
16
+ Provides-Extra: docs
17
+ Requires-Dist: sphinx-rtd-theme>=1.0; extra == 'docs'
18
+ Requires-Dist: sphinx>=6.0; extra == 'docs'
19
+ Description-Content-Type: text/markdown
14
20
 
15
21
  # config2py
16
22
 
@@ -218,7 +218,6 @@ class ConfigStore(ConfigParserStore):
218
218
  target_kind=None,
219
219
  **more_config_parser_kwargs,
220
220
  ):
221
-
222
221
  super().__init__(
223
222
  defaults, dict_type, allow_no_value, **more_config_parser_kwargs
224
223
  )
@@ -209,7 +209,6 @@ def source_config_params(*config_params):
209
209
  """
210
210
 
211
211
  def wrapper(func):
212
-
213
212
  sig = Sig(func)
214
213
 
215
214
  @sig.add_params(["_config_getter"])
@@ -0,0 +1,4 @@
1
+ [nothing]
2
+ like = that
3
+ ever = happened
4
+