Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ from sms_ir import SmsIr
sms_ir = SmsIr(
api_key,
linenumber,
logger #Optional
)
```

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="smsir-python",
version="1.1.7",
version="1.1.8",
author="Mojtaba Akbari",
author_email="mojtaba.akbari.221b@gmail.com",
packages=["sms_ir", "sms_ir/async_services", "sms_ir/sync_services"],
Expand Down
5 changes: 4 additions & 1 deletion sms_ir/async_services/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@
from aiohttp import ClientResponse

from .requester import Requestser
from ..base_logger import get_default_logger


class AsyncSmsIr:
def __init__(
self,
api_key: str,
linenumber: Optional[int] = None,
logger=get_default_logger(),
) -> None:
headers = {
"X-API-KEY": api_key,
Expand All @@ -17,7 +20,7 @@ def __init__(
}

self._linenumber = linenumber
self._requester = Requestser(headers)
self._requester = Requestser(headers, logger)

async def close(self):
"""
Expand Down
4 changes: 2 additions & 2 deletions sms_ir/async_services/requester.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@


class Requestser(BaseRequester):
def __init__(self, headers: dict[str, str]) -> None:
super().__init__()
def __init__(self, headers: dict[str, str], logger) -> None:
super().__init__(logger)
self._session = ClientSession(base_url=self.endpoint, headers=headers)

async def close(self):
Expand Down
22 changes: 22 additions & 0 deletions sms_ir/base_logger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import sys
import logging

from functools import cache


@cache
def get_default_logger():
# setup logging
log_level = logging.INFO

log_format = logging.Formatter("[%(asctime)s] [%(levelname)s] - %(message)s")
logger = logging.getLogger(__name__)
logger.setLevel(log_level)

# writing to stdout
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(log_level)
handler.setFormatter(log_format)
logger.addHandler(handler)

return logger
19 changes: 3 additions & 16 deletions sms_ir/base_requester.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,8 @@
import logging
import sys

ENDPOINT = "https://api.sms.ir"


class BaseRequester:
def __init__(self) -> None:
def __init__(self, logger) -> None:
self.endpoint = ENDPOINT

# setup logging
self.log_level = logging.INFO

log_format = logging.Formatter("[%(asctime)s] [%(levelname)s] - %(message)s")
self.logger = logging.getLogger(__name__)
self.logger.setLevel(self.log_level)

# writing to stdout
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(self.log_level)
handler.setFormatter(log_format)
self.logger.addHandler(handler)
self.logger = logger
4 changes: 3 additions & 1 deletion sms_ir/sync_services/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
from typing import List, Optional
from requests.models import Response
from .requester import Requestser
from ..base_logger import get_default_logger


class SmsIr:
def __init__(
self,
api_key: str,
linenumber: Optional[int] = None,
logger=get_default_logger(),
) -> None:
headers = {
"X-API-KEY": api_key,
Expand All @@ -16,7 +18,7 @@ def __init__(
}

self._linenumber = linenumber
self._requester = Requestser(headers)
self._requester = Requestser(headers, logger)

def send_sms(
self,
Expand Down
4 changes: 2 additions & 2 deletions sms_ir/sync_services/requester.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@


class Requestser(BaseRequester):
def __init__(self, headers: dict[str, str]) -> None:
super().__init__()
def __init__(self, headers: dict[str, str], logger) -> None:
super().__init__(logger)
self._session = requests.Session()
self._session.headers.update(headers)

Expand Down