From 2f60c6845dde9babbf94ef72b88ec04b86ddf999 Mon Sep 17 00:00:00 2001 From: thevickypedia Date: Wed, 30 Aug 2023 20:14:05 -0500 Subject: [PATCH] Set return type to `None` from `NoReturn` Use gitverse for generating release notes Upgrade to latest flake8 and isort Bump version --- .pre-commit-config.yaml | 8 +- README.md | 6 +- docs/README.html | 10 +- docs/_sources/README.md.txt | 6 +- docs/_static/pygments.css | 1 + docs/index.html | 28 ++-- docs/searchindex.js | 2 +- gen_docs.sh | 11 +- gmailconnector/__init__.py | 6 +- gmailconnector/read_email.py | 4 +- gmailconnector/send_email.py | 6 +- gmailconnector/send_sms.py | 8 +- gmailconnector/sms_deleter.py | 4 +- release_notes.rst | 275 ++++++---------------------------- 14 files changed, 89 insertions(+), 286 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a9cf18a..36e61be 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ repos: - - repo: https://gitlab.com/pycqa/flake8 - rev: '3.9.2' + repo: https://github.com/PyCQA/flake8 + rev: '6.1.0' hooks: - id: flake8 @@ -11,8 +11,8 @@ repos: args: [--max-line-length=120, --extend-ignore=SFS3 D107 SFS301 D100 D104 D401 SFS101] - - repo: https://github.com/pre-commit/mirrors-isort - rev: 'v5.8.0' + repo: https://github.com/PyCQA/isort + rev: '5.12.0' hooks: - id: isort diff --git a/README.md b/README.md index 27b0b2d..aa069af 100644 --- a/README.md +++ b/README.md @@ -182,15 +182,15 @@ pip install sphinx==5.1.1 pre-commit==2.20.0 recommonmark==0.7.1 pre-commit run --all-files ``` -### Change Log +### [Release Notes](https://github.com/thevickypedia/gmail-connector/blob/master/release_notes.rst) **Requirement** ```shell -pip install changelog-generator +python -m pip install gitverse ``` **Usage** ```shell -changelog reverse -f release_notes.rst -t 'Release Notes' +gitverse-release reverse -f release_notes.rst -t 'Release Notes' ``` ### Pypi Module diff --git a/docs/README.html b/docs/README.html index f662652..d798b09 100644 --- a/docs/README.html +++ b/docs/README.html @@ -226,14 +226,14 @@

Linting -

Change Log

+
+

Release Notes

Requirement

-
pip install changelog-generator
+
python -m pip install gitverse
 

Usage

-
changelog reverse -f release_notes.rst -t 'Release Notes'
+
gitverse-release reverse -f release_notes.rst -t 'Release Notes'
 
@@ -281,7 +281,7 @@

Table of Contents

  • Read Email
  • Linting
  • -
  • Change Log
  • +
  • Release Notes
  • Pypi Module
  • Runbook
  • Repository
  • diff --git a/docs/_sources/README.md.txt b/docs/_sources/README.md.txt index 27b0b2d..aa069af 100644 --- a/docs/_sources/README.md.txt +++ b/docs/_sources/README.md.txt @@ -182,15 +182,15 @@ pip install sphinx==5.1.1 pre-commit==2.20.0 recommonmark==0.7.1 pre-commit run --all-files ``` -### Change Log +### [Release Notes](https://github.com/thevickypedia/gmail-connector/blob/master/release_notes.rst) **Requirement** ```shell -pip install changelog-generator +python -m pip install gitverse ``` **Usage** ```shell -changelog reverse -f release_notes.rst -t 'Release Notes' +gitverse-release reverse -f release_notes.rst -t 'Release Notes' ``` ### Pypi Module diff --git a/docs/_static/pygments.css b/docs/_static/pygments.css index 691aeb8..0d49244 100644 --- a/docs/_static/pygments.css +++ b/docs/_static/pygments.css @@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ diff --git a/docs/index.html b/docs/index.html index 45ceebe..fe4efb0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -61,7 +61,7 @@

    Welcome to Gmail Connector’s documentation!

    Send SMS

    -class gmailconnector.send_sms.SendSMS(gmail_user: Optional[str] = None, gmail_pass: Optional[str] = None, timeout: Union[int, float] = 10, gmail_host: str = 'smtp.gmail.com', encryption: __str__ = Encryption.TLS)
    +class gmailconnector.send_sms.SendSMS(gmail_user: str = None, gmail_pass: str = None, timeout: Union[int, float] = 10, gmail_host: str = 'smtp.gmail.com', encryption: __str__ = Encryption.TLS)

    Initiates Messenger object to send an SMS to a phone number using SMS gateway provided by the mobile carrier.

    >>> SendSMS
     
    @@ -94,13 +94,13 @@

    Welcome to Gmail Connector’s documentation!
    -create_ssl_connection(host: str, timeout: Union[int, float]) NoReturn
    +create_ssl_connection(host: str, timeout: Union[int, float]) None

    Create a connection using SSL encryption.

    -create_tls_connection(host: str, timeout: Union[int, float]) NoReturn
    +create_tls_connection(host: str, timeout: Union[int, float]) None

    Create a connection using TLS encryption.

    @@ -120,7 +120,7 @@

    Welcome to Gmail Connector’s documentation!
    -send_sms(message: str, phone: Optional[str] = None, subject: Optional[str] = None, sms_gateway: __str__ = 'tmomail.net', delete_sent: bool = False) Response
    +send_sms(message: str, phone: str = None, subject: str = None, sms_gateway: __str__ = 'tmomail.net', delete_sent: bool = False) Response

    Initiates a TLS connection and sends a text message through SMS gateway of destination number.

    Parameters:
    @@ -155,7 +155,7 @@

    Welcome to Gmail Connector’s documentation!
    -static validate_phone(phone: str) NoReturn
    +static validate_phone(phone: str) None

    Validates all the arguments passed during object initialization.

    Parameters:
    @@ -179,7 +179,7 @@

    Welcome to Gmail Connector’s documentation!
    -create_ssl_connection() NoReturn
    +create_ssl_connection() None

    Create a connection using SSL encryption.

    @@ -215,7 +215,7 @@

    Welcome to Gmail Connector’s documentation!

    Send Email

    -class gmailconnector.send_email.SendEmail(gmail_user: Optional[str] = None, gmail_pass: Optional[str] = None, timeout: Union[int, float] = 10, gmail_host: str = 'smtp.gmail.com', encryption: __str__ = Encryption.TLS)
    +class gmailconnector.send_email.SendEmail(gmail_user: str = None, gmail_pass: str = None, timeout: Union[int, float] = 10, gmail_host: str = 'smtp.gmail.com', encryption: __str__ = Encryption.TLS)

    Initiates Emailer object to email defined recipient from a defined sender with or without attachments.

    >>> SendEmail
     
    @@ -248,13 +248,13 @@

    Welcome to Gmail Connector’s documentation!
    -create_ssl_connection(host: str, timeout: Union[int, float]) NoReturn
    +create_ssl_connection(host: str, timeout: Union[int, float]) None

    Create a connection using SSL encryption.

    -create_tls_connection(host: str, timeout: Union[int, float]) NoReturn
    +create_tls_connection(host: str, timeout: Union[int, float]) None

    Create a connection using TLS encryption.

    @@ -289,7 +289,7 @@

    Welcome to Gmail Connector’s documentation!
    -send_email(subject: str, recipient: Union[str, list], sender: str = 'GmailConnector', body: Optional[str] = None, html_body: Optional[str] = None, attachment: Optional[Union[str, list]] = None, filename: Optional[Union[str, list]] = None, custom_attachment: Optional[Dict[Union[str, PathLike], str]] = None, cc: Optional[Union[str, list]] = None, bcc: Optional[Union[str, list]] = None, fail_if_attach_fails: bool = True) Response
    +send_email(subject: str, recipient: Union[str, list], sender: str = 'GmailConnector', body: str = None, html_body: str = None, attachment: Union[str, list] = None, filename: Union[str, list] = None, custom_attachment: Dict[Union[str, PathLike], str] = None, cc: Union[str, list] = None, bcc: Union[str, list] = None, fail_if_attach_fails: bool = True) Response

    Initiates a TLS connection and sends the email.

    Parameters:
    @@ -329,7 +329,7 @@

    Welcome to Gmail Connector’s documentation!

    Read Email

    -class gmailconnector.read_email.ReadEmail(gmail_user: Optional[str] = None, gmail_pass: Optional[str] = None, folder: __str__ = 'inbox', gmail_host: str = 'imap.gmail.com', timeout: Union[int, float] = 10)
    +class gmailconnector.read_email.ReadEmail(gmail_user: str = None, gmail_pass: str = None, folder: __str__ = 'inbox', gmail_host: str = 'imap.gmail.com', timeout: Union[int, float] = 10)

    Initiates Emailer object to authenticate and yield the emails according the conditions/filters.

    >>> ReadEmail
     
    @@ -366,7 +366,7 @@

    Welcome to Gmail Connector’s documentation!
    -create_ssl_connection(gmail_host: str, timeout: Union[int, float]) NoReturn
    +create_ssl_connection(gmail_host: str, timeout: Union[int, float]) None

    Creates an SSL connection to gmail’s SSL server.

    @@ -435,7 +435,7 @@

    Welcome to Gmail Connector’s documentation!

    Validator

    -gmailconnector.validator.validate_email.validate_email(email_address: str, timeout: ~typing.Union[int, float] = 5, sender: ~typing.Optional[str] = None, debug: bool = False, smtp_check: bool = True, logger: ~logging.Logger = <Logger validator (DEBUG)>) Response
    +gmailconnector.validator.validate_email.validate_email(email_address: str, timeout: ~typing.Union[int, float] = 5, sender: str = None, debug: bool = False, smtp_check: bool = True, logger: ~logging.Logger = <Logger validator (DEBUG)>) Response

    Validates email address deliver-ability using SMTP.

    Parameters:
    @@ -555,7 +555,7 @@

    Welcome to Gmail Connector’s documentation!

    Models - Config

    -class gmailconnector.models.config.Encryption(value)
    +class gmailconnector.models.config.Encryption(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

    Enum wrapper for TLS and SSL encryption.

    diff --git a/docs/searchindex.js b/docs/searchindex.js index 9bab00b..5f25773 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "index"], "filenames": ["README.md", "index.rst"], "titles": ["Gmail Connector", "Welcome to Gmail Connector\u2019s documentation!"], "terms": {"python": 0, "ani": [0, 1], "folder": [0, 1], "As": 0, "mai": 0, "30": 0, "2022": 0, "googl": 0, "longer": 0, "support": 0, "third": 0, "parti": 0, "applic": 0, "access": [0, 1], "account": 0, "onli": [0, 1], "us": [0, 1], "usernam": [0, 1], "password": [0, 1], "which": [0, 1], "wa": [0, 1], "origin": 0, "avail": [0, 1], "through": [0, 1], "lesssecureapp": 0, "an": [0, 1], "altern": 0, "approach": 0, "i": [0, 1], "gener": [0, 1], "apppassword": 0, "instead": 0, "refer": [0, 1], "http": [0, 1], "com": [0, 1], "answer": [0, 1], "6010255": 0, "pip": 0, "environ": 0, "variabl": [0, 1], "can": [0, 1], "load": 0, "from": [0, 1], "file": [0, 1], "For": 0, "authent": [0, 1], "gmail_us": [0, 1], "gmail_pass": [0, 1], "account_password": 0, "outbound": 0, "phone": [0, 1], "1234567890": 0, "option": 0, "also": 0, "scan": 0, "import": [0, 1], "gmailconnector": [0, 1], "gc": 0, "load_env": 0, "true": [0, 1], "sms_object": 0, "sendsm": [0, 1], "encrypt": [0, 1], "ssl": [0, 1], "auth": 0, "happen": 0, "befor": [0, 1], "instanti": [0, 1], "separ": 0, "assert": 0, "ok": [0, 1], "bodi": [0, 1], "respons": [0, 1], "send_sm": [0, 1], "11234567890": [0, 1], "messag": [0, 1], "test": 0, "sms_gatewai": [0, 1], "smsgatewai": [0, 1], "verizon": [0, 1], "delete_s": [0, 1], "set": [0, 1], "fals": [0, 1], "keep": 0, "sent": 0, "json": [0, 1], "print": 0, "more": 0, "warn": 0, "": 0, "gatewai": [0, 1], "ha": [0, 1], "payload": 0, "limit": 0, "so": [0, 1], "recommend": 0, "break": 0, "larger": 0, "multipl": [0, 1], "subject": [0, 1], "default": [0, 1], "_": 0, "carrier": [0, 1], "tmomail": [0, 1], "net": [0, 1], "sinc": [0, 1], "t": 0, "mobil": [0, 1], "delet": 0, "boolean": [0, 1], "flag": [0, 1], "sentitem": [0, 1], "note": [0, 1], "If": 0, "known": 0, "ensur": 0, "proper": 0, "deliveri": 0, "mail_object": 0, "sendemail": [0, 1], "send_email": [0, 1], "beforehand": 0, "basic": 0, "recipi": [0, 1], "howdi": 0, "To": 0, "verifi": 0, "requir": 0, "smtp": [0, 1], "port": [0, 1], "25": [0, 1], "validation_result": 0, "validate_email": [0, 1], "email_address": [0, 1], "someon": 0, "exampl": [0, 1], "valid": 0, "found": 0, "address": 0, "elif": 0, "invalid": [0, 1], "els": 0, "incomplet": 0, "couldn": 0, "mostli": 0, "becaus": 0, "block": [0, 1], "isp": 0, "o": 0, "differ": [0, 1], "case": 0, "add": [0, 1], "attach": [0, 1], "without": [0, 1], "custom": 0, "filenam": [0, 1], "imag": 0, "path": [0, 1], "join": 0, "getcwd": 0, "listdir": 0, "name": [0, 1], "appl": 0, "flower": 0, "balloon": 0, "1": [0, 1], "2": [0, 1], "dictionari": [0, 1], "custom_attach": [0, 1], "dict": [0, 1], "zip": 0, "3": 0, "list": [0, 1], "4": 0, "singl": 0, "random_apple_xroamutiypa": 0, "jpeg": 0, "blank": 0, "html": [0, 1], "format": [0, 1], "inlin": 0, "public": 0, "src": 0, "itself": [0, 1], "sender": [0, 1], "cc": [0, 1], "whom": [0, 1], "d": [0, 1], "bcc": [0, 1], "than": [0, 1], "one": 0, "wrap": 0, "username1": 0, "username2": 0, "datetim": [0, 1], "reader": 0, "reademail": [0, 1], "all": [0, 1], "filter1": 0, "condit": [0, 1], "date": [0, 1], "year": 0, "2010": 0, "month": 0, "5": [0, 1], "dai": 0, "filter2": 0, "secur": 0, "alert": 0, "filter3": 0, "categori": [0, 1], "not_delet": [0, 1], "filter": [0, 1], "appli": 0, "same": [0, 1], "time": [0, 1], "each_mail": 0, "read_mail": [0, 1], "humanize_datetim": [0, 1], "get": [0, 1], "object": [0, 1], "date_tim": 0, "sender_email": 0, "precommit": 0, "doc": 0, "creation": 0, "ar": 0, "run": 0, "everi": 0, "commit": 0, "sphinx": 0, "pre": 0, "20": 0, "0": [0, 1], "recommonmark": 0, "7": 0, "changelog": 0, "revers": 0, "f": 0, "release_not": 0, "rst": 0, "releas": 0, "org": 0, "project": 0, "thevickypedia": 0, "github": 0, "io": [0, 1], "vignesh": 0, "sivanandha": 0, "rao": 0, "under": 0, "mit": 0, "instal": 1, "env": 1, "var": 1, "usag": 1, "licens": 1, "copyright": 1, "class": 1, "str": 1, "none": 1, "timeout": 1, "union": 1, "int": 1, "float": 1, "10": 1, "gmail_host": 1, "__str__": 1, "tl": 1, "initi": 1, "messeng": 1, "number": 1, "provid": 1, "necessari": 1, "arg": 1, "paramet": 1, "lib": 1, "connect": 1, "type": 1, "hostnam": 1, "server": 1, "properti": 1, "return": 1, "A": 1, "statu": 1, "user": 1, "create_ssl_connect": 1, "host": 1, "noreturn": 1, "creat": 1, "create_tls_connect": 1, "static": 1, "generate_address": 1, "digit": 1, "form": 1, "endpoint": 1, "bool": 1, "text": 1, "destin": 1, "content": 1, "line": 1, "take": 1, "argument": 1, "item": 1, "encod": 1, "ascii": 1, "ignor": 1, "decod": 1, "thi": 1, "done": 1, "special": 1, "charact": 1, "like": 1, "rais": 1, "unicodeencodeerror": 1, "try": 1, "other": 1, "includ": 1, "replac": 1, "xmlcharrefreplac": 1, "validate_phon": 1, "pass": 1, "dure": 1, "sms_delet": 1, "deletes": 1, "kwarg": 1, "member": 1, "right": 1, "after": 1, "invok": 1, "thread_executor": 1, "sweep": 1, "depend": 1, "exist": 1, "item_id": 1, "byte": 1, "thread": 1, "just": 1, "id": 1, "defin": 1, "587": 1, "multipart_messag": 1, "html_bodi": 1, "mimemultipart": 1, "multipart": 1, "given": 1, "version": 1, "pathlik": 1, "fail_if_attach_fail": 1, "filepath": 1, "kei": 1, "valu": 1, "restrict": 1, "fail": 1, "them": 1, "read_email": 1, "inbox": 1, "imap": 1, "yield": 1, "accord": 1, "where": 1, "have": 1, "imapcli": 1, "readthedoc": 1, "en": 1, "_modul": 1, "xlist_fold": 1, "broad": 1, "claus": 1, "catch": 1, "login": 1, "error": 1, "imaplib": 1, "get_info": 1, "response_part": 1, "tupl": 1, "dt_flag": 1, "extract": 1, "receiv": 1, "part": 1, "whether": 1, "convert": 1, "human": 1, "readabl": 1, "inform": 1, "iter": 1, "unseen": 1, "search": 1, "api": 1, "contain": 1, "code": 1, "match": 1, "criteria": 1, "method": 1, "debug": 1, "smtp_check": 1, "logger": 1, "log": 1, "deliv": 1, "abil": 1, "second": 1, "wait": 1, "result": 1, "enabl": 1, "check": 1, "bring": 1, "your": 1, "own": 1, "clearli": 1, "mx": 1, "record": 1, "temporari": 1, "emailaddress": 1, "validateaddress": 1, "split": 1, "domin": 1, "further": 1, "ipv4address": 1, "ipv6address": 1, "get_mx_record": 1, "mail": 1, "exchang": 1, "fqdn": 1, "fulli": 1, "qualifi": 1, "ip": 1, "authorit": 1, "non": 1, "section": 1, "addressformaterror": 1, "invaliddomain": 1, "notmailserv": 1, "unresponsivemailserv": 1, "unrespons": 1, "enum": 1, "wrapper": 1, "mm": 1, "att": 1, "vtext": 1, "smsmyboostmobil": 1, "cricketwireless": 1, "uscc": 1, "boost": 1, "cricket": 1, "tmobil": 1, "uscellular": 1, "while": 1, "NOT": 1, "seen": 1, "retriev": 1, "small": 1, "size": 1, "smaller": 1, "particular": 1, "present": 1, "choos": 1, "draft": 1, "spam": 1, "star": 1, "trash": 1, "turn": 1, "insert": 1, "pair": 1, "count": 1, "un": 1, "extra": 1, "base": 1, "index": 1, "modul": 1, "page": 1}, "objects": {"gmailconnector.models": [[1, 0, 0, "-", "config"], [1, 0, 0, "-", "options"], [1, 0, 0, "-", "responder"]], "gmailconnector.models.config": [[1, 1, 1, "", "Encryption"], [1, 1, 1, "", "SMSGateway"]], "gmailconnector.models.config.Encryption": [[1, 2, 1, "", "SSL"], [1, 2, 1, "", "TLS"]], "gmailconnector.models.config.SMSGateway": [[1, 2, 1, "", "all"], [1, 2, 1, "", "att"], [1, 2, 1, "", "boost"], [1, 2, 1, "", "cricket"], [1, 2, 1, "", "tmobile"], [1, 2, 1, "", "uscellular"], [1, 2, 1, "", "verizon"]], "gmailconnector.models.options": [[1, 1, 1, "", "Category"], [1, 1, 1, "", "Condition"], [1, 1, 1, "", "Folder"]], "gmailconnector.models.options.Category": [[1, 2, 1, "", "all"], [1, 2, 1, "", "flagged"], [1, 2, 1, "", "not_deleted"], [1, 2, 1, "", "seen"], [1, 2, 1, "", "unseen"]], "gmailconnector.models.options.Condition": [[1, 3, 1, "", "since"], [1, 3, 1, "", "small"], [1, 3, 1, "", "subject"], [1, 3, 1, "", "text"]], "gmailconnector.models.options.Folder": [[1, 2, 1, "", "all"], [1, 2, 1, "", "drafts"], [1, 2, 1, "", "important"], [1, 2, 1, "", "inbox"], [1, 2, 1, "", "sent"], [1, 2, 1, "", "spam"], [1, 2, 1, "", "starred"], [1, 2, 1, "", "trash"]], "gmailconnector.models.responder": [[1, 1, 1, "", "Email"], [1, 1, 1, "", "Response"]], "gmailconnector.models.responder.Response": [[1, 4, 1, "", "body"], [1, 4, 1, "", "count"], [1, 4, 1, "", "extra"], [1, 3, 1, "", "json"], [1, 4, 1, "", "ok"], [1, 4, 1, "", "status"]], "gmailconnector": [[1, 0, 0, "-", "read_email"], [1, 0, 0, "-", "send_email"], [1, 0, 0, "-", "send_sms"], [1, 0, 0, "-", "sms_deleter"]], "gmailconnector.read_email": [[1, 1, 1, "", "ReadEmail"]], "gmailconnector.read_email.ReadEmail": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "get_info"], [1, 3, 1, "", "instantiate"], [1, 3, 1, "", "read_mail"]], "gmailconnector.send_email": [[1, 1, 1, "", "SendEmail"], [1, 5, 1, "", "validate_email"]], "gmailconnector.send_email.SendEmail": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "create_tls_connection"], [1, 3, 1, "", "multipart_message"], [1, 3, 1, "", "send_email"]], "gmailconnector.send_sms": [[1, 1, 1, "", "SendSMS"]], "gmailconnector.send_sms.SendSMS": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "create_tls_connection"], [1, 3, 1, "", "generate_address"], [1, 3, 1, "", "send_sms"], [1, 3, 1, "", "validate_phone"]], "gmailconnector.sms_deleter": [[1, 1, 1, "", "DeleteSent"]], "gmailconnector.sms_deleter.DeleteSent": [[1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "delete_sent"], [1, 3, 1, "", "thread_executor"]], "gmailconnector.validator": [[1, 0, 0, "-", "address"], [1, 0, 0, "-", "domain"], [1, 0, 0, "-", "exceptions"], [1, 0, 0, "-", "validate_email"]], "gmailconnector.validator.address": [[1, 1, 1, "", "EmailAddress"]], "gmailconnector.validator.address.EmailAddress": [[1, 4, 1, "", "domain"], [1, 4, 1, "", "email"], [1, 4, 1, "", "user"]], "gmailconnector.validator.domain": [[1, 5, 1, "", "get_mx_records"]], "gmailconnector.validator.exceptions": [[1, 6, 1, "", "AddressFormatError"], [1, 6, 1, "", "InvalidDomain"], [1, 6, 1, "", "NotMailServer"], [1, 6, 1, "", "UnresponsiveMailServer"]], "gmailconnector.validator.validate_email": [[1, 5, 1, "", "validate_email"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function", "6": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"], "6": ["py", "exception", "Python exception"]}, "titleterms": {"gmail": [0, 1], "connector": [0, 1], "instal": 0, "env": 0, "var": 0, "usag": 0, "send": [0, 1], "sm": [0, 1], "addit": 0, "arg": 0, "email": [0, 1], "read": [0, 1], "lint": 0, "chang": 0, "log": 0, "pypi": 0, "modul": 0, "runbook": 0, "repositori": 0, "licens": 0, "copyright": 0, "welcom": 1, "": 1, "document": 1, "me": 1, "delet": 1, "sent": 1, "valid": 1, "address": 1, "domain": 1, "custom": 1, "except": 1, "model": 1, "config": 1, "option": 1, "respond": 1, "indic": 1, "tabl": 1}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "index"], "filenames": ["README.md", "index.rst"], "titles": ["Gmail Connector", "Welcome to Gmail Connector\u2019s documentation!"], "terms": {"python": 0, "ani": [0, 1], "folder": [0, 1], "As": 0, "mai": 0, "30": 0, "2022": 0, "googl": 0, "longer": 0, "support": 0, "third": 0, "parti": 0, "applic": 0, "access": [0, 1], "account": 0, "onli": [0, 1], "us": [0, 1], "usernam": [0, 1], "password": [0, 1], "which": [0, 1], "wa": [0, 1], "origin": 0, "avail": [0, 1], "through": [0, 1], "lesssecureapp": 0, "an": [0, 1], "altern": 0, "approach": 0, "i": [0, 1], "gener": [0, 1], "apppassword": 0, "instead": 0, "refer": [0, 1], "http": [0, 1], "com": [0, 1], "answer": [0, 1], "6010255": 0, "pip": 0, "environ": 0, "variabl": [0, 1], "can": [0, 1], "load": 0, "from": [0, 1], "file": [0, 1], "For": 0, "authent": [0, 1], "gmail_us": [0, 1], "gmail_pass": [0, 1], "account_password": 0, "outbound": 0, "phone": [0, 1], "1234567890": 0, "option": 0, "also": 0, "scan": 0, "import": [0, 1], "gmailconnector": [0, 1], "gc": 0, "load_env": 0, "true": [0, 1], "sms_object": 0, "sendsm": [0, 1], "encrypt": [0, 1], "ssl": [0, 1], "auth": 0, "happen": 0, "befor": [0, 1], "instanti": [0, 1], "separ": 0, "assert": 0, "ok": [0, 1], "bodi": [0, 1], "respons": [0, 1], "send_sm": [0, 1], "11234567890": [0, 1], "messag": [0, 1], "test": 0, "sms_gatewai": [0, 1], "smsgatewai": [0, 1], "verizon": [0, 1], "delete_s": [0, 1], "set": [0, 1], "fals": [0, 1], "keep": 0, "sent": 0, "json": [0, 1], "print": 0, "more": 0, "warn": 0, "": 0, "gatewai": [0, 1], "ha": [0, 1], "payload": 0, "limit": 0, "so": [0, 1], "recommend": 0, "break": 0, "larger": 0, "multipl": [0, 1], "subject": [0, 1], "default": [0, 1], "_": 0, "carrier": [0, 1], "tmomail": [0, 1], "net": [0, 1], "sinc": [0, 1], "t": 0, "mobil": [0, 1], "delet": 0, "boolean": [0, 1], "flag": [0, 1], "sentitem": [0, 1], "If": 0, "known": 0, "ensur": 0, "proper": 0, "deliveri": 0, "mail_object": 0, "sendemail": [0, 1], "send_email": [0, 1], "beforehand": 0, "basic": 0, "recipi": [0, 1], "howdi": 0, "To": 0, "verifi": 0, "requir": 0, "smtp": [0, 1], "port": [0, 1], "25": [0, 1], "validation_result": 0, "validate_email": [0, 1], "email_address": [0, 1], "someon": 0, "exampl": [0, 1], "valid": 0, "found": 0, "address": 0, "elif": 0, "invalid": [0, 1], "els": 0, "incomplet": 0, "couldn": 0, "mostli": 0, "becaus": 0, "block": [0, 1], "isp": 0, "o": 0, "differ": [0, 1], "case": 0, "add": [0, 1], "attach": [0, 1], "without": [0, 1], "custom": 0, "filenam": [0, 1], "imag": 0, "path": [0, 1], "join": 0, "getcwd": 0, "listdir": 0, "name": [0, 1], "appl": 0, "flower": 0, "balloon": 0, "1": [0, 1], "2": [0, 1], "dictionari": [0, 1], "custom_attach": [0, 1], "dict": [0, 1], "zip": 0, "3": 0, "list": [0, 1], "4": 0, "singl": 0, "random_apple_xroamutiypa": 0, "jpeg": 0, "blank": 0, "html": [0, 1], "format": [0, 1], "inlin": 0, "public": 0, "src": 0, "itself": [0, 1], "sender": [0, 1], "cc": [0, 1], "whom": [0, 1], "d": [0, 1], "bcc": [0, 1], "than": [0, 1], "one": 0, "wrap": 0, "username1": 0, "username2": 0, "datetim": [0, 1], "reader": 0, "reademail": [0, 1], "all": [0, 1], "filter1": 0, "condit": [0, 1], "date": [0, 1], "year": 0, "2010": 0, "month": 0, "5": [0, 1], "dai": 0, "filter2": 0, "secur": 0, "alert": 0, "filter3": 0, "categori": [0, 1], "not_delet": [0, 1], "filter": [0, 1], "appli": 0, "same": [0, 1], "time": [0, 1], "each_mail": 0, "read_mail": [0, 1], "humanize_datetim": [0, 1], "get": [0, 1], "object": [0, 1], "date_tim": 0, "sender_email": 0, "precommit": 0, "doc": 0, "creation": 0, "ar": 0, "run": 0, "everi": 0, "commit": 0, "sphinx": 0, "pre": 0, "20": 0, "0": [0, 1], "recommonmark": 0, "7": 0, "m": 0, "gitvers": 0, "revers": 0, "f": 0, "release_not": 0, "rst": 0, "org": 0, "project": 0, "thevickypedia": 0, "github": 0, "io": [0, 1], "vignesh": 0, "sivanandha": 0, "rao": 0, "under": 0, "mit": 0, "instal": 1, "env": 1, "var": 1, "usag": 1, "licens": 1, "copyright": 1, "class": 1, "str": 1, "none": 1, "timeout": 1, "union": 1, "int": 1, "float": 1, "10": 1, "gmail_host": 1, "__str__": 1, "tl": 1, "initi": 1, "messeng": 1, "number": 1, "provid": 1, "necessari": 1, "arg": 1, "paramet": 1, "lib": 1, "connect": 1, "type": 1, "hostnam": 1, "server": 1, "properti": 1, "return": 1, "A": 1, "statu": 1, "user": 1, "create_ssl_connect": 1, "host": 1, "creat": 1, "create_tls_connect": 1, "static": 1, "generate_address": 1, "digit": 1, "form": 1, "endpoint": 1, "bool": 1, "text": 1, "destin": 1, "content": 1, "line": 1, "take": 1, "argument": 1, "item": 1, "encod": 1, "ascii": 1, "ignor": 1, "decod": 1, "thi": 1, "done": 1, "special": 1, "charact": 1, "like": 1, "rais": 1, "unicodeencodeerror": 1, "try": 1, "note": 1, "other": 1, "includ": 1, "replac": 1, "xmlcharrefreplac": 1, "validate_phon": 1, "pass": 1, "dure": 1, "sms_delet": 1, "deletes": 1, "kwarg": 1, "member": 1, "right": 1, "after": 1, "invok": 1, "thread_executor": 1, "sweep": 1, "depend": 1, "exist": 1, "item_id": 1, "byte": 1, "thread": 1, "just": 1, "id": 1, "defin": 1, "587": 1, "multipart_messag": 1, "html_bodi": 1, "mimemultipart": 1, "multipart": 1, "given": 1, "version": 1, "pathlik": 1, "fail_if_attach_fail": 1, "filepath": 1, "kei": 1, "valu": 1, "restrict": 1, "fail": 1, "them": 1, "read_email": 1, "inbox": 1, "imap": 1, "yield": 1, "accord": 1, "where": 1, "have": 1, "imapcli": 1, "readthedoc": 1, "en": 1, "_modul": 1, "xlist_fold": 1, "broad": 1, "claus": 1, "catch": 1, "login": 1, "error": 1, "imaplib": 1, "get_info": 1, "response_part": 1, "tupl": 1, "dt_flag": 1, "extract": 1, "receiv": 1, "part": 1, "whether": 1, "convert": 1, "human": 1, "readabl": 1, "inform": 1, "iter": 1, "unseen": 1, "search": 1, "api": 1, "contain": 1, "code": 1, "match": 1, "criteria": 1, "method": 1, "debug": 1, "smtp_check": 1, "logger": 1, "log": 1, "deliv": 1, "abil": 1, "second": 1, "wait": 1, "result": 1, "enabl": 1, "check": 1, "bring": 1, "your": 1, "own": 1, "clearli": 1, "mx": 1, "record": 1, "temporari": 1, "emailaddress": 1, "validateaddress": 1, "split": 1, "domin": 1, "further": 1, "ipv4address": 1, "ipv6address": 1, "get_mx_record": 1, "mail": 1, "exchang": 1, "fqdn": 1, "fulli": 1, "qualifi": 1, "ip": 1, "authorit": 1, "non": 1, "section": 1, "addressformaterror": 1, "invaliddomain": 1, "notmailserv": 1, "unresponsivemailserv": 1, "unrespons": 1, "modul": 1, "qualnam": 1, "start": 1, "boundari": 1, "enum": 1, "wrapper": 1, "mm": 1, "att": 1, "vtext": 1, "smsmyboostmobil": 1, "cricketwireless": 1, "uscc": 1, "boost": 1, "cricket": 1, "tmobil": 1, "uscellular": 1, "while": 1, "NOT": 1, "seen": 1, "retriev": 1, "small": 1, "size": 1, "smaller": 1, "particular": 1, "present": 1, "choos": 1, "draft": 1, "spam": 1, "star": 1, "trash": 1, "turn": 1, "insert": 1, "pair": 1, "count": 1, "un": 1, "extra": 1, "base": 1, "index": 1, "page": 1}, "objects": {"gmailconnector.models": [[1, 0, 0, "-", "config"], [1, 0, 0, "-", "options"], [1, 0, 0, "-", "responder"]], "gmailconnector.models.config": [[1, 1, 1, "", "Encryption"], [1, 1, 1, "", "SMSGateway"]], "gmailconnector.models.config.Encryption": [[1, 2, 1, "", "SSL"], [1, 2, 1, "", "TLS"]], "gmailconnector.models.config.SMSGateway": [[1, 2, 1, "", "all"], [1, 2, 1, "", "att"], [1, 2, 1, "", "boost"], [1, 2, 1, "", "cricket"], [1, 2, 1, "", "tmobile"], [1, 2, 1, "", "uscellular"], [1, 2, 1, "", "verizon"]], "gmailconnector.models.options": [[1, 1, 1, "", "Category"], [1, 1, 1, "", "Condition"], [1, 1, 1, "", "Folder"]], "gmailconnector.models.options.Category": [[1, 2, 1, "", "all"], [1, 2, 1, "", "flagged"], [1, 2, 1, "", "not_deleted"], [1, 2, 1, "", "seen"], [1, 2, 1, "", "unseen"]], "gmailconnector.models.options.Condition": [[1, 3, 1, "", "since"], [1, 3, 1, "", "small"], [1, 3, 1, "", "subject"], [1, 3, 1, "", "text"]], "gmailconnector.models.options.Folder": [[1, 2, 1, "", "all"], [1, 2, 1, "", "drafts"], [1, 2, 1, "", "important"], [1, 2, 1, "", "inbox"], [1, 2, 1, "", "sent"], [1, 2, 1, "", "spam"], [1, 2, 1, "", "starred"], [1, 2, 1, "", "trash"]], "gmailconnector.models.responder": [[1, 1, 1, "", "Email"], [1, 1, 1, "", "Response"]], "gmailconnector.models.responder.Response": [[1, 4, 1, "", "body"], [1, 4, 1, "", "count"], [1, 4, 1, "", "extra"], [1, 3, 1, "", "json"], [1, 4, 1, "", "ok"], [1, 4, 1, "", "status"]], "gmailconnector": [[1, 0, 0, "-", "read_email"], [1, 0, 0, "-", "send_email"], [1, 0, 0, "-", "send_sms"], [1, 0, 0, "-", "sms_deleter"]], "gmailconnector.read_email": [[1, 1, 1, "", "ReadEmail"]], "gmailconnector.read_email.ReadEmail": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "get_info"], [1, 3, 1, "", "instantiate"], [1, 3, 1, "", "read_mail"]], "gmailconnector.send_email": [[1, 1, 1, "", "SendEmail"], [1, 5, 1, "", "validate_email"]], "gmailconnector.send_email.SendEmail": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "create_tls_connection"], [1, 3, 1, "", "multipart_message"], [1, 3, 1, "", "send_email"]], "gmailconnector.send_sms": [[1, 1, 1, "", "SendSMS"]], "gmailconnector.send_sms.SendSMS": [[1, 4, 1, "", "authenticate"], [1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "create_tls_connection"], [1, 3, 1, "", "generate_address"], [1, 3, 1, "", "send_sms"], [1, 3, 1, "", "validate_phone"]], "gmailconnector.sms_deleter": [[1, 1, 1, "", "DeleteSent"]], "gmailconnector.sms_deleter.DeleteSent": [[1, 3, 1, "", "create_ssl_connection"], [1, 3, 1, "", "delete_sent"], [1, 3, 1, "", "thread_executor"]], "gmailconnector.validator": [[1, 0, 0, "-", "address"], [1, 0, 0, "-", "domain"], [1, 0, 0, "-", "exceptions"], [1, 0, 0, "-", "validate_email"]], "gmailconnector.validator.address": [[1, 1, 1, "", "EmailAddress"]], "gmailconnector.validator.address.EmailAddress": [[1, 4, 1, "", "domain"], [1, 4, 1, "", "email"], [1, 4, 1, "", "user"]], "gmailconnector.validator.domain": [[1, 5, 1, "", "get_mx_records"]], "gmailconnector.validator.exceptions": [[1, 6, 1, "", "AddressFormatError"], [1, 6, 1, "", "InvalidDomain"], [1, 6, 1, "", "NotMailServer"], [1, 6, 1, "", "UnresponsiveMailServer"]], "gmailconnector.validator.validate_email": [[1, 5, 1, "", "validate_email"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function", "6": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"], "6": ["py", "exception", "Python exception"]}, "titleterms": {"gmail": [0, 1], "connector": [0, 1], "instal": 0, "env": 0, "var": 0, "usag": 0, "send": [0, 1], "sm": [0, 1], "addit": 0, "arg": 0, "email": [0, 1], "read": [0, 1], "lint": 0, "releas": 0, "note": 0, "pypi": 0, "modul": 0, "runbook": 0, "repositori": 0, "licens": 0, "copyright": 0, "welcom": 1, "": 1, "document": 1, "me": 1, "delet": 1, "sent": 1, "valid": 1, "address": 1, "domain": 1, "custom": 1, "except": 1, "model": 1, "config": 1, "option": 1, "respond": 1, "indic": 1, "tabl": 1}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/gen_docs.sh b/gen_docs.sh index ceda833..f1e302b 100644 --- a/gen_docs.sh +++ b/gen_docs.sh @@ -2,16 +2,7 @@ # `set -e` stops the execution of a script if a command or pipeline has an error. # This is the opposite of the default shell behaviour, which is to ignore errors in scripts. set -e - -branch="$(git rev-parse --abbrev-ref HEAD)" -checker=$(git diff --name-only `git merge-base $branch HEAD`) -if [[ ! $checker =~ "release_notes.rst" ]]; then - echo -e "\n********************************************************************ERROR**********************************************************" - echo "Docs generation was ABORTED since release notes was not updated!! Changelog generator requires the release notes to be in sync." - echo -e "***********************************************************************************************************************************\n" - exit 255 -fi - +gitverse-release reverse -f release_notes.rst -t 'Release Notes' rm -rf docs mkdir docs mkdir -p doc_generator/_static # creates a _static folder if unavailable diff --git a/gmailconnector/__init__.py b/gmailconnector/__init__.py index 7196fb4..8181733 100644 --- a/gmailconnector/__init__.py +++ b/gmailconnector/__init__.py @@ -1,7 +1,7 @@ """Place holder for package.""" import os -from typing import NoReturn, Union +from typing import Union import dotenv @@ -15,10 +15,10 @@ from .validator.address import EmailAddress # noqa: F401 from .validator.validate_email import validate_email # noqa: F401 -version = "0.9" +version = "0.9.1" -def load_env(filename: Union[str, os.PathLike] = ".env", scan: bool = False) -> NoReturn: +def load_env(filename: Union[str, os.PathLike] = ".env", scan: bool = False) -> None: """Load .env files.""" if scan: for file in os.listdir(): diff --git a/gmailconnector/read_email.py b/gmailconnector/read_email.py index 81e0c97..29723a8 100644 --- a/gmailconnector/read_email.py +++ b/gmailconnector/read_email.py @@ -5,7 +5,7 @@ from collections.abc import Generator from datetime import datetime, timedelta, timezone from email.header import decode_header, make_header -from typing import Iterable, NoReturn, Union +from typing import Iterable, Union import pytz @@ -49,7 +49,7 @@ def __init__(self, gmail_user: str = None, gmail_pass: str = None, folder: Folde self._authenticated = False self.create_ssl_connection(gmail_host=gmail_host, timeout=timeout) - def create_ssl_connection(self, gmail_host: str, timeout: Union[int, float]) -> NoReturn: + def create_ssl_connection(self, gmail_host: str, timeout: Union[int, float]) -> None: """Creates an SSL connection to gmail's SSL server.""" try: self.mail = imaplib.IMAP4_SSL(host=gmail_host, port=993, timeout=timeout) diff --git a/gmailconnector/send_email.py b/gmailconnector/send_email.py index e656bb1..6b49c24 100644 --- a/gmailconnector/send_email.py +++ b/gmailconnector/send_email.py @@ -4,7 +4,7 @@ from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText -from typing import Dict, NoReturn, Union +from typing import Dict, Union from .models.config import Encryption from .models.responder import Response @@ -58,14 +58,14 @@ def __init__(self, gmail_user: str = None, gmail_pass: str = None, timeout: Unio else: self.create_ssl_connection(host=gmail_host, timeout=timeout) - def create_ssl_connection(self, host: str, timeout: Union[int, float]) -> NoReturn: + def create_ssl_connection(self, host: str, timeout: Union[int, float]) -> None: """Create a connection using SSL encryption.""" try: self.server = smtplib.SMTP_SSL(host=host, port=465, timeout=timeout) except (smtplib.SMTPException, socket.error) as error: self.error = error.__str__() - def create_tls_connection(self, host: str, timeout: Union[int, float]) -> NoReturn: + def create_tls_connection(self, host: str, timeout: Union[int, float]) -> None: """Create a connection using TLS encryption.""" try: self.server = smtplib.SMTP(host=host, port=587, timeout=timeout) diff --git a/gmailconnector/send_sms.py b/gmailconnector/send_sms.py index 5a8ea19..c1a2ee9 100644 --- a/gmailconnector/send_sms.py +++ b/gmailconnector/send_sms.py @@ -1,7 +1,7 @@ import os import smtplib import socket -from typing import NoReturn, Union +from typing import Union from .models.config import Encryption, SMSGateway from .models.responder import Response @@ -46,14 +46,14 @@ def __init__(self, gmail_user: str = None, gmail_pass: str = None, timeout: Unio else: self.create_ssl_connection(host=gmail_host, timeout=timeout) - def create_ssl_connection(self, host: str, timeout: Union[int, float]) -> NoReturn: + def create_ssl_connection(self, host: str, timeout: Union[int, float]) -> None: """Create a connection using SSL encryption.""" try: self.server = smtplib.SMTP_SSL(host=host, port=465, timeout=timeout) except (smtplib.SMTPException, socket.error) as error: self.error = error.__str__() - def create_tls_connection(self, host: str, timeout: Union[int, float]) -> NoReturn: + def create_tls_connection(self, host: str, timeout: Union[int, float]) -> None: """Create a connection using TLS encryption.""" try: self.server = smtplib.SMTP(host=host, port=587, timeout=timeout) @@ -102,7 +102,7 @@ def __del__(self): self.server.close() @staticmethod - def validate_phone(phone: str) -> NoReturn: + def validate_phone(phone: str) -> None: """Validates all the arguments passed during object initialization. Args: diff --git a/gmailconnector/sms_deleter.py b/gmailconnector/sms_deleter.py index 38b9673..f9b541a 100644 --- a/gmailconnector/sms_deleter.py +++ b/gmailconnector/sms_deleter.py @@ -2,7 +2,7 @@ import imaplib from concurrent.futures import ThreadPoolExecutor from email.header import decode_header, make_header -from typing import Dict, NoReturn, Union +from typing import Dict, Union class DeleteSent: @@ -23,7 +23,7 @@ def __init__(self, **kwargs): self.error = None self.create_ssl_connection() - def create_ssl_connection(self) -> NoReturn: + def create_ssl_connection(self) -> None: """Create a connection using SSL encryption.""" try: self.mail = imaplib.IMAP4_SSL('imap.gmail.com') diff --git a/release_notes.rst b/release_notes.rst index 645117d..0e4900b 100644 --- a/release_notes.rst +++ b/release_notes.rst @@ -1,23 +1,23 @@ Release Notes ============= -0.8.0 (05/01/2023) +0.9.1 (08/30/2023) ------------------ +- Includes some minor modifications in type hinting + +0.9 (05/01/2023) +---------------- - Support validating email addresses for iterables - Update README.md and test_runner.py -0.7.9 (04/03/2023) ------------------- +0.8 (04/03/2023) +---------------- - Validate recipient address format in send_email.py - Make validator available on name space package - Update test runner -0.7.8 (04/03/2023) ------------------- -- Update README.md and python version requirement - -0.7.7 (04/03/2023) ------------------- +0.7 (04/03/2023) +---------------- - Make all objects available in __init__.py - Unhook changelog dependency with version numbers - Exclude private members in docs @@ -32,34 +32,6 @@ Release Notes - Remove unused namespace package - Reformat imports and update README.md -0.7.4 (04/02/2023) ------------------- -- Reformat and move objects to models dir -- Update docs - -0.7.3 (04/02/2023) ------------------- -- Bug fix on context to TLS and SSL -- Remove auth extension during encryption -- Move SMSGateway to be an object -- Onboard a test runner and Dockerfile -- Upgrade dependencies and move it to requirements.txt -- Update README.md - -0.7.2 (03/31/2023) ------------------- -- Support both `TLS` and `SSL` encryption for egress -- Optimize imports and update README.md - -0.7.1 (03/30/2023) ------------------- -- Support custom values for timeout and `.env` file - -0.7.0 (03/20/2023) ------------------- -- Add bring your own logger to multipart validators -- Change object name for email address - 0.6.9 (03/16/2023) ------------------ - Simplify samples in README.md and update responses @@ -75,14 +47,6 @@ Release Notes ------------------ - Update README.md -0.6.6 (02/09/2023) ------------------- -- Add a feature to get body of the email when reading -- Add a feature to inject multiple filters when reading -- Convert response from read email as an object -- Change Messenger to SendSMS to keep it consistent -- Convert build to pyrpoject.toml and update README.md - 0.6.5 (01/12/2023) ------------------ - Add more insight `custom_attachment` type hinting @@ -125,62 +89,6 @@ Release Notes - Switch python publish to run on release - Update README.md -0.5.7 (10/30/2022) ------------------- -- Include package data to upload validators to pypi - -0.5.6 (10/30/2022) ------------------- -- Improve email validation -- Create a dedicated dir based module for it -- Update README.md and requirements - -0.5.5 (10/29/2022) ------------------- -- Feature improvements on send_email.py -- Add a feature to support multiple attachments in an email -- Create an arg to fail email if attachment fails -- Create a module to validate email using SMTP port -- Add usage examples in README.md - -0.5.4 (10/21/2022) ------------------- -- Instantiate the object before sending SMS or email -- Add an authenticate property -- Update README.md and docstrings - -0.5.3 (10/08/2022) ------------------- -- Add an option to format email body as HTML -- Fix a bug when calling thread to delete sent email after sms -- Fix a bug in sphinx doc creation -- Update docstrings - -0.5.2 (06/08/2022) ------------------- -- Remove verbose and override flags when loading .env - -0.5.1 (02/21/2022) ------------------- -- Update version compatibility in README.md -- Import local modules from __init__ -- Add a script to build locally -- Remove docs from actions - -0.5.0 (02/19/2022) ------------------- -- Add a warning if count is called outside ReadEmail -- Strip string converted email info in the yielded dict - -0.4.9 (02/19/2022) ------------------- -- Read mails in all folders with different status -- Convert email receive time into local timezone -- Remove print statements and use yield instead -- Yield email information as a dictionary -- Upload to pypi when committed to master -- Update docs, README.md and CHANGELOG - 0.4.8 (01/12/2022) ------------------ - Take a custom filename for the attachment @@ -254,30 +162,30 @@ Release Notes - Add a condition check for version upgrade - Update docs and changelog -0.3.4 (08/11/2021) +0.2.3 (08/11/2021) ------------------ - Add new lines to the message start to separate subject and body of the SMS - Update sphinx documentation to 4.1.2 -0.3.3 (08/04/2021) +0.2.2 (08/02/2021) ------------------ -- Fix incorrect HTTP return codes +- bump version -0.3.2 (07/24/2021) +0.2.1 (07/24/2021) ------------------ - Remove logger module. - Add exception handlers for Messenger class. - Update docs and CHANGELOG - Bump version. -0.3.1 (07/22/2021) +0.2.0 (07/22/2021) ------------------ - Return a dictionary element after sending an email/SMS. - Add status code and description to return dict. - Update docs and CHANGELOG - Bump version. -0.3.0 (07/19/2021) +0.1.9 (07/19/2021) ------------------ - Allow users to add multiple recipients while sending email. - Add CC and BCC options. @@ -286,128 +194,31 @@ Release Notes - Remove sender arg and default to the user login email address. - Fix version number format. -0.2.9 (07/19/2021) ------------------- -- Add logging -- Remove print statements -- Bump version - -0.2.8 (07/19/2021) ------------------- -- Bump version to support github action -- Auto upload to pypi - -0.2.7 (07/19/2021) ------------------- -- auto upload to pypi when tagged a release version - -0.2.6 (07/19/2021) ------------------- -- onboard docs.yml but only prints a statement - -0.2.5 (07/19/2021) ------------------- -- Add badges -- Update README.md and CHANGELOG -- Bump version - -0.2.4 (07/18/2021) ------------------- -- Onboard `pypi` module -- Add `setup.py`, `setup.cfg`, `__init__.py`, `CHANGELOG` -- Update README.md and docs -- Move files to `gmailconnector` support package - -0.2.3 (07/18/2021) ------------------- -- Increase page width and update README.md - -0.2.2 (07/18/2021) ------------------- -- Onboard send_sms.py and update docs - -0.2.1 (07/17/2021) ------------------- -- Onboard sphinx auto generated documentation - -0.2.0 (07/17/2021) ------------------- -- Refactor read_email.py and add send_email.py -- Add pre-commit for linting -- Update README.md - -0.1.9 (06/28/2020) ------------------- -- update README.md - -0.1.8 (06/28/2020) ------------------- -- add LICENSE - -0.1.7 (06/28/2020) ------------------- -- look for env variables before failing - -0.1.6 (06/27/2020) ------------------- -- included exception handler - -0.1.5 (06/27/2020) ------------------- -- modify date time type standards instead of using index values - -0.1.4 (06/11/2020) ------------------- -- fix typo - -0.1.3 (06/09/2020) ------------------- -- improve coding standards - -0.1.2 (06/08/2020) ------------------- -- improve coding standards - -0.1.1 (06/08/2020) ------------------- -- added comments - -0.1.0 (06/08/2020) ------------------- -- get user input before reading multiple emails - -0.0.9 (06/08/2020) ------------------- -- get user input before showing any content - -0.0.8 (06/08/2020) ------------------- -- include number of unread emails on top - -0.0.7 (06/08/2020) ------------------- -- user input condition to read email - -0.0.6 (06/08/2020) ------------------- -- pdt to cdt - -0.0.5 (06/08/2020) ------------------- -- added time when the email was received - -0.0.4 (06/08/2020) ------------------- -- decode body of the email and display only text part - -0.0.3 (06/08/2020) ------------------- -- decode raw email using email library - -0.0.2 (06/08/2020) ------------------- -- read raw email - -0.0.1 (06/07/2020) ------------------- -- Initial commit +0.0.18 (07/19/2021) +------------------- +- 1. Add logging +- 2. Remove print statements +- 3. Bump version + +0.0.17 (07/19/2021) +------------------- +- 1. Bump version to support github action +- 2. Auto upload to pypi + +0.0.0 (07/19/2021) +------------------ +- run on release + +0.0.15 (07/18/2021) +------------------- +- 1. Onboard `pypi` module +- 2. Add `setup.py`, `setup.cfg`, `__init__.py`, `CHANGELOG` +- 3. Update README.md and docs +- 4. Move files to `gmailconnector` support package + +0.0.16 (07/18/2021) +------------------- +- 1. Onboard `pypi` module +- 2. Add `setup.py`, `setup.cfg`, `__init__.py`, `CHANGELOG` +- 3. Update README.md and docs +- 4. Move files to `gmailconnector` support package