vs-queue 0.1.1__tar.gz → 0.1.2__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 (28) hide show
  1. {vs_queue-0.1.1 → vs_queue-0.1.2}/PKG-INFO +7 -13
  2. {vs_queue-0.1.1 → vs_queue-0.1.2}/README.md +6 -12
  3. {vs_queue-0.1.1 → vs_queue-0.1.2}/pyproject.toml +1 -1
  4. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/vs_base_consumer.py +2 -2
  5. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/PKG-INFO +7 -13
  6. {vs_queue-0.1.1 → vs_queue-0.1.2}/setup.cfg +0 -0
  7. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/__init__.py +0 -0
  8. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/__init__.py +0 -0
  9. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/vs_base_queue.py +0 -0
  10. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/decorator/__init__.py +0 -0
  11. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/decorator/vs_queue_listener.py +0 -0
  12. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/factory/__init__.py +0 -0
  13. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/factory/vs_queue_factory.py +0 -0
  14. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/manager/__init__.py +0 -0
  15. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/manager/vs_queue_manager.py +0 -0
  16. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/__init__.py +0 -0
  17. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/vs_rabbitmq_queue.py +0 -0
  18. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/vs_redis_queue.py +0 -0
  19. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/registry/__init__.py +0 -0
  20. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/registry/vs_queue_registry.py +0 -0
  21. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/retry/__init__.py +0 -0
  22. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/retry/vs_retry_policy.py +0 -0
  23. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/schema/__init__.py +0 -0
  24. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/schema/vs_message.py +0 -0
  25. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/SOURCES.txt +0 -0
  26. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/dependency_links.txt +0 -0
  27. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/requires.txt +0 -0
  28. {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vs-queue
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers
5
5
  Project-URL: Homepage, https://vivekasutra.com/
6
6
  Project-URL: Source, https://github.com/vivekasutra/viveka-mula
@@ -315,13 +315,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
315
315
  | Method | Description |
316
316
  |---|---|
317
317
  | `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
318
- | `start()` | Called once when the consumer begins. Use for setup. |
319
- | `stop()` | Called once on graceful shutdown. Use for cleanup. |
320
318
 
321
- **Optional override:**
319
+ **Optional overrides** (concrete no-ops by default — override only if you need them):
322
320
 
323
321
  | Method | Description |
324
322
  |---|---|
323
+ | `start()` | Called once when the consumer begins. Use for setup. |
324
+ | `stop()` | Called once on graceful shutdown. Use for cleanup. |
325
325
  | `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
326
326
 
327
327
  **Example with error hook:**
@@ -374,9 +374,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
374
374
  class SimpleConsumer(VsBaseConsumer):
375
375
  async def handle(self, message: VsMessage) -> None:
376
376
  print(message.payload)
377
-
378
- async def start(self) -> None: pass
379
- async def stop(self) -> None: pass
380
377
  ```
381
378
 
382
379
  **Example — full configuration:**
@@ -543,9 +540,6 @@ class DlqConsumer(VsBaseConsumer):
543
540
  f"Message permanently failed | id={message.id} retries={message.retry_count}",
544
541
  payload=message.payload,
545
542
  )
546
-
547
- async def start(self) -> None: pass
548
- async def stop(self) -> None: pass
549
543
  ```
550
544
 
551
545
  **Example — replaying a DLQ message:**
@@ -938,9 +932,9 @@ Abstract base. Extend and implement `handle` to process messages.
938
932
  | Method | Required | Description |
939
933
  |---|---|---|
940
934
  | `handle(message)` | Yes | Process a message. Raise to trigger retry. |
941
- | `start()` | Yes | Setup before consuming begins |
942
- | `stop()` | Yes | Cleanup on shutdown — called on graceful cancel |
943
- | `on_error(message, error)` | No | Called on `handle` failure before retry |
935
+ | `start()` | No — no-op by default | Setup before consuming begins |
936
+ | `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
937
+ | `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
944
938
 
945
939
  ---
946
940
 
@@ -284,13 +284,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
284
284
  | Method | Description |
285
285
  |---|---|
286
286
  | `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
287
- | `start()` | Called once when the consumer begins. Use for setup. |
288
- | `stop()` | Called once on graceful shutdown. Use for cleanup. |
289
287
 
290
- **Optional override:**
288
+ **Optional overrides** (concrete no-ops by default — override only if you need them):
291
289
 
292
290
  | Method | Description |
293
291
  |---|---|
292
+ | `start()` | Called once when the consumer begins. Use for setup. |
293
+ | `stop()` | Called once on graceful shutdown. Use for cleanup. |
294
294
  | `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
295
295
 
296
296
  **Example with error hook:**
@@ -343,9 +343,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
343
343
  class SimpleConsumer(VsBaseConsumer):
344
344
  async def handle(self, message: VsMessage) -> None:
345
345
  print(message.payload)
346
-
347
- async def start(self) -> None: pass
348
- async def stop(self) -> None: pass
349
346
  ```
350
347
 
351
348
  **Example — full configuration:**
@@ -512,9 +509,6 @@ class DlqConsumer(VsBaseConsumer):
512
509
  f"Message permanently failed | id={message.id} retries={message.retry_count}",
513
510
  payload=message.payload,
514
511
  )
515
-
516
- async def start(self) -> None: pass
517
- async def stop(self) -> None: pass
518
512
  ```
519
513
 
520
514
  **Example — replaying a DLQ message:**
@@ -907,9 +901,9 @@ Abstract base. Extend and implement `handle` to process messages.
907
901
  | Method | Required | Description |
908
902
  |---|---|---|
909
903
  | `handle(message)` | Yes | Process a message. Raise to trigger retry. |
910
- | `start()` | Yes | Setup before consuming begins |
911
- | `stop()` | Yes | Cleanup on shutdown — called on graceful cancel |
912
- | `on_error(message, error)` | No | Called on `handle` failure before retry |
904
+ | `start()` | No — no-op by default | Setup before consuming begins |
905
+ | `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
906
+ | `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
913
907
 
914
908
  ---
915
909
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vs-queue"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  description = "Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -13,12 +13,12 @@ class VsBaseConsumer(ABC):
13
13
  async def handle(self, message: VsMessage) -> None:
14
14
  pass
15
15
 
16
- @abstractmethod
17
16
  async def start(self) -> None:
17
+ """Called once before consuming begins. Override for setup."""
18
18
  pass
19
19
 
20
- @abstractmethod
21
20
  async def stop(self) -> None:
21
+ """Called once on graceful shutdown. Override for cleanup."""
22
22
  pass
23
23
 
24
24
  async def on_error(self, message: VsMessage, error: Exception) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vs-queue
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers
5
5
  Project-URL: Homepage, https://vivekasutra.com/
6
6
  Project-URL: Source, https://github.com/vivekasutra/viveka-mula
@@ -315,13 +315,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
315
315
  | Method | Description |
316
316
  |---|---|
317
317
  | `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
318
- | `start()` | Called once when the consumer begins. Use for setup. |
319
- | `stop()` | Called once on graceful shutdown. Use for cleanup. |
320
318
 
321
- **Optional override:**
319
+ **Optional overrides** (concrete no-ops by default — override only if you need them):
322
320
 
323
321
  | Method | Description |
324
322
  |---|---|
323
+ | `start()` | Called once when the consumer begins. Use for setup. |
324
+ | `stop()` | Called once on graceful shutdown. Use for cleanup. |
325
325
  | `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
326
326
 
327
327
  **Example with error hook:**
@@ -374,9 +374,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
374
374
  class SimpleConsumer(VsBaseConsumer):
375
375
  async def handle(self, message: VsMessage) -> None:
376
376
  print(message.payload)
377
-
378
- async def start(self) -> None: pass
379
- async def stop(self) -> None: pass
380
377
  ```
381
378
 
382
379
  **Example — full configuration:**
@@ -543,9 +540,6 @@ class DlqConsumer(VsBaseConsumer):
543
540
  f"Message permanently failed | id={message.id} retries={message.retry_count}",
544
541
  payload=message.payload,
545
542
  )
546
-
547
- async def start(self) -> None: pass
548
- async def stop(self) -> None: pass
549
543
  ```
550
544
 
551
545
  **Example — replaying a DLQ message:**
@@ -938,9 +932,9 @@ Abstract base. Extend and implement `handle` to process messages.
938
932
  | Method | Required | Description |
939
933
  |---|---|---|
940
934
  | `handle(message)` | Yes | Process a message. Raise to trigger retry. |
941
- | `start()` | Yes | Setup before consuming begins |
942
- | `stop()` | Yes | Cleanup on shutdown — called on graceful cancel |
943
- | `on_error(message, error)` | No | Called on `handle` failure before retry |
935
+ | `start()` | No — no-op by default | Setup before consuming begins |
936
+ | `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
937
+ | `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
944
938
 
945
939
  ---
946
940
 
File without changes
File without changes