<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
# MySQL Connector/Python - MySQL driver written in Python.
# Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.

# MySQL Connector/Python is licensed under the terms of the GPLv2
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
# MySQL Connectors. There are special exceptions to the terms and
# conditions of the GPLv2 as it is applied to this software, see the
# FOSS License Exception
# <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

"""MySQL Fabric support"""


from collections import namedtuple

# Order of field_names must match how Fabric is returning the data
FabricMySQLServer = namedtuple(
    'FabricMySQLServer',
    ['uuid', 'group', 'host', 'port', 'mode', 'status', 'weight']
    )

# Order of field_names must match how Fabric is returning the data
FabricShard = namedtuple(
    'FabricShard',
    ['database', 'table', 'column', 'key',
     'shard', 'shard_type', 'group', 'global_group']
    )

from .connection import (
    MODE_READONLY, MODE_READWRITE,
    STATUS_PRIMARY, STATUS_SECONDARY,
    SCOPE_GLOBAL, SCOPE_LOCAL,
    Fabric, FabricConnection,
    MySQLFabricConnection,
    FabricSet,
)


def connect(**kwargs):
    """Create a MySQLFabricConnection object"""
    return MySQLFabricConnection(**kwargs)

__all__ = [
    'MODE_READWRITE',
    'MODE_READONLY',
    'STATUS_PRIMARY',
    'STATUS_SECONDARY',
    'SCOPE_GLOBAL',
    'SCOPE_LOCAL',
    'FabricMySQLServer',
    'FabricShard',
    'connect',
    'Fabric',
    'FabricConnection',
    'MySQLFabricConnection',
    'FabricSet',
]
