Merge commit '3dcc80e729011d6ee58e3af70b677f3fd9659c7a' as 'utils_v2'
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
"""
|
||||
|
||||
AUTHOR:
|
||||
|
||||
Khushal P Soonderji
|
||||
|
||||
DATE:
|
||||
|
||||
Wednesday, 12th Feb., 2025.
|
||||
|
||||
OBJECTIVE:
|
||||
|
||||
To provide authentication abstraction for using with the Async REST class.
|
||||
The idea is that if an input library changes, the rest of the code shouldn't change.
|
||||
|
||||
REFERENCES:
|
||||
|
||||
N/A
|
||||
|
||||
DOWNLOADS:
|
||||
|
||||
N/A
|
||||
|
||||
"""
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** IMPORT ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
# To make sibling directories accessible for imports:
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
sys.path.append("..")
|
||||
|
||||
# System-level activities:
|
||||
import io
|
||||
|
||||
# The base model:
|
||||
from utils_v2.rest.models.api_call import ApiResponse
|
||||
|
||||
# My utils:
|
||||
from utils_v2.date_time import date_time
|
||||
|
||||
# To make API calls:
|
||||
import httpx
|
||||
|
||||
# To work with date and time:
|
||||
import datetime
|
||||
|
||||
# For working with datatypes:
|
||||
from typing import Literal, List
|
||||
|
||||
# For creating abstract classes:
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
# For debugging:
|
||||
from icecream import IceCreamDebugger
|
||||
import inspect
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** MACROS / ONE-TIME INIT ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
# --- Nothing Yet
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** VARIABLES ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
# --- Nothing Yet
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** FUNCTIONS ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
# --- Nothing Yet
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** CLASSES ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
class RESTAuth(ABC):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def encode(self) -> httpx.Auth:
|
||||
|
||||
"""
|
||||
Use this method to give the desired output. For example, in Basic Auth, you convert the input username and
|
||||
password to a Base64 string. If you are using, say, the HTTPX library, you would want to return its class from
|
||||
this method.
|
||||
:return: Whatever object is needed by the library you are using inside 'AsyncREST'.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
class BasicAuth(RESTAuth):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
username: str,
|
||||
password: str
|
||||
):
|
||||
|
||||
super().__init__()
|
||||
self._username = username
|
||||
self._password = password
|
||||
|
||||
def encode(self) -> httpx.BasicAuth:
|
||||
return httpx.BasicAuth(self._username, self._password)
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
# *** MAIN PROGRAM ***
|
||||
# ***** ****
|
||||
# *****************************************************************************************************************
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
pass
|
||||
Reference in New Issue
Block a user