Skip to content

Commit acff81e

Browse files
author
FirstUnicorn
committed
refactor!: rename python-mediator to gridflow-python-mediator
Package name collision discovered on PyPI.org - python-mediator already exists. Renamed to gridflow-python-mediator to avoid conflicts and establish GridFlow branding. BREAKING CHANGE: Package and module names changed - PyPI package: python-mediator → gridflow-python-mediator - Python module: python_mediator → gridflow_python_mediator - Import statement: from python_mediator → from gridflow_python_mediator Migration guide: 1. Update pyproject.toml dependencies: python-mediator → gridflow-python-mediator 2. Update imports: from python_mediator import X → from gridflow_python_mediator import X 3. Reinstall: pip uninstall python-mediator && pip install gridflow-python-mediator Changes: - Renamed package folder: packages/python-mediator/ → packages/gridflow-python-mediator/ - Renamed Python module: src/python_mediator/ → src/gridflow_python_mediator/ - Updated all imports across codebase (tests, examples, dependent packages) - Updated documentation (README, docs/, examples/) - Updated pyproject.toml files (root and package-specific) - Updated python-cqrs-dispatcher dependency
1 parent 3391d24 commit acff81e

24 files changed

Lines changed: 52 additions & 52 deletions

File tree

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ app = FastAPI(lifespan=create_lifespan_manager(on_startup=init_db, on_shutdown=c
175175
</details>
176176

177177
<details>
178-
<summary><b>python-mediator</b> — mediator with pipeline behaviors</summary>
178+
<summary><b>gridflow-python-mediator</b> — mediator with pipeline behaviors</summary>
179179

180180
BEFORE (without library):
181181
```python
@@ -190,7 +190,7 @@ logger.info(f"Done in {time.time() - start:.2f}s")
190190

191191
AFTER (using library):
192192
```python
193-
from python_mediator import Mediator, LoggingBehavior, TimingBehavior
193+
from gridflow_python_mediator import Mediator, LoggingBehavior, TimingBehavior
194194

195195
mediator = Mediator()
196196
mediator.add_pipeline_behavior(LoggingBehavior().handle)
@@ -475,7 +475,7 @@ await dispatcher.dispatch(UserCreated(user_id=42))
475475
| **sqlalchemy-async-session-factory** | Copy-paste async engine + session boilerplate per project | `create_engine()` / `create_session()` — one-liner setup |
476476
| **python-structlog-config** | Raw `print()` or inconsistent logging setup | `configure_logging("dev")` — JSON in prod, colored in dev |
477477
| **fastapi-middleware-toolkit** | Manual CORS / error handler / lifespan wiring | `setup_middleware(app)` — one call configures everything |
478-
| **python-mediator** | Direct handler calls, no cross-cutting concerns | `mediator.send(cmd)` with pipeline behaviors (logging, validation) |
478+
| **gridflow-python-mediator** | Direct handler calls, no cross-cutting concerns | `mediator.send(cmd)` with pipeline behaviors (logging, validation) |
479479
| **python-cqrs-core** | Business logic mixed into route handlers | `Command` / `Query` objects enforce read-write separation |
480480
| **python-dto-mappers** | Manual `dict → DTO` conversion in every endpoint | `@auto_map` decorator — zero boilerplate mapping |
481481
| **fastapi-config-patterns** | Scattered `os.getenv()` calls, no validation | Pydantic `Settings` classes with type-safe env loading |
@@ -575,9 +575,9 @@ All packages are **v0.1.0** and independently installable.
575575
```bash
576576
pip install python-cqrs-core
577577
```
578-
- **python-mediator** - Generic mediator with pipeline behaviors
578+
- **gridflow-python-mediator** - Generic mediator with pipeline behaviors
579579
```bash
580-
pip install python-mediator
580+
pip install gridflow-python-mediator
581581
```
582582
- **python-cqrs-dispatcher** - CQRS dispatcher integrating commands/queries with mediator
583583
```bash
@@ -647,7 +647,7 @@ poetry run pytest -v
647647
**Use when:** Working on a single package in isolation.
648648

649649
**⚠️ Note:** Some packages have cross-dependencies within the monorepo:
650-
- `python-cqrs-dispatcher` requires `python-cqrs-core` + `python-mediator`
650+
- `python-cqrs-dispatcher` requires `python-cqrs-core` + `gridflow-python-mediator`
651651
- `sqlalchemy-async-repositories` may require specific Python constraints
652652

653653
For packages with cross-dependencies, use **Option 1 (Workspace)** instead.
@@ -694,7 +694,7 @@ pip install -e ./python-web-toolkit/packages/python-structlog-config
694694
pip install -e ./python-web-toolkit/packages/python-infrastructure-exceptions
695695
pip install -e ./python-web-toolkit/packages/python-dto-mappers
696696
pip install -e ./python-web-toolkit/packages/python-cqrs-core
697-
pip install -e ./python-web-toolkit/packages/python-mediator
697+
pip install -e ./python-web-toolkit/packages/gridflow-python-mediator
698698
pip install -e ./python-web-toolkit/packages/python-cqrs-dispatcher
699699
pip install -e ./python-web-toolkit/packages/python-outbox-core
700700
```
@@ -806,23 +806,23 @@ poetry run pytest && poetry run lint-imports
806806
- ✗ Cannot import: CQRS, mediator, repositories, FastAPI, DTOs
807807

808808
2. **Domain Layer Cannot Import Application** - Mid layer depends only on primitives
809-
- `python-cqrs-core`, `python-mediator`, `pydantic-response-models`, `python-dto-mappers`
809+
- `python-cqrs-core`, `gridflow-python-mediator`, `pydantic-response-models`, `python-dto-mappers`
810810
- ✗ Cannot import: `python-cqrs-dispatcher`, repositories, FastAPI middleware
811811

812812
3. **Core Components Independence** - Prevents circular dependencies
813-
- `python-cqrs-core` and `python-mediator` must not import each other
813+
- `python-cqrs-core` and `gridflow-python-mediator` must not import each other
814814

815815
**Layer Hierarchy:**
816816

817817
| Layer | Position | Packages | Import Rules |
818818
|-------|----------|----------|--------------|
819819
| **Application** | Top | `python-cqrs-dispatcher`<br>`sqlalchemy-async-repositories`<br>`fastapi-middleware-toolkit`<br>`fastapi-config-patterns` | ✅ Can import from any layer |
820-
| **Domain** | Middle | `python-cqrs-core`<br>`python-mediator`<br>`pydantic-response-models`<br>`python-dto-mappers`<br>`python-input-validation`<br>`python-outbox-core` | ✅ Can import primitives<br>❌ Cannot import application |
820+
| **Domain** | Middle | `python-cqrs-core`<br>`gridflow-python-mediator`<br>`pydantic-response-models`<br>`python-dto-mappers`<br>`python-input-validation`<br>`python-outbox-core` | ✅ Can import primitives<br>❌ Cannot import application |
821821
| **Primitives** | Bottom | `python-technical-primitives`<br>`python-app-exceptions`<br>`python-infrastructure-exceptions`<br>`postgres-data-sanitizers`<br>`sqlalchemy-async-session-factory`<br>`python-structlog-config` | ❌ Cannot import domain/application<br>(Fully isolated foundation) |
822822

823823
**Text Summary:**
824824
- **Primitives** (bottom): `python-technical-primitives`, exceptions → Cannot import domain/application
825-
- **Domain** (middle): `python-cqrs-core`, `python-mediator`, DTOs → Cannot import application
825+
- **Domain** (middle): `python-cqrs-core`, `gridflow-python-mediator`, DTOs → Cannot import application
826826
- **Application** (top): `python-cqrs-dispatcher`, repositories, FastAPI → Can import anything
827827

828828
### Adding a New Package

docs/architecture.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
```
66
Application layer (depends on Domain + Primitives)
7-
├── python-mediator
7+
├── gridflow-python-mediator
88
├── python-cqrs-dispatcher (depends on cqrs-core + mediator)
99
├── fastapi-config-patterns
1010
├── fastapi-middleware-toolkit
@@ -41,7 +41,7 @@ Only one cross-package dependency exists:
4141
```
4242
python-cqrs-dispatcher
4343
├── python-cqrs-core (ICommand, IQuery interfaces)
44-
└── python-mediator (Mediator dispatch engine)
44+
└── gridflow-python-mediator (Mediator dispatch engine)
4545
```
4646

4747
All other packages are fully independent.
@@ -53,9 +53,9 @@ All other packages are fully independent.
5353
| Specification | `python-technical-primitives` |
5454
| Repository + Strategy | `sqlalchemy-async-repositories` |
5555
| Factory Method | `sqlalchemy-async-repositories` (pagination) |
56-
| Mediator | `python-mediator` |
56+
| Mediator | `gridflow-python-mediator` |
5757
| CQRS | `python-cqrs-core`, `python-cqrs-dispatcher` |
58-
| Pipeline behaviors | `python-mediator` |
58+
| Pipeline behaviors | `gridflow-python-mediator` |
5959
| Transactional outbox | `python-outbox-core` |
6060
| Strategy (formatters) | `python-outbox-core` |
6161
| CloudEvents | `python-outbox-core` |

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"postgres-data-sanitizers",
2929
"pydantic-response-models",
3030
"python-cqrs-core",
31-
"python-mediator",
31+
"gridflow-python-mediator",
3232
"python-cqrs-dispatcher",
3333
"python-dto-mappers",
3434
"python-domain-events",
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# python-mediator
1+
# gridflow-python-mediator
22

33
Generic mediator pattern with pipeline behaviors for cross-cutting concerns.
44

55
## Installation
66

77
```bash
8-
pip install python-mediator
8+
pip install gridflow-python-mediator
99
```
1010

1111
## Public API
@@ -21,8 +21,8 @@ pip install python-mediator
2121
## Usage
2222

2323
```python
24-
from python_mediator import Mediator
25-
from python_mediator.behaviors import LoggingBehavior, ValidationBehavior
24+
from gridflow_python_mediator import Mediator
25+
from gridflow_python_mediator.behaviors import LoggingBehavior, ValidationBehavior
2626

2727
mediator = Mediator()
2828
mediator.add_pipeline_behavior(LoggingBehavior())

docs/packages/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Packages
1111
postgres-data-sanitizers
1212
pydantic-response-models
1313
python-cqrs-core
14-
python-mediator
14+
gridflow-python-mediator
1515
python-cqrs-dispatcher
1616
python-dto-mappers
1717
python-domain-events

docs/quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
All packages are published to PyPI. Install only what you need:
66

77
```bash
8-
pip install python-cqrs-core python-mediator python-cqrs-dispatcher
8+
pip install python-cqrs-core gridflow-python-mediator python-cqrs-dispatcher
99
pip install sqlalchemy-async-session-factory sqlalchemy-async-repositories
1010
pip install fastapi-config-patterns fastapi-middleware-toolkit
1111
pip install python-structlog-config python-outbox-core

examples/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ pip install python-structlog-config>=0.1.0
7272
pip install python-infrastructure-exceptions>=0.1.0
7373
pip install python-dto-mappers>=0.1.0
7474
pip install python-cqrs-core>=0.1.0
75-
pip install python-mediator>=0.1.0
75+
pip install gridflow-python-mediator>=0.1.0
7676
pip install python-cqrs-dispatcher>=0.1.0
7777
pip install python-outbox-core>=0.1.0
7878
```

examples/infrastructure/application-patterns.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ user = await query_handler.handle(query)
6464
Generic mediator with logging, timing, and validation behaviors for cross-cutting concerns.
6565

6666
```python
67-
from python_mediator import Mediator
68-
from python_mediator.behaviors import (
67+
from gridflow_python_mediator import Mediator
68+
from gridflow_python_mediator.behaviors import (
6969
LoggingBehavior,
7070
TimingBehavior,
7171
ValidationBehavior,

packages/python-mediator/README.md renamed to packages/gridflow-python-mediator/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Python Mediator
1+
# gridflow-python-mediator
22

33
Generic mediator pattern implementation with zero dependencies and pipeline behavior support.
44

@@ -8,10 +8,10 @@ Generic mediator pattern implementation with zero dependencies and pipeline beha
88

99
```bash
1010
# Core (zero dependencies)
11-
pip install python-mediator
11+
pip install gridflow-python-mediator
1212

1313
# With logging support
14-
pip install python-mediator[logging]
14+
pip install gridflow-python-mediator[logging]
1515
```
1616

1717
## Features
@@ -26,7 +26,7 @@ pip install python-mediator[logging]
2626
### Basic Mediator
2727

2828
```python
29-
from python_mediator import Mediator
29+
from gridflow_python_mediator import Mediator
3030

3131
# Define request and handler
3232
class GetUserRequest:
@@ -51,7 +51,7 @@ result = await mediator.send(request)
5151

5252
```python
5353
from python_cqrs_core import BaseCommand, ICommandHandler
54-
from python_mediator import Mediator
54+
from gridflow_python_mediator import Mediator
5555

5656
class CreateUserCommand(BaseCommand):
5757
name: str
@@ -72,7 +72,7 @@ user_id = await mediator.send(cmd)
7272
### Pipeline Behaviors
7373

7474
```python
75-
from python_mediator import (
75+
from gridflow_python_mediator import (
7676
Mediator,
7777
LoggingBehavior,
7878
TimingBehavior,
File renamed without changes.

0 commit comments

Comments
 (0)