medium-modulation 0.1.0__tar.gz → 1.0.0__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 (35) hide show
  1. medium_modulation-1.0.0/.gitattributes +2 -0
  2. medium_modulation-1.0.0/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  3. medium_modulation-1.0.0/.github/ISSUE_TEMPLATE/feature_request.md +29 -0
  4. medium_modulation-1.0.0/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  5. medium_modulation-1.0.0/.github/workflows/ci.yml +63 -0
  6. medium_modulation-1.0.0/.github/workflows/release.yml +121 -0
  7. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/.gitignore +22 -22
  8. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/.pre-commit-config.yaml +17 -17
  9. medium_modulation-1.0.0/.zenodo.json +33 -0
  10. medium_modulation-1.0.0/CHANGELOG.md +24 -0
  11. medium_modulation-1.0.0/CONTRIBUTING.md +47 -0
  12. medium_modulation-1.0.0/LICENSE +12 -0
  13. medium_modulation-1.0.0/LICENSE-CODE +214 -0
  14. medium_modulation-1.0.0/LICENSE-DOCS +34 -0
  15. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/PKG-INFO +34 -8
  16. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/README.md +95 -72
  17. medium_modulation-1.0.0/README_QUICKSTART.md +52 -0
  18. medium_modulation-1.0.0/RELEASE_GUIDE.md +42 -0
  19. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/docs/cli.md +88 -88
  20. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/docs/index.md +37 -37
  21. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/docs/templates.md +111 -111
  22. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/domains.yaml +5 -5
  23. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/mkdocs.yml +43 -43
  24. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/pyproject.toml +55 -54
  25. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/src/medium_modulation/__init__.py +7 -7
  26. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/src/medium_modulation/cli.py +80 -80
  27. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/src/medium_modulation/core.py +75 -75
  28. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/src/medium_modulation/entropy_table_bridge.py +42 -42
  29. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/tests/test_bridge.py +68 -68
  30. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/tests/test_cli.py +70 -70
  31. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/tests/test_core.py +99 -99
  32. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/uv.lock +1713 -1713
  33. medium_modulation-0.1.0/.github/workflows/ci.yml +0 -48
  34. medium_modulation-0.1.0/LICENSE +0 -21
  35. {medium_modulation-0.1.0 → medium_modulation-1.0.0}/tests/__init__.py +0 -0
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report something that isn't working as expected
4
+ title: "[BUG] "
5
+ labels: bug
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Description
10
+
11
+ A clear and concise description of the bug.
12
+
13
+ ## Steps to reproduce
14
+
15
+ 1. ...
16
+ 2. ...
17
+ 3. ...
18
+
19
+ ## Expected behavior
20
+
21
+ What you expected to happen.
22
+
23
+ ## Actual behavior
24
+
25
+ What actually happened (include full error messages / tracebacks if any).
26
+
27
+ ## Environment
28
+
29
+ - Package version: (`pip show medium-modulation` or `git describe --tags`)
30
+ - Python version:
31
+ - OS:
32
+
33
+ ## Additional context
34
+
35
+ Anything else relevant — logs, screenshots, related issues.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest a new feature, module, or enhancement
4
+ title: "[FEATURE] "
5
+ labels: enhancement
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Summary
10
+
11
+ A clear and concise description of the feature.
12
+
13
+ ## Motivation
14
+
15
+ Why is this needed? What problem does it solve, or what new capability
16
+ does it enable within the GenesisAeon ecosystem?
17
+
18
+ ## Proposed approach
19
+
20
+ How might this be implemented? (Sketches, pseudocode, references to
21
+ related GenesisAeon packages are welcome.)
22
+
23
+ ## Alternatives considered
24
+
25
+ Any alternative approaches you've thought about.
26
+
27
+ ## Additional context
28
+
29
+ Links to relevant papers, prior discussion, or related issues/PRs.
@@ -0,0 +1,28 @@
1
+ ## Summary
2
+
3
+ What does this PR do, in one or two sentences?
4
+
5
+ ## Related issue(s)
6
+
7
+ Closes #...
8
+
9
+ ## Type of change
10
+
11
+ - [ ] Bug fix
12
+ - [ ] New feature
13
+ - [ ] Breaking change (public API)
14
+ - [ ] Documentation
15
+ - [ ] Tooling / CI / release process
16
+ - [ ] Dependency update
17
+
18
+ ## Checklist
19
+
20
+ - [ ] Tests added/updated and passing locally (`pytest`)
21
+ - [ ] `CHANGELOG.md` updated under `## [Unreleased]`
22
+ - [ ] Documentation updated (README, docstrings, notebooks if relevant)
23
+ - [ ] If this touches scientific claims/predictions: sources cited and
24
+ speculative vs. validated status is clear
25
+
26
+ ## Additional notes
27
+
28
+ Anything reviewers should know.
@@ -0,0 +1,63 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["main", "master", "claude/**"]
6
+ pull_request:
7
+ branches: ["main", "master"]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ name: Lint (ruff + mypy)
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.11"
22
+ - name: Install dev dependencies
23
+ run: pip install -e ".[dev]"
24
+ - name: Run ruff
25
+ run: ruff check src tests
26
+ - name: Run mypy
27
+ run: mypy src
28
+
29
+ test:
30
+ name: Tests (Python ${{ matrix.python-version }})
31
+ runs-on: ubuntu-latest
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ python-version: ["3.11", "3.12"]
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+ - name: Install dependencies
42
+ run: pip install -e ".[dev]"
43
+ - name: Run pytest with coverage
44
+ run: pytest --cov=src --cov-report=xml
45
+ - name: Upload coverage
46
+ if: matrix.python-version == '3.11'
47
+ uses: codecov/codecov-action@v4
48
+ with:
49
+ token: ${{ secrets.CODECOV_TOKEN }}
50
+ files: coverage.xml
51
+
52
+ docs:
53
+ name: Docs (mkdocs --strict)
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+ - uses: actions/setup-python@v5
58
+ with:
59
+ python-version: "3.11"
60
+ - name: Install docs dependencies
61
+ run: pip install -e ".[docs]"
62
+ - name: Build docs
63
+ run: mkdocs build --strict
@@ -0,0 +1,121 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+ - "v*.*.*-rc*"
8
+ - "v*.*.*-alpha*"
9
+ - "v*.*.*-beta*"
10
+
11
+ permissions:
12
+ contents: write
13
+ id-token: write # for PyPI trusted publishing, if configured
14
+
15
+ jobs:
16
+ build:
17
+ name: Build distribution
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - name: Set up Python
25
+ uses: actions/setup-python@v5
26
+ with:
27
+ python-version: "3.12"
28
+
29
+ - name: Install build tooling
30
+ run: python -m pip install --upgrade pip build
31
+
32
+ - name: Build sdist and wheel
33
+ run: python -m build
34
+
35
+ - name: Upload build artifacts
36
+ uses: actions/upload-artifact@v4
37
+ with:
38
+ name: dist
39
+ path: dist/
40
+
41
+ test:
42
+ name: Run test suite
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+
47
+ - name: Set up Python
48
+ uses: actions/setup-python@v5
49
+ with:
50
+ python-version: "3.12"
51
+
52
+ - name: Install package with dev/test extras
53
+ run: |
54
+ python -m pip install --upgrade pip
55
+ if python -c "import tomllib" 2>/dev/null; then :; fi
56
+ pip install -e ".[dev]" 2>/dev/null || pip install -e ".[test]" 2>/dev/null || pip install -e "."
57
+ pip install pytest pytest-cov
58
+
59
+ - name: Run tests
60
+ run: pytest -q || pytest -q --no-header
61
+
62
+ publish-canary:
63
+ name: Publish canary (TestPyPI + pre-release)
64
+ needs: [build, test]
65
+ if: contains(github.ref_name, '-rc') || contains(github.ref_name, '-alpha') || contains(github.ref_name, '-beta')
66
+ runs-on: ubuntu-latest
67
+ environment: testpypi
68
+ steps:
69
+ - uses: actions/download-artifact@v4
70
+ with:
71
+ name: dist
72
+ path: dist/
73
+
74
+ - name: Publish to TestPyPI
75
+ uses: pypa/gh-action-pypi-publish@release/v1
76
+ with:
77
+ repository-url: https://test.pypi.org/legacy/
78
+ password: ${{ secrets.TEST_PYPI_API_TOKEN }}
79
+ skip-existing: true
80
+
81
+ - name: Create GitHub pre-release
82
+ uses: softprops/action-gh-release@v2
83
+ with:
84
+ files: dist/*
85
+ prerelease: true
86
+ generate_release_notes: true
87
+
88
+ publish-production:
89
+ name: Publish production (PyPI + release + Zenodo archive)
90
+ needs: [build, test]
91
+ if: ${{ !contains(github.ref_name, '-rc') && !contains(github.ref_name, '-alpha') && !contains(github.ref_name, '-beta') }}
92
+ runs-on: ubuntu-latest
93
+ environment: pypi
94
+ steps:
95
+ - uses: actions/download-artifact@v4
96
+ with:
97
+ name: dist
98
+ path: dist/
99
+
100
+ # TODO: if this repo prefers PyPI Trusted Publishing (OIDC, no stored
101
+ # token), replace the `password:` line below with the trusted-publishing
102
+ # form of pypa/gh-action-pypi-publish.
103
+ - name: Publish to PyPI
104
+ uses: pypa/gh-action-pypi-publish@release/v1
105
+ with:
106
+ password: ${{ secrets.PYPI_API_TOKEN }}
107
+ skip-existing: true
108
+
109
+ - name: Create GitHub Release
110
+ uses: softprops/action-gh-release@v2
111
+ with:
112
+ files: dist/*
113
+ prerelease: false
114
+ generate_release_notes: true
115
+
116
+ # NOTE: Zenodo archival of this GitHub Release happens automatically
117
+ # IF this repo has Zenodo-GitHub integration enabled at
118
+ # https://zenodo.org/account/settings/github/ (a per-repo, per-owner
119
+ # OAuth toggle on zenodo.org — cannot be set from a workflow file).
120
+ # Once enabled, every GitHub Release like this one mints/updates a
121
+ # Zenodo DOI automatically using the .zenodo.json metadata in this repo.
@@ -1,22 +1,22 @@
1
- # Python
2
- __pycache__/
3
- *.py[cod]
4
- *.egg-info/
5
- .eggs/
6
- dist/
7
- build/
8
- .venv/
9
- .uv/
10
-
11
- # Testing
12
- .coverage
13
- htmlcov/
14
- .pytest_cache/
15
-
16
- # Docs
17
- site/
18
-
19
- # Editors
20
- .vscode/
21
- .idea/
22
- *.swp
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .eggs/
6
+ dist/
7
+ build/
8
+ .venv/
9
+ .uv/
10
+
11
+ # Testing
12
+ .coverage
13
+ htmlcov/
14
+ .pytest_cache/
15
+
16
+ # Docs
17
+ site/
18
+
19
+ # Editors
20
+ .vscode/
21
+ .idea/
22
+ *.swp
@@ -1,17 +1,17 @@
1
- repos:
2
- - repo: https://github.com/astral-sh/ruff-pre-commit
3
- rev: v0.6.0
4
- hooks:
5
- - id: ruff
6
- args: [--fix]
7
- - id: ruff-format
8
-
9
- - repo: https://github.com/pre-commit/pre-commit-hooks
10
- rev: v4.6.0
11
- hooks:
12
- - id: trailing-whitespace
13
- - id: end-of-file-fixer
14
- - id: check-yaml
15
- - id: check-toml
16
- - id: check-merge-conflict
17
- - id: debug-statements
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.6.0
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - id: ruff-format
8
+
9
+ - repo: https://github.com/pre-commit/pre-commit-hooks
10
+ rev: v4.6.0
11
+ hooks:
12
+ - id: trailing-whitespace
13
+ - id: end-of-file-fixer
14
+ - id: check-yaml
15
+ - id: check-toml
16
+ - id: check-merge-conflict
17
+ - id: debug-statements
@@ -0,0 +1,33 @@
1
+ {
2
+ "title": "medium-modulation — P-MEDIUM: Resonant medium between S∝A and S∝V – fractal modulation operators, resonance spectra and tunable interference for controlled information propagation.",
3
+ "description": "<p>Resonant medium between S∝A and S∝V – fractal modulation operators, resonance spectra and tunable interference for controlled information propagation.</p><p>Part of the <strong>GenesisAeon</strong> ecosystem (P-MEDIUM, domain: fractal modulation (S_A/S_V → coherent emergence)).</p><p>Dual-licensed: source code under GPL-3.0-or-later, documentation under CC BY 4.0.</p><p>See <a href=\"https://github.com/GenesisAeon/medium-modulation\">github.com/GenesisAeon/medium-modulation</a> for source, documentation, and reproducibility notebooks.</p>",
4
+ "creators": [
5
+ {
6
+ "name": "Römer, Johann",
7
+ "affiliation": "Independent Researcher / MOR Research Collective"
8
+ }
9
+ ],
10
+ "license": "GPL-3.0-or-later",
11
+ "upload_type": "software",
12
+ "access_right": "open",
13
+ "keywords": [
14
+ "GenesisAeon",
15
+ "P-MEDIUM",
16
+ "fractal modulation (S_A/S_V → coherent emergence)",
17
+ "UTAC",
18
+ "CREP",
19
+ "open science"
20
+ ],
21
+ "related_identifiers": [
22
+ {
23
+ "identifier": "10.5281/zenodo.19645351",
24
+ "relation": "isPartOf",
25
+ "resource_type": "publication-article",
26
+ "scheme": "doi"
27
+ }
28
+ ],
29
+ "version": "1.0.0",
30
+ "communities": [
31
+ { "identifier": "genesisaeon" }
32
+ ]
33
+ }
@@ -0,0 +1,24 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.0.0] - 2026
11
+ ### Added
12
+ - Initial v1.0.0 release as part of the GenesisAeon ecosystem-wide 1.0.0
13
+ milestone.
14
+ - Standardized release tooling: `.zenodo.json`, GitHub Actions release
15
+ workflow (`.github/workflows/release.yml`), `RELEASE_GUIDE.md`,
16
+ `CONTRIBUTING.md`, issue/PR templates.
17
+
18
+ ### Changed
19
+ - Project metadata (`pyproject.toml`) normalized: version bumped to
20
+ 1.0.0, `requires-python`, and GenesisAeon-ecosystem dependency pins
21
+ updated to `entropy-governance>=1.0.0`, `entropy-table>=2.0.0`,
22
+ `implosive-genesis>=1.0.0`.
23
+ - Re-licensed from MIT to a dual license: source code under
24
+ GPL-3.0-or-later, documentation under CC BY 4.0.
@@ -0,0 +1,47 @@
1
+ # Contributing
2
+
3
+ Thanks for your interest in contributing to this GenesisAeon ecosystem
4
+ package!
5
+
6
+ ## Getting started
7
+
8
+ 1. Fork and clone the repository.
9
+ 2. Create a virtual environment: `python -m venv .venv && source .venv/bin/activate`
10
+ (or `.venv\Scripts\activate` on Windows).
11
+ 3. Install in editable mode with dev dependencies:
12
+ `pip install -e ".[dev]"`.
13
+ 4. Run the test suite: `pytest`.
14
+
15
+ ## Code style
16
+
17
+ - Format and lint with `ruff check` / `ruff format`.
18
+ - Type-check with `mypy`.
19
+ - Keep functions documented with docstrings (NumPy style, matching the
20
+ existing codebase).
21
+
22
+ ## Licensing of contributions
23
+
24
+ This repository is dual-licensed: source code under GPL-3.0-or-later
25
+ (see `LICENSE-CODE`), documentation under CC BY 4.0 (see `LICENSE-DOCS`).
26
+ By submitting a pull request, you agree that your contribution is
27
+ licensed under the same terms as the file(s) you are modifying.
28
+
29
+ ## Pull requests
30
+
31
+ - One logical change per PR.
32
+ - Add or update tests for any behavioral change.
33
+ - Update `CHANGELOG.md` under an `## [Unreleased]` section.
34
+ - Fill out the PR template (`.github/PULL_REQUEST_TEMPLATE.md`).
35
+
36
+ ## Reporting issues
37
+
38
+ Please use the issue templates in `.github/ISSUE_TEMPLATE/` — they help us
39
+ triage bug reports vs. feature requests quickly.
40
+
41
+ ## Scientific claims
42
+
43
+ This is part of a research framework. If your contribution touches any
44
+ scientific model, prediction, or benchmark (e.g. CREP `Γ` values, UTAC
45
+ parameters, falsifiable predictions), please:
46
+ - Cite the source (paper, dataset, or prior GenesisAeon Zenodo record).
47
+ - Clearly mark speculative vs. validated claims.
@@ -0,0 +1,12 @@
1
+ This repository is dual-licensed:
2
+
3
+ - Source code (everything under src/, tests/, and other code files) is
4
+ licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).
5
+ See LICENSE-CODE for the full text.
6
+
7
+ - Documentation (README.md, README_QUICKSTART.md, docs/, and any
8
+ rendered MkDocs site) is licensed under the Creative Commons
9
+ Attribution 4.0 International License (CC BY 4.0).
10
+ See LICENSE-DOCS for the full text.
11
+
12
+ Copyright (C) 2026 Johann Römer / GenesisAeon Project