dsviper 1.2.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.
- dsviper-1.2.0/PKG-INFO +135 -0
- dsviper-1.2.0/README.md +99 -0
- dsviper-1.2.0/dsviper/__init__.py +1 -0
- dsviper-1.2.0/dsviper.egg-info/PKG-INFO +135 -0
- dsviper-1.2.0/dsviper.egg-info/SOURCES.txt +7 -0
- dsviper-1.2.0/dsviper.egg-info/dependency_links.txt +1 -0
- dsviper-1.2.0/dsviper.egg-info/top_level.txt +1 -0
- dsviper-1.2.0/setup.cfg +4 -0
- dsviper-1.2.0/setup.py +34 -0
dsviper-1.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dsviper
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Digital Substrate Viper Runtime
|
|
5
|
+
Home-page: https://devkit.digitalsubstrate.io
|
|
6
|
+
Author: Digital Substrate
|
|
7
|
+
Maintainer: Digital Substrate
|
|
8
|
+
License: Proprietary
|
|
9
|
+
Project-URL: Documentation, https://devkit.digitalsubstrate.io
|
|
10
|
+
Classifier: License :: Other/Proprietary License
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Programming Language :: C++
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Intended Audience :: Developers
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
23
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
24
|
+
Requires-Python: >=3.10.0
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: classifier
|
|
28
|
+
Dynamic: description
|
|
29
|
+
Dynamic: description-content-type
|
|
30
|
+
Dynamic: home-page
|
|
31
|
+
Dynamic: license
|
|
32
|
+
Dynamic: maintainer
|
|
33
|
+
Dynamic: project-url
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
# dsviper — Digital Substrate Viper Runtime
|
|
38
|
+
|
|
39
|
+
`dsviper` is the Python extension module for **Viper**, a C++ runtime built around
|
|
40
|
+
metadata-driven type and value systems. It provides a seamless bidirectional bridge
|
|
41
|
+
between Python and Viper's strong-typed data model.
|
|
42
|
+
|
|
43
|
+
## Key Features
|
|
44
|
+
|
|
45
|
+
- **DSM Language** — Define data models with the Digital Substrate Model DSL:
|
|
46
|
+
concepts, keys, documents, attachments.
|
|
47
|
+
- **Type & Value System** — Dynamically construct types and instantiate strong-typed
|
|
48
|
+
values with automatic Python ↔ C++ bridging.
|
|
49
|
+
- **Commit Database** — Versioned persistence with full mutation history (DAG of commits).
|
|
50
|
+
- **Code Generation** — Optional `kibo` code generator produces type-safe Python
|
|
51
|
+
packages from DSM definitions.
|
|
52
|
+
- **Blob System** — BlobArray with zero-copy NumPy integration, BlobPack for structured
|
|
53
|
+
binary data.
|
|
54
|
+
- **IDE Support** — JetBrains plugin and VS Code extension for `.dsm` files.
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from dsviper import *
|
|
60
|
+
|
|
61
|
+
# Strong-typed value system
|
|
62
|
+
names = Value.create(TypeVector(Type.STRING))
|
|
63
|
+
names.extend(["alice", "bob"])
|
|
64
|
+
print(names) # ['alice', 'bob']
|
|
65
|
+
print(names.type()) # vector<string>
|
|
66
|
+
|
|
67
|
+
names.append(42) # ViperError: expected 'str', got 'int'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Commit Database
|
|
71
|
+
|
|
72
|
+
A complete example — define a model, create a versioned database, commit and query:
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
from dsviper import *
|
|
76
|
+
|
|
77
|
+
# Define a model dynamically
|
|
78
|
+
defs = Definitions()
|
|
79
|
+
ns = NameSpace(ValueUUId.create(), "App")
|
|
80
|
+
t_User = defs.create_concept(ns, "User")
|
|
81
|
+
d_Profile = TypeStructureDescriptor("Profile")
|
|
82
|
+
d_Profile.add_field("name", Type.STRING)
|
|
83
|
+
a_profile = defs.create_attachment(ns, "profile", t_User, defs.create_structure(ns, d_Profile))
|
|
84
|
+
|
|
85
|
+
# Create a versioned database and commit data
|
|
86
|
+
db = CommitDatabase.create_in_memory()
|
|
87
|
+
db.extend_definitions(defs.const())
|
|
88
|
+
|
|
89
|
+
key = a_profile.create_key()
|
|
90
|
+
doc = a_profile.create_document()
|
|
91
|
+
doc.name = "Alice"
|
|
92
|
+
|
|
93
|
+
mutable = CommitMutableState(db.initial_state())
|
|
94
|
+
mutable.attachment_mutating().set(a_profile, key, doc)
|
|
95
|
+
db.commit_mutations("Add Alice", mutable)
|
|
96
|
+
|
|
97
|
+
# Query
|
|
98
|
+
state = db.state(db.last_commit_id())
|
|
99
|
+
state.attachment_getting().get(a_profile, key)
|
|
100
|
+
# Optional({name='Alice'})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Installation
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
pip install dsviper
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Requires Python ≥ 3.10. Pre-built wheels are provided for all supported platforms.
|
|
110
|
+
|
|
111
|
+
## Supported Platforms
|
|
112
|
+
|
|
113
|
+
| Platform | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
|
|
114
|
+
|---|---|---|---|---|---|
|
|
115
|
+
| Linux x86_64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
116
|
+
| Linux aarch64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
117
|
+
| macOS arm64 (Apple Silicon) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
118
|
+
| macOS x86_64 (Intel) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
119
|
+
| Windows x64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
120
|
+
| Windows arm64 | — | ✅ | ✅ | ✅ | ✅ |
|
|
121
|
+
|
|
122
|
+
## Documentation
|
|
123
|
+
|
|
124
|
+
Full documentation at [devkit.digitalsubstrate.io](https://devkit.digitalsubstrate.io)
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
**Proprietary** — Commercial license required.
|
|
129
|
+
Contact [Digital Substrate](https://digitalsubstrate.io) for licensing information.
|
|
130
|
+
|
|
131
|
+
## Build Information
|
|
132
|
+
|
|
133
|
+
- **Version**: 1.2.0 LTS
|
|
134
|
+
- **Source**: commit `174b349e` (tag `LTS-1.2.0`)
|
|
135
|
+
- **Build date**: 2026-03-20
|
dsviper-1.2.0/README.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# dsviper — Digital Substrate Viper Runtime
|
|
2
|
+
|
|
3
|
+
`dsviper` is the Python extension module for **Viper**, a C++ runtime built around
|
|
4
|
+
metadata-driven type and value systems. It provides a seamless bidirectional bridge
|
|
5
|
+
between Python and Viper's strong-typed data model.
|
|
6
|
+
|
|
7
|
+
## Key Features
|
|
8
|
+
|
|
9
|
+
- **DSM Language** — Define data models with the Digital Substrate Model DSL:
|
|
10
|
+
concepts, keys, documents, attachments.
|
|
11
|
+
- **Type & Value System** — Dynamically construct types and instantiate strong-typed
|
|
12
|
+
values with automatic Python ↔ C++ bridging.
|
|
13
|
+
- **Commit Database** — Versioned persistence with full mutation history (DAG of commits).
|
|
14
|
+
- **Code Generation** — Optional `kibo` code generator produces type-safe Python
|
|
15
|
+
packages from DSM definitions.
|
|
16
|
+
- **Blob System** — BlobArray with zero-copy NumPy integration, BlobPack for structured
|
|
17
|
+
binary data.
|
|
18
|
+
- **IDE Support** — JetBrains plugin and VS Code extension for `.dsm` files.
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from dsviper import *
|
|
24
|
+
|
|
25
|
+
# Strong-typed value system
|
|
26
|
+
names = Value.create(TypeVector(Type.STRING))
|
|
27
|
+
names.extend(["alice", "bob"])
|
|
28
|
+
print(names) # ['alice', 'bob']
|
|
29
|
+
print(names.type()) # vector<string>
|
|
30
|
+
|
|
31
|
+
names.append(42) # ViperError: expected 'str', got 'int'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Commit Database
|
|
35
|
+
|
|
36
|
+
A complete example — define a model, create a versioned database, commit and query:
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
from dsviper import *
|
|
40
|
+
|
|
41
|
+
# Define a model dynamically
|
|
42
|
+
defs = Definitions()
|
|
43
|
+
ns = NameSpace(ValueUUId.create(), "App")
|
|
44
|
+
t_User = defs.create_concept(ns, "User")
|
|
45
|
+
d_Profile = TypeStructureDescriptor("Profile")
|
|
46
|
+
d_Profile.add_field("name", Type.STRING)
|
|
47
|
+
a_profile = defs.create_attachment(ns, "profile", t_User, defs.create_structure(ns, d_Profile))
|
|
48
|
+
|
|
49
|
+
# Create a versioned database and commit data
|
|
50
|
+
db = CommitDatabase.create_in_memory()
|
|
51
|
+
db.extend_definitions(defs.const())
|
|
52
|
+
|
|
53
|
+
key = a_profile.create_key()
|
|
54
|
+
doc = a_profile.create_document()
|
|
55
|
+
doc.name = "Alice"
|
|
56
|
+
|
|
57
|
+
mutable = CommitMutableState(db.initial_state())
|
|
58
|
+
mutable.attachment_mutating().set(a_profile, key, doc)
|
|
59
|
+
db.commit_mutations("Add Alice", mutable)
|
|
60
|
+
|
|
61
|
+
# Query
|
|
62
|
+
state = db.state(db.last_commit_id())
|
|
63
|
+
state.attachment_getting().get(a_profile, key)
|
|
64
|
+
# Optional({name='Alice'})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
pip install dsviper
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Requires Python ≥ 3.10. Pre-built wheels are provided for all supported platforms.
|
|
74
|
+
|
|
75
|
+
## Supported Platforms
|
|
76
|
+
|
|
77
|
+
| Platform | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
|
|
78
|
+
|---|---|---|---|---|---|
|
|
79
|
+
| Linux x86_64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
80
|
+
| Linux aarch64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
81
|
+
| macOS arm64 (Apple Silicon) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
82
|
+
| macOS x86_64 (Intel) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
83
|
+
| Windows x64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
84
|
+
| Windows arm64 | — | ✅ | ✅ | ✅ | ✅ |
|
|
85
|
+
|
|
86
|
+
## Documentation
|
|
87
|
+
|
|
88
|
+
Full documentation at [devkit.digitalsubstrate.io](https://devkit.digitalsubstrate.io)
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
**Proprietary** — Commercial license required.
|
|
93
|
+
Contact [Digital Substrate](https://digitalsubstrate.io) for licensing information.
|
|
94
|
+
|
|
95
|
+
## Build Information
|
|
96
|
+
|
|
97
|
+
- **Version**: 1.2.0 LTS
|
|
98
|
+
- **Source**: commit `174b349e` (tag `LTS-1.2.0`)
|
|
99
|
+
- **Build date**: 2026-03-20
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .dsviper import *
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dsviper
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Digital Substrate Viper Runtime
|
|
5
|
+
Home-page: https://devkit.digitalsubstrate.io
|
|
6
|
+
Author: Digital Substrate
|
|
7
|
+
Maintainer: Digital Substrate
|
|
8
|
+
License: Proprietary
|
|
9
|
+
Project-URL: Documentation, https://devkit.digitalsubstrate.io
|
|
10
|
+
Classifier: License :: Other/Proprietary License
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Programming Language :: C++
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Intended Audience :: Developers
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
23
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
24
|
+
Requires-Python: >=3.10.0
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: classifier
|
|
28
|
+
Dynamic: description
|
|
29
|
+
Dynamic: description-content-type
|
|
30
|
+
Dynamic: home-page
|
|
31
|
+
Dynamic: license
|
|
32
|
+
Dynamic: maintainer
|
|
33
|
+
Dynamic: project-url
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
# dsviper — Digital Substrate Viper Runtime
|
|
38
|
+
|
|
39
|
+
`dsviper` is the Python extension module for **Viper**, a C++ runtime built around
|
|
40
|
+
metadata-driven type and value systems. It provides a seamless bidirectional bridge
|
|
41
|
+
between Python and Viper's strong-typed data model.
|
|
42
|
+
|
|
43
|
+
## Key Features
|
|
44
|
+
|
|
45
|
+
- **DSM Language** — Define data models with the Digital Substrate Model DSL:
|
|
46
|
+
concepts, keys, documents, attachments.
|
|
47
|
+
- **Type & Value System** — Dynamically construct types and instantiate strong-typed
|
|
48
|
+
values with automatic Python ↔ C++ bridging.
|
|
49
|
+
- **Commit Database** — Versioned persistence with full mutation history (DAG of commits).
|
|
50
|
+
- **Code Generation** — Optional `kibo` code generator produces type-safe Python
|
|
51
|
+
packages from DSM definitions.
|
|
52
|
+
- **Blob System** — BlobArray with zero-copy NumPy integration, BlobPack for structured
|
|
53
|
+
binary data.
|
|
54
|
+
- **IDE Support** — JetBrains plugin and VS Code extension for `.dsm` files.
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from dsviper import *
|
|
60
|
+
|
|
61
|
+
# Strong-typed value system
|
|
62
|
+
names = Value.create(TypeVector(Type.STRING))
|
|
63
|
+
names.extend(["alice", "bob"])
|
|
64
|
+
print(names) # ['alice', 'bob']
|
|
65
|
+
print(names.type()) # vector<string>
|
|
66
|
+
|
|
67
|
+
names.append(42) # ViperError: expected 'str', got 'int'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Commit Database
|
|
71
|
+
|
|
72
|
+
A complete example — define a model, create a versioned database, commit and query:
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
from dsviper import *
|
|
76
|
+
|
|
77
|
+
# Define a model dynamically
|
|
78
|
+
defs = Definitions()
|
|
79
|
+
ns = NameSpace(ValueUUId.create(), "App")
|
|
80
|
+
t_User = defs.create_concept(ns, "User")
|
|
81
|
+
d_Profile = TypeStructureDescriptor("Profile")
|
|
82
|
+
d_Profile.add_field("name", Type.STRING)
|
|
83
|
+
a_profile = defs.create_attachment(ns, "profile", t_User, defs.create_structure(ns, d_Profile))
|
|
84
|
+
|
|
85
|
+
# Create a versioned database and commit data
|
|
86
|
+
db = CommitDatabase.create_in_memory()
|
|
87
|
+
db.extend_definitions(defs.const())
|
|
88
|
+
|
|
89
|
+
key = a_profile.create_key()
|
|
90
|
+
doc = a_profile.create_document()
|
|
91
|
+
doc.name = "Alice"
|
|
92
|
+
|
|
93
|
+
mutable = CommitMutableState(db.initial_state())
|
|
94
|
+
mutable.attachment_mutating().set(a_profile, key, doc)
|
|
95
|
+
db.commit_mutations("Add Alice", mutable)
|
|
96
|
+
|
|
97
|
+
# Query
|
|
98
|
+
state = db.state(db.last_commit_id())
|
|
99
|
+
state.attachment_getting().get(a_profile, key)
|
|
100
|
+
# Optional({name='Alice'})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Installation
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
pip install dsviper
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Requires Python ≥ 3.10. Pre-built wheels are provided for all supported platforms.
|
|
110
|
+
|
|
111
|
+
## Supported Platforms
|
|
112
|
+
|
|
113
|
+
| Platform | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
|
|
114
|
+
|---|---|---|---|---|---|
|
|
115
|
+
| Linux x86_64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
116
|
+
| Linux aarch64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
117
|
+
| macOS arm64 (Apple Silicon) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
118
|
+
| macOS x86_64 (Intel) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
119
|
+
| Windows x64 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
120
|
+
| Windows arm64 | — | ✅ | ✅ | ✅ | ✅ |
|
|
121
|
+
|
|
122
|
+
## Documentation
|
|
123
|
+
|
|
124
|
+
Full documentation at [devkit.digitalsubstrate.io](https://devkit.digitalsubstrate.io)
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
**Proprietary** — Commercial license required.
|
|
129
|
+
Contact [Digital Substrate](https://digitalsubstrate.io) for licensing information.
|
|
130
|
+
|
|
131
|
+
## Build Information
|
|
132
|
+
|
|
133
|
+
- **Version**: 1.2.0 LTS
|
|
134
|
+
- **Source**: commit `174b349e` (tag `LTS-1.2.0`)
|
|
135
|
+
- **Build date**: 2026-03-20
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dsviper
|
dsviper-1.2.0/setup.cfg
ADDED
dsviper-1.2.0/setup.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from setuptools import setup
|
|
3
|
+
|
|
4
|
+
setup(
|
|
5
|
+
name="dsviper",
|
|
6
|
+
version="1.2.0",
|
|
7
|
+
description="Digital Substrate Viper Runtime",
|
|
8
|
+
long_description=Path("README.md").read_text(encoding="utf-8"),
|
|
9
|
+
long_description_content_type="text/markdown",
|
|
10
|
+
author="Digital Substrate",
|
|
11
|
+
maintainer="Digital Substrate",
|
|
12
|
+
url="https://devkit.digitalsubstrate.io",
|
|
13
|
+
project_urls={
|
|
14
|
+
"Documentation": "https://devkit.digitalsubstrate.io",
|
|
15
|
+
},
|
|
16
|
+
license="Proprietary",
|
|
17
|
+
python_requires=">=3.10.0",
|
|
18
|
+
classifiers=[
|
|
19
|
+
"License :: Other/Proprietary License",
|
|
20
|
+
"Development Status :: 5 - Production/Stable",
|
|
21
|
+
"Programming Language :: C++",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
"Intended Audience :: Developers",
|
|
29
|
+
"Topic :: Software Development",
|
|
30
|
+
"Operating System :: MacOS :: MacOS X",
|
|
31
|
+
"Operating System :: POSIX :: Linux",
|
|
32
|
+
"Operating System :: Microsoft :: Windows",
|
|
33
|
+
],
|
|
34
|
+
)
|