Skip to main content

Request Mediator PyPI (Python Package Index) Package

Project description

RmediatoR

Introduction

RmediatoR is a Python package inspired by the MediatR library available on NuGet. It allows developers to implement the mediator design pattern in their applications, promoting a clean separation of concerns by centralizing request/response logic and eliminating direct dependencies between components. This package simplifies the communication between different parts of your application, making your code more maintainable and scalable.

Demonstration

Here's a quick example to demonstrate how RmediatoR works:

  1. Define a Request and Handler: Create a request class and a handler class that processes the request.
from rmediator.decorators import request, request_handler

# Define a response
class SomeResponse:
    def __init__(self, message):
        self.message = message

# Define a request
@request(SomeResponse)
class SomeRequest:
    pass

# Define a handler for the request
@request_handler(SomeRequest, SomeResponse)
class SomeRequestHandler:
    def handle(self, request: SomeRequest) -> SomeResponse:
        return SomeResponse("Handled!")
  1. Initialize the mediator and register the handlers
from rmediator import Mediator

mediator = Mediator()

mediator.register_handler(SomeRequest, SomeRequestHandler())
  1. Send a Request: Use the mediator to send a request and get a response.
# Create a request instance
request = SomeRequest()

# Send the request through the mediator
response = mediator.send(request)

# Output the response
print(response.message)  # Output: Handled!

How to Use

To start using RmediatoR, follow these steps:

  1. Installation: First, install the package using pip (or use other options like poetry).
pip install rmediator
  1. Creating Requests and Handlers: Define your request and handler classes as shown in the demonstration above. Each request should inherit from the Request class, and each handler should inherit from the Handler class.

  2. Registering Handlers: Register your handlers with the mediator. This tells the mediator which handler to use for each request type.

mediator.register_handler(YourRequestClass, YourHandlerClass)
  1. Sending Requests: Use the mediator to send requests. The mediator will find the appropriate handler and return the response.
response = mediator.send(your_request_instance)

License

RmediatoR is licensed under the MIT License. See the LICENSE file for more details.

Contributing

Contributions are welcome! Please read the CONTRIBUTING guidelines for more information on how to get started.

Contact

For questions or issues, please open an issue on GitHub or contact me on my channels.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmediator-0.2.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file rmediator-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: rmediator-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for rmediator-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9f4fc7fb29e71fbf66e377f613084074f39ec48c572f586e92aa8acd6f0a3cac
MD5 d3ab31351081326e3f11959990aa95b7
BLAKE2b-256 dfb960a1ba17ffca25b9487f3b2488ed3dc739f70d576e534bd09f44963c5a4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page