# Path: djenga/db/lazy_mysql_client/client.py
# class DatabaseClient(ParentClient):
#     @classmethod  # noqa: C901
#     def settings_to_cmd_args(cls, settings_dict):
#         from ...core import LazySecret
#         args = [cls.executable_name]
#         db = settings_dict['OPTIONS'].get('db', settings_dict['NAME'])
#         user = settings_dict['OPTIONS'].get('user', settings_dict['USER'])
#         passwd = settings_dict['OPTIONS'].get(
#             'passwd', settings_dict['PASSWORD'])
#         host = settings_dict['OPTIONS'].get('host', settings_dict['HOST'])
#         port = settings_dict['OPTIONS'].get('port', settings_dict['PORT'])
#         server_ca = settings_dict['OPTIONS'].get('ssl', {}).get('ca')
#         client_cert = settings_dict['OPTIONS'].get('ssl', {}).get('cert')
#         client_key = settings_dict['OPTIONS'].get('ssl', {}).get('key')
#         defaults_file = settings_dict['OPTIONS'].get('read_default_file')
#         # Seems to be no good way to set sql_mode with CLI.
# 
#         if defaults_file:
#             args += ["--defaults-file=%s" % defaults_file]
#         if user:
#             args += ["--user=%s" % user]
#         if passwd:
#             if isinstance(passwd, LazySecret):
#                 passwd = passwd.get()
#             args += ["--password=%s" % passwd]
#         if host:
#             if '/' in host:
#                 args += ["--socket=%s" % host]
#             else:
#                 args += ["--host=%s" % host]
#         if port:
#             args += ["--port=%s" % port]
#         if server_ca:
#             args += ["--ssl-ca=%s" % server_ca]
#         if client_cert:
#             args += ["--ssl-cert=%s" % client_cert]
#         if client_key:
#             args += ["--ssl-key=%s" % client_key]
#         if db:
#             args += [db]
#         return args
# 
#     def runshell(self):
#         args = DatabaseClient.settings_to_cmd_args(
#             self.connection.settings_dict)
#         subprocess.check_call(args)


from django.db.backends.mysql.base import DatabaseWrapper as _DatabaseWrapper
from .client import DatabaseClient
        from ...core import LazySecret
"""
MySQL database backend for Django.

Requires mysqlclient: https://pypi.org/project/mysqlclient/
"""


class DatabaseWrapper(_DatabaseWrapper):

# Path: djenga/db/lazy_mysql_client/client.py
# class DatabaseClient(ParentClient):
#     @classmethod  # noqa: C901
#     def settings_to_cmd_args(cls, settings_dict):
#         from ...core import LazySecret
#         args = [cls.executable_name]
#         db = settings_dict['OPTIONS'].get('db', settings_dict['NAME'])
#         user = settings_dict['OPTIONS'].get('user', settings_dict['USER'])
#         passwd = settings_dict['OPTIONS'].get(
#             'passwd', settings_dict['PASSWORD'])
#         host = settings_dict['OPTIONS'].get('host', settings_dict['HOST'])
#         port = settings_dict['OPTIONS'].get('port', settings_dict['PORT'])
#         server_ca = settings_dict['OPTIONS'].get('ssl', {}).get('ca')
#         client_cert = settings_dict['OPTIONS'].get('ssl', {}).get('cert')
#         client_key = settings_dict['OPTIONS'].get('ssl', {}).get('key')
#         defaults_file = settings_dict['OPTIONS'].get('read_default_file')
#         # Seems to be no good way to set sql_mode with CLI.
# 
#         if defaults_file:
#             args += ["--defaults-file=%s" % defaults_file]
#         if user:
#             args += ["--user=%s" % user]
#         if passwd:
#             if isinstance(passwd, LazySecret):
#                 passwd = passwd.get()
#             args += ["--password=%s" % passwd]
#         if host:
#             if '/' in host:
#                 args += ["--socket=%s" % host]
#             else:
#                 args += ["--host=%s" % host]
#         if port:
#             args += ["--port=%s" % port]
#         if server_ca:
#             args += ["--ssl-ca=%s" % server_ca]
#         if client_cert:
#             args += ["--ssl-cert=%s" % client_cert]
#         if client_key:
#             args += ["--ssl-key=%s" % client_key]
#         if db:
#             args += [db]
#         return args
# 
#     def runshell(self):
#         args = DatabaseClient.settings_to_cmd_args(
#             self.connection.settings_dict)
#         subprocess.check_call(args)


# Path: djenga/db/lazy_mysql_client/base.py
from django.db.backends.mysql.base import DatabaseWrapper as _DatabaseWrapper
from .client import DatabaseClient
        from ...core import LazySecret

"""
MySQL database backend for Django.

Requires mysqlclient: https://pypi.org/project/mysqlclient/
"""


class DatabaseWrapper(_DatabaseWrapper):

    client_class = DatabaseClient