__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.78: ~ $
import copy
from threading import Lock
from typing import TYPE_CHECKING, Any

import sentry_sdk
from sentry_sdk._lru_cache import LRUCache
from sentry_sdk.tracing import Span
from sentry_sdk.tracing_utils import has_span_streaming_enabled

if TYPE_CHECKING:
    from typing import TypedDict

    FlagData = TypedDict("FlagData", {"flag": str, "result": bool})


DEFAULT_FLAG_CAPACITY = 100


class FlagBuffer:
    def __init__(self, capacity: int) -> None:
        self.capacity = capacity
        self.lock = Lock()

        # Buffer is private. The name is mangled to discourage use. If you use this attribute
        # directly you're on your own!
        self.__buffer = LRUCache(capacity)

    def clear(self) -> None:
        self.__buffer = LRUCache(self.capacity)

    def __deepcopy__(self, memo: "dict[int, Any]") -> "FlagBuffer":
        with self.lock:
            buffer = FlagBuffer(self.capacity)
            buffer.__buffer = copy.deepcopy(self.__buffer, memo)
            return buffer

    def get(self) -> "list[FlagData]":
        with self.lock:
            return [
                {"flag": key, "result": value} for key, value in self.__buffer.get_all()
            ]

    def set(self, flag: str, result: bool) -> None:
        if isinstance(result, FlagBuffer):
            # If someone were to insert `self` into `self` this would create a circular dependency
            # on the lock. This is of course a deadlock. However, this is far outside the expected
            # usage of this class. We guard against it here for completeness and to document this
            # expected failure mode.
            raise ValueError(
                "FlagBuffer instances can not be inserted into the dictionary."
            )

        with self.lock:
            self.__buffer.set(flag, result)


def add_feature_flag(flag: str, result: bool) -> None:
    """
    Records a flag and its value to be sent on subsequent error events.
    We recommend you do this on flag evaluations. Flags are buffered per Sentry scope.
    """
    client = sentry_sdk.get_client()

    flags = sentry_sdk.get_isolation_scope().flags
    flags.set(flag, result)

    if has_span_streaming_enabled(client.options):
        span = sentry_sdk.traces.get_current_span()
        if span and isinstance(span, sentry_sdk.traces.StreamedSpan):
            span.set_attribute(f"flag.evaluation.{flag}", result)

    else:
        span = sentry_sdk.get_current_span()
        if span and isinstance(span, Span):
            span.set_flag(f"flag.evaluation.{flag}", result)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
ai Folder 0755
crons Folder 0755
integrations Folder 0755
profiler Folder 0755
__init__.py File 1.46 KB 0644
_batcher.py File 5.7 KB 0644
_compat.py File 3 KB 0644
_init_implementation.py File 2.43 KB 0644
_log_batcher.py File 1.88 KB 0644
_lru_cache.py File 1.14 KB 0644
_metrics_batcher.py File 1.21 KB 0644
_queue.py File 10.98 KB 0644
_span_batcher.py File 8.12 KB 0644
_types.py File 13.16 KB 0644
_werkzeug.py File 3.85 KB 0644
api.py File 15.59 KB 0644
attachments.py File 2.95 KB 0644
client.py File 49.95 KB 0644
consts.py File 61.95 KB 0644
debug.py File 959 B 0644
envelope.py File 9.37 KB 0644
feature_flags.py File 2.5 KB 0644
hub.py File 24.54 KB 0644
logger.py File 2.6 KB 0644
metrics.py File 1.42 KB 0644
monitor.py File 4.47 KB 0644
py.typed File 0 B 0644
scope.py File 74.09 KB 0644
scrubber.py File 5.99 KB 0644
serializer.py File 12.82 KB 0644
session.py File 5.08 KB 0644
sessions.py File 8.59 KB 0644
spotlight.py File 11.85 KB 0644
traces.py File 25.08 KB 0644
tracing.py File 50.33 KB 0644
tracing_utils.py File 54.36 KB 0644
transport.py File 44.41 KB 0644
types.py File 1.24 KB 0644
utils.py File 65.96 KB 0644
worker.py File 10.91 KB 0644