pymergetic-core 0.0.1.post1.dev1__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.
@@ -0,0 +1,207 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ #uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+ #poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ #pdm.lock
116
+ #pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ #pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # SageMath parsed files
135
+ *.sage.py
136
+
137
+ # Environments
138
+ .env
139
+ .envrc
140
+ .venv
141
+ env/
142
+ venv/
143
+ ENV/
144
+ env.bak/
145
+ venv.bak/
146
+
147
+ # Spyder project settings
148
+ .spyderproject
149
+ .spyproject
150
+
151
+ # Rope project settings
152
+ .ropeproject
153
+
154
+ # mkdocs documentation
155
+ /site
156
+
157
+ # mypy
158
+ .mypy_cache/
159
+ .dmypy.json
160
+ dmypy.json
161
+
162
+ # Pyre type checker
163
+ .pyre/
164
+
165
+ # pytype static type analyzer
166
+ .pytype/
167
+
168
+ # Cython debug symbols
169
+ cython_debug/
170
+
171
+ # PyCharm
172
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
175
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
+ #.idea/
177
+
178
+ # Abstra
179
+ # Abstra is an AI-powered process automation framework.
180
+ # Ignore directories containing user credentials, local state, and settings.
181
+ # Learn more at https://abstra.io/docs
182
+ .abstra/
183
+
184
+ # Visual Studio Code
185
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
186
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
187
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
188
+ # you could uncomment the following to ignore the entire vscode folder
189
+ # .vscode/
190
+
191
+ # Ruff stuff:
192
+ .ruff_cache/
193
+
194
+ # PyPI configuration file
195
+ .pypirc
196
+
197
+ # Cursor
198
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
199
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
200
+ # refer to https://docs.cursor.com/context/ignore-files
201
+ .cursorignore
202
+ .cursorindexingignore
203
+
204
+ # Marimo
205
+ marimo/_static/
206
+ marimo/_lsp/
207
+ __marimo__/
@@ -0,0 +1,75 @@
1
+ # Variables
2
+ # Derive version from Python package (__version__) only
3
+ VERSION := $(shell python -c "import pymergetic.core; print(pymergetic.core.__version__)" 2>/dev/null)
4
+ ifeq ($(strip $(VERSION)),)
5
+ $(error VERSION is empty; ensure pymergetic.core is importable and __version__ is set)
6
+ endif
7
+ ifeq ($(VERSION),0.0.0)
8
+ $(warning VERSION is 0.0.0 (fallback); ensure proper version is set or tag exists)
9
+ endif
10
+ # Compute NEXT_VERSION by bumping patch of VERSION (override if needed)
11
+ NEXT_VERSION ?= $(shell python -c "import pymergetic.core,re; v=pymergetic.core.__version__; m=re.match(r'^v?(\\d+)\\.(\\d+)\\.(\\d+)', v or '0.0.0'); maj,mi,pa = m.groups() if m else ('0','0','0'); print(f'{maj}.{mi}.{int(pa)+1}')" 2>/dev/null)
12
+ PYTHON ?= python
13
+ PIP ?= python -m pip
14
+
15
+ # Helper
16
+ # Strip leading 'v' from git tag for version (v0.2.1 -> 0.2.1)
17
+ PKG_VERSION := $(patsubst v%,%,$(VERSION))
18
+
19
+ .PHONY: help
20
+ help:
21
+ @echo "Targets:"
22
+ @echo " build - Build python sdist/wheel"
23
+ @echo " publish - Publish python package to PyPI (twine)"
24
+ @echo " tag - Create and push git tag v$(VERSION) (uses Python __version__)"
25
+ @echo " tag-<ver> - e.g., make tag-$(NEXT_VERSION) (shorthand for VERSION=<ver>)"
26
+ @echo " release - Tag git, push tag, build & publish PyPI"
27
+ @echo " release-<ver> - e.g., make release-$(NEXT_VERSION) (shorthand for VERSION=<ver>)"
28
+ @echo " version - Show current version (from Python __version__)"
29
+ @echo " version-source - Show version and source (metadata|setuptools_scm)"
30
+
31
+ .PHONY: build
32
+ build:
33
+ @echo "Building python package"
34
+ export SETUPTOOLS_SCM_LOCAL_SCHEME=no-local-version && \
35
+ rm -rf dist build *.egg-info && \
36
+ $(PIP) install -U build twine && \
37
+ $(PYTHON) -m build
38
+
39
+ .PHONY: publish
40
+ publish:
41
+ @echo "Publishing python package"
42
+ export SETUPTOOLS_SCM_LOCAL_SCHEME=no-local-version && \
43
+ $(PYTHON) -m twine upload dist/*
44
+
45
+ .PHONY: tag
46
+ tag:
47
+ @git tag -a v$(VERSION) -m "Release $(VERSION)"
48
+ @git push origin v$(VERSION)
49
+
50
+ .PHONY: tag-push
51
+ tag-push:
52
+ @git push origin v$(VERSION)
53
+
54
+ .PHONY: release
55
+ release: tag build publish
56
+ @echo "Release completed: $(VERSION)"
57
+
58
+ # Show current version
59
+ .PHONY: version
60
+ version:
61
+ @python -c "import pymergetic.core; print(pymergetic.core.__version__)"
62
+
63
+ .PHONY: version-source
64
+ version-source:
65
+ @python -c "import pymergetic.core; print(pymergetic.core.__version_source__)"
66
+
67
+ # Convenience pattern targets: make tag-0.2.1 / make release-0.2.1
68
+ .PHONY: tag-%
69
+ tag-%:
70
+ @$(MAKE) tag VERSION=$*
71
+
72
+ .PHONY: release-%
73
+ release-%:
74
+ @$(MAKE) release VERSION=$*
75
+
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: pymergetic-core
3
+ Version: 0.0.1.post1.dev1
4
+ Summary: Core package for PymergeticOS with optional feature groups
5
+ Author-email: PymergeticOS Maintainers <maintainers@example.com>
6
+ License-Expression: Apache-2.0
7
+ Keywords: pymergetic,core,os
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Operating System :: POSIX :: Linux
12
+ Requires-Python: >=3.11
13
+ Description-Content-Type: text/markdown
14
+ Provides-Extra: console
15
+ Requires-Dist: fire>=0.7.1; extra == "console"
16
+ Requires-Dist: rich>=13.0.0; extra == "console"
17
+ Provides-Extra: config
18
+ Requires-Dist: pydantic>=2.0.0; extra == "config"
19
+ Requires-Dist: pydantic-settings>=2.0.0; extra == "config"
20
+ Requires-Dist: pyyaml>=6.0; extra == "config"
21
+
22
+ # Pymergetic Core
23
+
24
+ Core package for PymergeticOS with optional feature groups organized by topic.
25
+
26
+ ## Installation
27
+
28
+ ### Base Package
29
+
30
+ ```bash
31
+ pip install pymergetic-core
32
+ ```
33
+
34
+ ### With Optional Dependencies
35
+
36
+ ```bash
37
+ # Install with console features (CLI tools)
38
+ pip install pymergetic-core[console]
39
+
40
+ # Install with config features (configuration management)
41
+ pip install pymergetic-core[config]
42
+
43
+ # Install with multiple extras
44
+ pip install pymergetic-core[console,config]
45
+ ```
46
+
47
+ ## Optional Dependencies (Extras)
48
+
49
+ - **console**: Virtual console and CLI package dependencies
50
+ - `fire>=0.5.0` - Python Fire for CLI interfaces
51
+ - `rich>=13.0.0` - Rich text and beautiful formatting for terminal
52
+
53
+ - **config**: Configuration management dependencies
54
+ - `pydantic>=2.0.0` - Data validation using Python type annotations
55
+ - `pydantic-settings>=2.0.0` - Settings management using Pydantic
56
+ - `pyyaml>=6.0` - YAML parser and emitter
57
+
58
+ ## Development
59
+
60
+ ### Building and Publishing
61
+
62
+ ```bash
63
+ # Build package
64
+ make build
65
+
66
+ # Publish to PyPI
67
+ make publish
68
+
69
+ # Full release (tag, build, publish)
70
+ make release
71
+ ```
72
+
73
+ See `Makefile` for all available targets.
74
+
@@ -0,0 +1,53 @@
1
+ # Pymergetic Core
2
+
3
+ Core package for PymergeticOS with optional feature groups organized by topic.
4
+
5
+ ## Installation
6
+
7
+ ### Base Package
8
+
9
+ ```bash
10
+ pip install pymergetic-core
11
+ ```
12
+
13
+ ### With Optional Dependencies
14
+
15
+ ```bash
16
+ # Install with console features (CLI tools)
17
+ pip install pymergetic-core[console]
18
+
19
+ # Install with config features (configuration management)
20
+ pip install pymergetic-core[config]
21
+
22
+ # Install with multiple extras
23
+ pip install pymergetic-core[console,config]
24
+ ```
25
+
26
+ ## Optional Dependencies (Extras)
27
+
28
+ - **console**: Virtual console and CLI package dependencies
29
+ - `fire>=0.5.0` - Python Fire for CLI interfaces
30
+ - `rich>=13.0.0` - Rich text and beautiful formatting for terminal
31
+
32
+ - **config**: Configuration management dependencies
33
+ - `pydantic>=2.0.0` - Data validation using Python type annotations
34
+ - `pydantic-settings>=2.0.0` - Settings management using Pydantic
35
+ - `pyyaml>=6.0` - YAML parser and emitter
36
+
37
+ ## Development
38
+
39
+ ### Building and Publishing
40
+
41
+ ```bash
42
+ # Build package
43
+ make build
44
+
45
+ # Publish to PyPI
46
+ make publish
47
+
48
+ # Full release (tag, build, publish)
49
+ make release
50
+ ```
51
+
52
+ See `Makefile` for all available targets.
53
+
@@ -0,0 +1,43 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "setuptools-scm>=8"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "pymergetic-core"
7
+ dynamic = ["version"]
8
+ description = "Core package for PymergeticOS with optional feature groups"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = "Apache-2.0"
12
+ authors = [
13
+ { name = "PymergeticOS Maintainers", email = "maintainers@example.com" }
14
+ ]
15
+ keywords = ["pymergetic", "core", "os"]
16
+ classifiers = [
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3.11",
19
+ "Programming Language :: Python :: 3.12",
20
+ "Operating System :: POSIX :: Linux",
21
+ ]
22
+
23
+ dependencies = []
24
+
25
+ [project.optional-dependencies]
26
+ console = [
27
+ "fire>=0.7.1",
28
+ "rich>=13.0.0",
29
+ ]
30
+ config = [
31
+ "pydantic>=2.0.0",
32
+ "pydantic-settings>=2.0.0",
33
+ "pyyaml>=6.0",
34
+ ]
35
+
36
+ [tool.setuptools.packages.find]
37
+ where = ["src"]
38
+
39
+ [tool.setuptools_scm]
40
+ version_scheme = "no-guess-dev"
41
+ local_scheme = "no-local-version"
42
+ fallback_version = "0.0.0"
43
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,4 @@
1
+ """PymergeticOS Core package."""
2
+
3
+ from .__project__ import __version__, __package_name__
4
+
@@ -0,0 +1,13 @@
1
+ __package_name__ = "pymergetic-core"
2
+
3
+ try:
4
+ from importlib.metadata import version as _pkg_version
5
+ __version__ = _pkg_version(__package_name__)
6
+ except Exception:
7
+ # Fallback to setuptools_scm (computes version from git tags)
8
+ try:
9
+ from setuptools_scm import get_version as _get_version # type: ignore
10
+ __version__ = _get_version(root="../../..", relative_to=__file__, local_scheme="no-local-version")
11
+ except Exception:
12
+ __version__ = "0.0.0"
13
+
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: pymergetic-core
3
+ Version: 0.0.1.post1.dev1
4
+ Summary: Core package for PymergeticOS with optional feature groups
5
+ Author-email: PymergeticOS Maintainers <maintainers@example.com>
6
+ License-Expression: Apache-2.0
7
+ Keywords: pymergetic,core,os
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Operating System :: POSIX :: Linux
12
+ Requires-Python: >=3.11
13
+ Description-Content-Type: text/markdown
14
+ Provides-Extra: console
15
+ Requires-Dist: fire>=0.7.1; extra == "console"
16
+ Requires-Dist: rich>=13.0.0; extra == "console"
17
+ Provides-Extra: config
18
+ Requires-Dist: pydantic>=2.0.0; extra == "config"
19
+ Requires-Dist: pydantic-settings>=2.0.0; extra == "config"
20
+ Requires-Dist: pyyaml>=6.0; extra == "config"
21
+
22
+ # Pymergetic Core
23
+
24
+ Core package for PymergeticOS with optional feature groups organized by topic.
25
+
26
+ ## Installation
27
+
28
+ ### Base Package
29
+
30
+ ```bash
31
+ pip install pymergetic-core
32
+ ```
33
+
34
+ ### With Optional Dependencies
35
+
36
+ ```bash
37
+ # Install with console features (CLI tools)
38
+ pip install pymergetic-core[console]
39
+
40
+ # Install with config features (configuration management)
41
+ pip install pymergetic-core[config]
42
+
43
+ # Install with multiple extras
44
+ pip install pymergetic-core[console,config]
45
+ ```
46
+
47
+ ## Optional Dependencies (Extras)
48
+
49
+ - **console**: Virtual console and CLI package dependencies
50
+ - `fire>=0.5.0` - Python Fire for CLI interfaces
51
+ - `rich>=13.0.0` - Rich text and beautiful formatting for terminal
52
+
53
+ - **config**: Configuration management dependencies
54
+ - `pydantic>=2.0.0` - Data validation using Python type annotations
55
+ - `pydantic-settings>=2.0.0` - Settings management using Pydantic
56
+ - `pyyaml>=6.0` - YAML parser and emitter
57
+
58
+ ## Development
59
+
60
+ ### Building and Publishing
61
+
62
+ ```bash
63
+ # Build package
64
+ make build
65
+
66
+ # Publish to PyPI
67
+ make publish
68
+
69
+ # Full release (tag, build, publish)
70
+ make release
71
+ ```
72
+
73
+ See `Makefile` for all available targets.
74
+
@@ -0,0 +1,11 @@
1
+ .gitignore
2
+ Makefile
3
+ README.md
4
+ pyproject.toml
5
+ src/pymergetic/core/__init__.py
6
+ src/pymergetic/core/__project__.py
7
+ src/pymergetic_core.egg-info/PKG-INFO
8
+ src/pymergetic_core.egg-info/SOURCES.txt
9
+ src/pymergetic_core.egg-info/dependency_links.txt
10
+ src/pymergetic_core.egg-info/requires.txt
11
+ src/pymergetic_core.egg-info/top_level.txt
@@ -0,0 +1,9 @@
1
+
2
+ [config]
3
+ pydantic>=2.0.0
4
+ pydantic-settings>=2.0.0
5
+ pyyaml>=6.0
6
+
7
+ [console]
8
+ fire>=0.7.1
9
+ rich>=13.0.0