Местное хранение

Автор:Фокспан, Дата: 2020-04-22 18:10:56
Тэги:ИнструментПитон

Что?

Упрощенный инструмент FMZ для локального хранения вызовов Для локального хранения, пожалуйста, посетитеFMZ API документация

Какая польза?

Упрощенный способ вызова на местном FMZ хранилище, более элегантный, без необходимости повторного набора_G()Это так.

Как использовать

Импорт шаблонов

Сначала скопируйте этот шаблон в свою библиотеку правил, чтобы вы могли выбрать его в политике, которую вы хотите использовать с этим инструментом.

В стратегическом коде

В начале стратегии создать объект с помощью следующего кода:

PS = ext.PersistentStorage()

Удалось. Этот объектPSЭто может быть использовано как обычный словарь Python, ноСохранить только то, что можно секвенировать в JSON

О библиотеке

Использование WTFPL Do What the Fuck You Want to Public License


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# encoding: utf-8
#
#  Persistent Storage for FMZ
#
# Copyright 2020 FawkesPan
# Contact : i@fawkex.me / Telegram@FawkesPan
#
#            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
#                    Version 2, December 2004 
#
# Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> 
#
# Everyone is permitted to copy and distribute verbatim or modified 
# copies of this license document, and changing it is allowed as long 
# as the name is changed. 
#
#            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
#   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
#
#  0. You just DO WHAT THE FUCK YOU WANT TO.
#

class PersistentStorage:
    
    def __init__(self):
        keys = _G('__keys__')
        if isinstance(keys, list):
            self.__keys__ = keys
        else:
            self.__keys__ = []
            self.__setitem__('__keys__', self.__keys__)
        return
    
    def _add_key(self, key):
        if key == '__keys__':
            return
        self.__keys__.append(key)
        self.__setitem__('__keys__', self.__keys__)
        return
        
    def _del_key(self, key):
        if key == '__keys__':
            return
        if key in self.__keys__:
            del self.__keys__[self.__keys__.index(key)]
        self.__setitem__('__keys__', self.__keys__)
        return
    
    def __setitem__(self, key, value):
        _G(key, value)
        self._add_key(key)
        return
    
    def __delitem__(self, key):
        _G(key, None)
        self._del_key(key)
        return
    
    def __getitem__(self, key):
        return _G(key)

    def keys(self):
        return self.__keys__
        

ext.PersistentStorage = PersistentStorage

Связанные

Больше

Легкие облака.Это лучше, если это JS.

congcong009DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE (Сделай, что хочешь, нахуй, с публичной лицензии) Он также отметил, что "это было очень жестоко, очень жестоко".