Metadata-Version: 2.4
Name: evidentsource-core
Version: 1.0.0rc1
Summary: Core domain types for EvidentSource event sourcing platform
Project-URL: Documentation, https://docs.evidentstack.com/evidentsource
Project-URL: Repository, https://github.com/evidentsystems/evidentsource-sdks
Author-email: Evident Systems <hello@evidentsystems.com>
License-Expression: MIT OR Apache-2.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: attrs>=24.0.0
Requires-Dist: cattrs>=24.0.0
Description-Content-Type: text/markdown

# EvidentSource Core for Python

Core domain types for the EvidentSource event sourcing platform.

## Installation

```bash
pip install evidentsource-core
```

## Types

### Events

- **Event**: A stored event with full metadata (id, stream, type, subject, time, data, etc.)
- **ProspectiveEvent**: An event before storage (for state changes)
- **EventData**: Binary or string event data
- **BinaryEventData**: Binary event payload
- **StringEventData**: String event payload

### Selectors

- **Selector**: Complex event selectors (subject, type, stream combinations)
- **EventSelector**: Parameters for event queries

### Constraints

- **Constraint**: Individual constraint on event sequences
- **AppendCondition**: Constraint to apply when committing events

### Identifiers

- **DatabaseName**: Database name identifier
- **StreamName**: Stream name identifier
- **EventId**: Event ID identifier
- **EventType**: Event type identifier
- **EventSubject**: Event subject identifier
- **StateViewName**: State view name identifier
- **StateChangeName**: State change name identifier

### State Views

- **StateView**: Rendered state view result
- **StateViewCodec**: Protocol for state view serialization

### State Changes

- **Command**: Command received by a state change
- **CommandRequest**: Full command request with headers
- **StateChangeDefinitionSummary**: State change definition info

## License

MIT OR Apache-2.0
