sigillin 0.1.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.
@@ -0,0 +1,48 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+
8
+ jobs:
9
+ test:
10
+ name: Test (Python ${{ matrix.python-version }})
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.11", "3.12"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v5
22
+ with:
23
+ version: "latest"
24
+
25
+ - name: Set up Python ${{ matrix.python-version }}
26
+ run: uv python install ${{ matrix.python-version }}
27
+
28
+ - name: Install dependencies
29
+ run: uv sync --extra dev
30
+
31
+ - name: Lint (ruff)
32
+ run: uv run ruff check .
33
+
34
+ - name: Format check (ruff)
35
+ run: uv run ruff format --check .
36
+
37
+ - name: Run tests
38
+ run: uv run pytest
39
+
40
+ docs:
41
+ name: Build docs
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - uses: astral-sh/setup-uv@v5
46
+ - run: uv python install 3.11
47
+ - run: uv sync --extra docs
48
+ - run: uv run mkdocs build --strict
@@ -0,0 +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
@@ -0,0 +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
sigillin-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 JohannRömer
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: sigillin
3
+ Version: 0.1.0
4
+ Summary: The poetic-symbolic interface layer of the GenesisAeon stack – self-referential sigil parser, trilayer validation (YAML/JSON/Markdown) and MandalaMap resonance.
5
+ Project-URL: Repository, https://github.com/GenesisAeon/sigillin
6
+ Project-URL: Issues, https://github.com/GenesisAeon/sigillin/issues
7
+ Author-email: GenesisAeon Team <team@genesisaeon.org>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: crep,genesisaeon,mandala,poetry,sigil,symbolic,trilayer
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Artistic Software
19
+ Classifier: Topic :: Scientific/Engineering
20
+ Requires-Python: >=3.11
21
+ Requires-Dist: numpy>=1.26
22
+ Requires-Dist: pyyaml>=6.0
23
+ Requires-Dist: rich>=13.0
24
+ Requires-Dist: typer>=0.15.0
25
+ Provides-Extra: dev
26
+ Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
27
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
28
+ Requires-Dist: pytest>=8.0; extra == 'dev'
29
+ Requires-Dist: ruff>=0.9; extra == 'dev'
30
+ Provides-Extra: docs
31
+ Requires-Dist: mkdocs-material>=9.6; extra == 'docs'
32
+ Requires-Dist: mkdocs>=1.6; extra == 'docs'
33
+ Requires-Dist: mkdocstrings[python]>=0.27; extra == 'docs'
34
+ Provides-Extra: stack
35
+ Requires-Dist: cosmic-moment>=0.1.0; extra == 'stack'
36
+ Requires-Dist: entropy-governance>=0.1.0; extra == 'stack'
37
+ Requires-Dist: entropy-table>=1.0.1; extra == 'stack'
38
+ Requires-Dist: fieldtheory>=0.1.0; extra == 'stack'
39
+ Requires-Dist: implosive-genesis>=0.4.0; extra == 'stack'
40
+ Requires-Dist: medium-modulation>=0.1.0; extra == 'stack'
41
+ Description-Content-Type: text/markdown
42
+
43
+ # sigillin
44
+
45
+ **The poetic-symbolic interface layer** – self-referential sigils that bind fieldtheory,
46
+ cosmic moments and entropy governance into living resonance.
47
+
48
+ [![CI](https://github.com/GenesisAeon/sigillin/actions/workflows/ci.yml/badge.svg)](https://github.com/GenesisAeon/sigillin/actions/workflows/ci.yml)
49
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org)
50
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
51
+ [![PyPI](https://img.shields.io/pypi/v/sigillin)](https://pypi.org/project/sigillin/)
52
+
53
+ ---
54
+
55
+ ## Install
56
+
57
+ ```bash
58
+ pip install sigillin
59
+ # or
60
+ uv add sigillin
61
+
62
+ # Full GenesisAeon stack integration
63
+ pip install sigillin[stack]
64
+ ```
65
+
66
+ ## Usage
67
+
68
+ ```bash
69
+ # Validate a sigil against the CREP schema
70
+ sig validate codex-sigil.yaml
71
+
72
+ # Render MandalaMap resonance spectrum
73
+ sig render cosmic-web.yaml
74
+
75
+ # Inspect sigil fields
76
+ sig inspect codex-sigil.yaml
77
+
78
+ # Create a self-referential provider bridge
79
+ sig bridge openai
80
+ ```
81
+
82
+ ## Sigil format (trilayer: YAML / JSON / Markdown)
83
+
84
+ Sigillin accepts three source formats:
85
+
86
+ ```yaml
87
+ # codex-sigil.yaml
88
+ coherence: 0.97
89
+ resonance: 0.88
90
+ emergence: 0.92
91
+ poetics: "The first sigil – carrier of the primal pattern."
92
+ ```
93
+
94
+ ```json
95
+ { "coherence": 0.97, "resonance": 0.88, "emergence": 0.92, "poetics": "..." }
96
+ ```
97
+
98
+ ```markdown
99
+ ---
100
+ coherence: 0.97
101
+ resonance: 0.88
102
+ emergence: 0.92
103
+ poetics: "The first sigil – carrier of the primal pattern."
104
+ ---
105
+ # Codex Prime
106
+
107
+ Full narrative description here.
108
+ ```
109
+
110
+ ## CREP validation
111
+
112
+ Every sigil is validated against four pillars:
113
+
114
+ | Key | Meaning |
115
+ |---|---|
116
+ | `coherence` | Internal self-consistency |
117
+ | `resonance` | Harmonic alignment with the field |
118
+ | `emergence` | Capacity for novel pattern generation |
119
+ | `poetics` | Narrative / symbolic intent |
120
+
121
+ ```python
122
+ from sigillin import Sigil
123
+
124
+ sigil = Sigil("codex-sigil.yaml")
125
+ sigil.validate_crep() # True / False
126
+ sigil.assert_crep() # raises SigilValidationError if invalid
127
+ ```
128
+
129
+ ## MandalaMap resonance
130
+
131
+ ```python
132
+ spectrum = sigil.render_mandala(depth=0.618) # φ-scaled resonance array
133
+ print(f"Peak: {spectrum.max():.4f}")
134
+ ```
135
+
136
+ ## Stack integration
137
+
138
+ With `pip install sigillin[stack]`, sigillin binds directly to the full GenesisAeon stack:
139
+
140
+ ```python
141
+ sigil.bind_to_field() # returns Lagrangian string from fieldtheory
142
+ ```
143
+
144
+ ```python
145
+ from sigillin.entropy_table_bridge import export_to_entropy_table
146
+ export_to_entropy_table("codex-sigil.yaml")
147
+ ```
148
+
149
+ ## Python API
150
+
151
+ ```python
152
+ from sigillin import Sigil
153
+
154
+ sigil = Sigil("codex-sigil.yaml")
155
+ print(sigil["coherence"]) # 0.97
156
+ print(sigil.get("tags", [])) # []
157
+ print(repr(sigil)) # Sigil(path=..., crep_valid=True)
158
+ ```
159
+
160
+ ---
161
+
162
+ Built with [uv](https://docs.astral.sh/uv/) · [Typer](https://typer.tiangolo.com/) ·
163
+ [Rich](https://rich.readthedocs.io/) · [NumPy](https://numpy.org/)
@@ -0,0 +1,121 @@
1
+ # sigillin
2
+
3
+ **The poetic-symbolic interface layer** – self-referential sigils that bind fieldtheory,
4
+ cosmic moments and entropy governance into living resonance.
5
+
6
+ [![CI](https://github.com/GenesisAeon/sigillin/actions/workflows/ci.yml/badge.svg)](https://github.com/GenesisAeon/sigillin/actions/workflows/ci.yml)
7
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
9
+ [![PyPI](https://img.shields.io/pypi/v/sigillin)](https://pypi.org/project/sigillin/)
10
+
11
+ ---
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ pip install sigillin
17
+ # or
18
+ uv add sigillin
19
+
20
+ # Full GenesisAeon stack integration
21
+ pip install sigillin[stack]
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ```bash
27
+ # Validate a sigil against the CREP schema
28
+ sig validate codex-sigil.yaml
29
+
30
+ # Render MandalaMap resonance spectrum
31
+ sig render cosmic-web.yaml
32
+
33
+ # Inspect sigil fields
34
+ sig inspect codex-sigil.yaml
35
+
36
+ # Create a self-referential provider bridge
37
+ sig bridge openai
38
+ ```
39
+
40
+ ## Sigil format (trilayer: YAML / JSON / Markdown)
41
+
42
+ Sigillin accepts three source formats:
43
+
44
+ ```yaml
45
+ # codex-sigil.yaml
46
+ coherence: 0.97
47
+ resonance: 0.88
48
+ emergence: 0.92
49
+ poetics: "The first sigil – carrier of the primal pattern."
50
+ ```
51
+
52
+ ```json
53
+ { "coherence": 0.97, "resonance": 0.88, "emergence": 0.92, "poetics": "..." }
54
+ ```
55
+
56
+ ```markdown
57
+ ---
58
+ coherence: 0.97
59
+ resonance: 0.88
60
+ emergence: 0.92
61
+ poetics: "The first sigil – carrier of the primal pattern."
62
+ ---
63
+ # Codex Prime
64
+
65
+ Full narrative description here.
66
+ ```
67
+
68
+ ## CREP validation
69
+
70
+ Every sigil is validated against four pillars:
71
+
72
+ | Key | Meaning |
73
+ |---|---|
74
+ | `coherence` | Internal self-consistency |
75
+ | `resonance` | Harmonic alignment with the field |
76
+ | `emergence` | Capacity for novel pattern generation |
77
+ | `poetics` | Narrative / symbolic intent |
78
+
79
+ ```python
80
+ from sigillin import Sigil
81
+
82
+ sigil = Sigil("codex-sigil.yaml")
83
+ sigil.validate_crep() # True / False
84
+ sigil.assert_crep() # raises SigilValidationError if invalid
85
+ ```
86
+
87
+ ## MandalaMap resonance
88
+
89
+ ```python
90
+ spectrum = sigil.render_mandala(depth=0.618) # φ-scaled resonance array
91
+ print(f"Peak: {spectrum.max():.4f}")
92
+ ```
93
+
94
+ ## Stack integration
95
+
96
+ With `pip install sigillin[stack]`, sigillin binds directly to the full GenesisAeon stack:
97
+
98
+ ```python
99
+ sigil.bind_to_field() # returns Lagrangian string from fieldtheory
100
+ ```
101
+
102
+ ```python
103
+ from sigillin.entropy_table_bridge import export_to_entropy_table
104
+ export_to_entropy_table("codex-sigil.yaml")
105
+ ```
106
+
107
+ ## Python API
108
+
109
+ ```python
110
+ from sigillin import Sigil
111
+
112
+ sigil = Sigil("codex-sigil.yaml")
113
+ print(sigil["coherence"]) # 0.97
114
+ print(sigil.get("tags", [])) # []
115
+ print(repr(sigil)) # Sigil(path=..., crep_valid=True)
116
+ ```
117
+
118
+ ---
119
+
120
+ Built with [uv](https://docs.astral.sh/uv/) · [Typer](https://typer.tiangolo.com/) ·
121
+ [Rich](https://rich.readthedocs.io/) · [NumPy](https://numpy.org/)
@@ -0,0 +1,44 @@
1
+ # API Reference
2
+
3
+ ## sigillin.core.Sigil
4
+
5
+ ```python
6
+ class Sigil(filepath: Path | str)
7
+ ```
8
+
9
+ Self-referential poetic-symbolic attractor. Loads a sigil from YAML, JSON, or
10
+ Markdown front-matter (trilayer).
11
+
12
+ ### Methods
13
+
14
+ | Method | Description |
15
+ |---|---|
16
+ | `validate_crep() -> bool` | Returns `True` if all four CREP keys are present |
17
+ | `assert_crep() -> None` | Raises `SigilValidationError` if CREP keys are missing |
18
+ | `render_mandala(depth=0.618) -> np.ndarray` | Returns φ-scaled resonance spectrum (shape: 100) |
19
+ | `bind_to_field() -> str` | Binds to fieldtheory Lagrangian (requires `[stack]`) |
20
+ | `get(key, default=None)` | Dict-style attribute access with default |
21
+
22
+ ### Attributes
23
+
24
+ | Attribute | Type | Description |
25
+ |---|---|---|
26
+ | `path` | `Path` | Source file path |
27
+ | `data` | `dict[str, Any]` | Parsed sigil data |
28
+
29
+ ---
30
+
31
+ ## sigillin.core.SigilValidationError
32
+
33
+ Raised by `assert_crep()` when required CREP keys are missing.
34
+
35
+ ---
36
+
37
+ ## sigillin.entropy_table_bridge
38
+
39
+ ```python
40
+ sigil_to_entropy_record(sigil: Sigil) -> dict[str, Any]
41
+ export_to_entropy_table(path: Path | str) -> None
42
+ ```
43
+
44
+ Exports sigil data to entropy-table format. Requires `sigillin[stack]`.
@@ -0,0 +1,50 @@
1
+ # CLI Reference
2
+
3
+ ## sig validate
4
+
5
+ ```
6
+ sig validate PATH
7
+ ```
8
+
9
+ Validate a sigil file against the CREP schema.
10
+
11
+ **Arguments:**
12
+ - `PATH` – path to sigil file (YAML, JSON, or Markdown with front-matter)
13
+
14
+ **Exit codes:** `0` = valid, `1` = invalid or file not found
15
+
16
+ ---
17
+
18
+ ## sig render
19
+
20
+ ```
21
+ sig render PATH [--depth FLOAT]
22
+ ```
23
+
24
+ Render the MandalaMap resonance spectrum for a sigil.
25
+
26
+ **Arguments:**
27
+ - `PATH` – path to sigil file
28
+
29
+ **Options:**
30
+ - `--depth` – fractal resonance depth (default: `0.618`, the golden ratio φ)
31
+
32
+ ---
33
+
34
+ ## sig inspect
35
+
36
+ ```
37
+ sig inspect PATH
38
+ ```
39
+
40
+ Inspect all fields of a sigil in a rich table, with CREP status.
41
+
42
+ ---
43
+
44
+ ## sig bridge
45
+
46
+ ```
47
+ sig bridge [PROVIDER]
48
+ ```
49
+
50
+ Create a self-referential provider bridge (default: `openai`).
@@ -0,0 +1,36 @@
1
+ # sigillin
2
+
3
+ **The poetic-symbolic interface layer** of the GenesisAeon stack –
4
+ self-referential sigil parser, trilayer validation (YAML/JSON/Markdown)
5
+ and MandalaMap resonance.
6
+
7
+ ## Quickstart
8
+
9
+ ```bash
10
+ pip install sigillin
11
+ # or
12
+ uv add sigillin
13
+ ```
14
+
15
+ ```bash
16
+ sig validate codex-sigil.yaml
17
+ sig render cosmic-web.yaml
18
+ ```
19
+
20
+ ## Commands
21
+
22
+ | Command | Description |
23
+ |---------|-------------|
24
+ | `sig validate <path>` | Validate a sigil against CREP schema |
25
+ | `sig render <path>` | Render MandalaMap resonance spectrum |
26
+ | `sig inspect <path>` | Inspect all sigil fields |
27
+ | `sig bridge [provider]` | Create self-referential provider bridge |
28
+
29
+ ## CREP Keys
30
+
31
+ | Key | Meaning |
32
+ |---|---|
33
+ | `coherence` | Internal self-consistency |
34
+ | `resonance` | Harmonic alignment with the field |
35
+ | `emergence` | Capacity for novel pattern generation |
36
+ | `poetics` | Narrative / symbolic intent |
@@ -0,0 +1,41 @@
1
+ # sigillin – domain manifest
2
+ # Trilayer CREP-aligned sigil definitions for MandalaMap integration.
3
+
4
+ sigils:
5
+ - name: codex-prime
6
+ coherence: 0.97
7
+ resonance: 0.88
8
+ emergence: 0.92
9
+ poetics: "The first sigil – carrier of the primal pattern."
10
+ tags: [genesis, prime, anchor]
11
+
12
+ - name: cosmic-web
13
+ coherence: 0.91
14
+ resonance: 0.95
15
+ emergence: 0.87
16
+ poetics: "Threads of resonance binding all fields into one living topology."
17
+ tags: [cosmic, web, topology]
18
+
19
+ - name: entropy-gate
20
+ coherence: 0.85
21
+ resonance: 0.79
22
+ emergence: 0.94
23
+ poetics: "The threshold between order and creative dissolution."
24
+ tags: [entropy, gate, transition]
25
+
26
+ - name: mandala-core
27
+ coherence: 0.99
28
+ resonance: 0.99
29
+ emergence: 0.99
30
+ poetics: "The self-referential centre – sigil that contains all other sigils."
31
+ tags: [mandala, core, selfref]
32
+
33
+ stack:
34
+ fieldtheory: ">=0.1.0"
35
+ cosmic-moment: ">=0.1.0"
36
+ entropy-table: ">=1.0.1"
37
+
38
+ meta:
39
+ crep_version: "1.0"
40
+ mandala_depth_default: 0.618
41
+ phi: 1.618033988749895
@@ -0,0 +1,43 @@
1
+ site_name: sigillin
2
+ site_description: The poetic-symbolic interface layer of the GenesisAeon stack
3
+ site_author: GenesisAeon Team
4
+ repo_url: https://github.com/GenesisAeon/sigillin
5
+ repo_name: GenesisAeon/sigillin
6
+
7
+ theme:
8
+ name: material
9
+ palette:
10
+ - media: "(prefers-color-scheme: light)"
11
+ scheme: default
12
+ primary: deep purple
13
+ accent: purple
14
+ toggle:
15
+ icon: material/brightness-7
16
+ name: Switch to dark mode
17
+ - media: "(prefers-color-scheme: dark)"
18
+ scheme: slate
19
+ primary: deep purple
20
+ accent: purple
21
+ toggle:
22
+ icon: material/brightness-4
23
+ name: Switch to light mode
24
+ features:
25
+ - navigation.tabs
26
+ - navigation.sections
27
+ - navigation.top
28
+ - content.code.annotate
29
+ - content.code.copy
30
+ - search.highlight
31
+
32
+ markdown_extensions:
33
+ - admonition
34
+ - pymdownx.highlight:
35
+ anchor_linenums: true
36
+ - pymdownx.superfences
37
+ - pymdownx.tabbed:
38
+ alternate_style: true
39
+
40
+ nav:
41
+ - Home: index.md
42
+ - CLI Reference: cli.md
43
+ - API: api.md
@@ -0,0 +1,80 @@
1
+ [project]
2
+ name = "sigillin"
3
+ version = "0.1.0"
4
+ description = "The poetic-symbolic interface layer of the GenesisAeon stack – self-referential sigil parser, trilayer validation (YAML/JSON/Markdown) and MandalaMap resonance."
5
+ readme = "README.md"
6
+ license = { text = "MIT" }
7
+ authors = [{ name = "GenesisAeon Team", email = "team@genesisaeon.org" }]
8
+ requires-python = ">=3.11"
9
+ keywords = ["sigil", "mandala", "symbolic", "poetry", "crep", "genesisaeon", "trilayer"]
10
+ classifiers = [
11
+ "Development Status :: 3 - Alpha",
12
+ "Environment :: Console",
13
+ "Intended Audience :: Developers",
14
+ "License :: OSI Approved :: MIT License",
15
+ "Programming Language :: Python :: 3",
16
+ "Programming Language :: Python :: 3.11",
17
+ "Programming Language :: Python :: 3.12",
18
+ "Topic :: Scientific/Engineering",
19
+ "Topic :: Artistic Software",
20
+ ]
21
+ dependencies = [
22
+ "pyyaml>=6.0",
23
+ "rich>=13.0",
24
+ "typer>=0.15.0",
25
+ "numpy>=1.26",
26
+ ]
27
+
28
+ [project.optional-dependencies]
29
+ stack = [
30
+ "fieldtheory>=0.1.0",
31
+ "cosmic-moment>=0.1.0",
32
+ "medium-modulation>=0.1.0",
33
+ "entropy-governance>=0.1.0",
34
+ "entropy-table>=1.0.1",
35
+ "implosive-genesis>=0.4.0",
36
+ ]
37
+ dev = [
38
+ "pytest>=8.0",
39
+ "pytest-cov>=5.0",
40
+ "ruff>=0.9",
41
+ "pre-commit>=3.7.0",
42
+ ]
43
+ docs = [
44
+ "mkdocs>=1.6",
45
+ "mkdocstrings[python]>=0.27",
46
+ "mkdocs-material>=9.6",
47
+ ]
48
+
49
+ [project.scripts]
50
+ sig = "sigillin.cli:app"
51
+
52
+ [project.urls]
53
+ Repository = "https://github.com/GenesisAeon/sigillin"
54
+ Issues = "https://github.com/GenesisAeon/sigillin/issues"
55
+
56
+ [build-system]
57
+ requires = ["hatchling"]
58
+ build-backend = "hatchling.build"
59
+
60
+ [tool.hatch.build.targets.wheel]
61
+ packages = ["src/sigillin"]
62
+
63
+ [tool.ruff]
64
+ line-length = 88
65
+ target-version = "py311"
66
+
67
+ [tool.ruff.lint]
68
+ select = ["E", "F", "B", "I", "W", "UP", "C4", "SIM"]
69
+ ignore = ["B008"] # typer uses function calls in defaults
70
+
71
+ [tool.ruff.lint.per-file-ignores]
72
+ "tests/**" = ["S101"] # allow assert in tests
73
+
74
+ [tool.pytest.ini_options]
75
+ testpaths = ["tests"]
76
+ addopts = "--cov=sigillin --cov-report=term-missing -v"
77
+
78
+ [tool.coverage.run]
79
+ source = ["src"]
80
+ omit = ["tests/*"]
@@ -0,0 +1,6 @@
1
+ """sigillin – the poetic-symbolic interface layer of the GenesisAeon stack."""
2
+
3
+ __version__ = "0.1.0"
4
+ __all__ = ["Sigil"]
5
+
6
+ from .core import Sigil