PHP 8.2.30
Preview: jsonfile.py Size: 847 B
//proc/self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/setoptconf/source/jsonfile.py

import codecs
import json

from .filebased import FileBasedSource


__all__ = ("JsonFileSource",)


class JsonFileSource(FileBasedSource):
    def __init__(self, *args, **kwargs):
        self.encoding = kwargs.pop("encoding", "utf-8")
        super(JsonFileSource, self).__init__(*args, **kwargs)

    def get_settings_from_file(self, file_path, settings, manager=None):
        content = codecs.open(file_path, "r", self.encoding).read().strip()
        if not content:
            return None

        content = json.loads(content)
        if not content:
            return None

        if not isinstance(content, dict):
            raise TypeError("JSON files must contain only objects")

        for setting in settings:
            if setting.name in content:
                setting.value = content[setting.name]

        return settings

Directory Contents

Dirs: 1 × Files: 10

Name Size Perms Modified Actions
- drwxr-xr-x 2026-02-06 08:01:08
Edit Download
145 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
4.98 KB lrw-r--r-- 2026-01-20 13:01:47
Edit Download
978 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
1001 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
2.58 KB lrw-r--r-- 2026-01-20 13:01:47
Edit Download
847 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
492 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
1.67 KB lrw-r--r-- 2026-01-20 13:01:47
Edit Download
853 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download
337 B lrw-r--r-- 2026-01-20 13:01:47
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).