#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ # @Version : Python 3.11.4 # @Software : Sublime Text 4 # @Author : StudentCWZ # @Email : StudentCWZ@outlook.com # @Date : 2023/11/7 15:47 # @File : redis.py # @Description : Defines the RedisUri class for generating a Redis connection URI. """ class RedisUri: """ A class to generate a Redis connection URI. """ def __init__(self, host='localhost', port=6379, db=0, username=None, password=None): """ Initializes a new instance of the RedisUri class. Args: host (str): The hostname of the Redis server. Default is 'localhost'. port (int): The port number to connect on the Redis server. Default is 6379. db (int): The database number to connect on the Redis server. Default is 0. username (str, optional): The username for authentication to the Redis server. password (str, optional): The password for authentication to the Redis server. """ self.host = host self.port = port self.db = db self.username = username self.password = password def create(self) -> str: """ Creates and returns the Redis connection URI. Returns: str: The Redis connection URI. """ if self.username and self.password: return f'redis://{self.username}:{self.password}@{self.host}:{self.port}/{self.db}' else: return f'redis://{self.host}:{self.port}/{self.db}' def __repr__(self): """ Returns a formal string representation of the RedisUri object. Returns: str: The formal string representation of the RedisUri object. """ return (f'RedisUri(host={self.host}, port={self.port}, db={self.db}, username={self.username}, ' f'password={self.password})') def __str__(self): """ Returns a string representation of the RedisUri object, which is the Redis connection URI. Returns: str: The string representation of the RedisUri object. """ return self.create()