$44 GRAYBYTE WORDPRESS FILE MANAGER $24

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/lib64/python2.7/site-packages/sqlalchemy/dialects/sqlite/

HOME
Current File : /lib64/python2.7/site-packages/sqlalchemy/dialects/sqlite//json.py
# dialects/sqlite/json.py
# Copyright (C) 2005-2024 the SQLAlchemy authors and contributors
# <see AUTHORS file>
#
# This module is part of SQLAlchemy and is released under
# the MIT License: https://www.opensource.org/licenses/mit-license.php
from ... import types as sqltypes


class JSON(sqltypes.JSON):
    """SQLite JSON type.

    SQLite supports JSON as of version 3.9 through its JSON1_ extension. Note
    that JSON1_ is a
    `loadable extension <https://www.sqlite.org/loadext.html>`_ and as such
    may not be available, or may require run-time loading.

    :class:`_sqlite.JSON` is used automatically whenever the base
    :class:`_types.JSON` datatype is used against a SQLite backend.

    .. seealso::

        :class:`_types.JSON` - main documentation for the generic
        cross-platform JSON datatype.

    The :class:`_sqlite.JSON` type supports persistence of JSON values
    as well as the core index operations provided by :class:`_types.JSON`
    datatype, by adapting the operations to render the ``JSON_EXTRACT``
    function wrapped in the ``JSON_QUOTE`` function at the database level.
    Extracted values are quoted in order to ensure that the results are
    always JSON string values.


    .. versionadded:: 1.3


    .. _JSON1: https://www.sqlite.org/json1.html

    """


# Note: these objects currently match exactly those of MySQL, however since
# these are not generalizable to all JSON implementations, remain separately
# implemented for each dialect.
class _FormatTypeMixin(object):
    def _format_value(self, value):
        raise NotImplementedError()

    def bind_processor(self, dialect):
        super_proc = self.string_bind_processor(dialect)

        def process(value):
            value = self._format_value(value)
            if super_proc:
                value = super_proc(value)
            return value

        return process

    def literal_processor(self, dialect):
        super_proc = self.string_literal_processor(dialect)

        def process(value):
            value = self._format_value(value)
            if super_proc:
                value = super_proc(value)
            return value

        return process


class JSONIndexType(_FormatTypeMixin, sqltypes.JSON.JSONIndexType):
    def _format_value(self, value):
        if isinstance(value, int):
            value = "$[%s]" % value
        else:
            value = '$."%s"' % value
        return value


class JSONPathType(_FormatTypeMixin, sqltypes.JSON.JSONPathType):
    def _format_value(self, value):
        return "$%s" % (
            "".join(
                [
                    "[%s]" % elem if isinstance(elem, int) else '."%s"' % elem
                    for elem in value
                ]
            )
        )

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
23 Sep 2024 10.41 AM
root / root
0755
__init__.py
1.179 KB
5 Sep 2024 10.50 PM
root / root
0644
__init__.pyc
1.363 KB
23 Sep 2024 10.41 AM
root / root
0644
aiosqlite.py
9.992 KB
5 Sep 2024 10.50 PM
root / root
0644
aiosqlite.pyc
13.027 KB
23 Sep 2024 10.41 AM
root / root
0644
base.py
89.051 KB
5 Sep 2024 10.50 PM
root / root
0644
base.pyc
80.492 KB
23 Sep 2024 10.41 AM
root / root
0644
dml.py
6.729 KB
5 Sep 2024 10.50 PM
root / root
0644
dml.pyc
7.301 KB
23 Sep 2024 10.41 AM
root / root
0644
json.py
2.697 KB
5 Sep 2024 10.50 PM
root / root
0644
json.pyc
3.717 KB
23 Sep 2024 10.41 AM
root / root
0644
provision.py
4.81 KB
5 Sep 2024 10.50 PM
root / root
0644
provision.pyc
4.759 KB
23 Sep 2024 10.41 AM
root / root
0644
pysqlcipher.py
5.482 KB
5 Sep 2024 10.50 PM
root / root
0644
pysqlcipher.pyc
5.957 KB
23 Sep 2024 10.41 AM
root / root
0644
pysqlite.py
23.902 KB
5 Sep 2024 10.50 PM
root / root
0644
pysqlite.pyc
24.313 KB
23 Sep 2024 10.41 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF