MySQL Connector の with 文

Python では、PostgreSQL の接続、psycopg2 connect は、
with 文を書くことができますが、

import psycopg2

with psycopg2.connect("host=localhost port=5432 dbname=urandb user=postgres password=aswe344f") as con:
    with con.cursor() as cur:
        # TODO

のように、、、書ける。
mysql-connector-python は、このように、そのまま使うのでは、with文を書けません。
mysql-connector-python · PyPI

with 文で書きたい時は、接続のラッパーを用意します。

mysqlConnector.py

# -*- coding: UTF-8 -*-
class MySQLConnector:
    def __init__(self, host, port, user, password, database):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.database = database
    def __enter__(self):
        import mysql.connector
        self.connect = mysql.connector.connect(
            host=self.host,
            port=self.port,
            user=self.user,
            password=self.password,
            database=self.database,
            charset="utf8")
        return self.connect
    def __exit__(self, exception_type, exception_value, traceback):
        self.connect.close()

呼出し。

with MySQLConnector(host='localhost', port=3306, user='food', password='a1B01a', database='foodb') as con:
    cur = con.cursor()
    cur.execute('SELECT * FROM users')
    table = cur.fetchall()
    print(table)