GRAYBYTE WORDPRESS FILE MANAGER3820

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk//session.py
import uuid
from datetime import datetime

from sentry_sdk._types import TYPE_CHECKING
from sentry_sdk.utils import format_timestamp

if TYPE_CHECKING:
    from typing import Optional
    from typing import Union
    from typing import Any
    from typing import Dict

    from sentry_sdk._types import SessionStatus


def _minute_trunc(ts):
    # type: (datetime) -> datetime
    return ts.replace(second=0, microsecond=0)


def _make_uuid(
    val,  # type: Union[str, uuid.UUID]
):
    # type: (...) -> uuid.UUID
    if isinstance(val, uuid.UUID):
        return val
    return uuid.UUID(val)


class Session(object):
    def __init__(
        self,
        sid=None,  # type: Optional[Union[str, uuid.UUID]]
        did=None,  # type: Optional[str]
        timestamp=None,  # type: Optional[datetime]
        started=None,  # type: Optional[datetime]
        duration=None,  # type: Optional[float]
        status=None,  # type: Optional[SessionStatus]
        release=None,  # type: Optional[str]
        environment=None,  # type: Optional[str]
        user_agent=None,  # type: Optional[str]
        ip_address=None,  # type: Optional[str]
        errors=None,  # type: Optional[int]
        user=None,  # type: Optional[Any]
        session_mode="application",  # type: str
    ):
        # type: (...) -> None
        if sid is None:
            sid = uuid.uuid4()
        if started is None:
            started = datetime.utcnow()
        if status is None:
            status = "ok"
        self.status = status
        self.did = None  # type: Optional[str]
        self.started = started
        self.release = None  # type: Optional[str]
        self.environment = None  # type: Optional[str]
        self.duration = None  # type: Optional[float]
        self.user_agent = None  # type: Optional[str]
        self.ip_address = None  # type: Optional[str]
        self.session_mode = session_mode  # type: str
        self.errors = 0

        self.update(
            sid=sid,
            did=did,
            timestamp=timestamp,
            duration=duration,
            release=release,
            environment=environment,
            user_agent=user_agent,
            ip_address=ip_address,
            errors=errors,
            user=user,
        )

    @property
    def truncated_started(self):
        # type: (...) -> datetime
        return _minute_trunc(self.started)

    def update(
        self,
        sid=None,  # type: Optional[Union[str, uuid.UUID]]
        did=None,  # type: Optional[str]
        timestamp=None,  # type: Optional[datetime]
        started=None,  # type: Optional[datetime]
        duration=None,  # type: Optional[float]
        status=None,  # type: Optional[SessionStatus]
        release=None,  # type: Optional[str]
        environment=None,  # type: Optional[str]
        user_agent=None,  # type: Optional[str]
        ip_address=None,  # type: Optional[str]
        errors=None,  # type: Optional[int]
        user=None,  # type: Optional[Any]
    ):
        # type: (...) -> None
        # If a user is supplied we pull some data form it
        if user:
            if ip_address is None:
                ip_address = user.get("ip_address")
            if did is None:
                did = user.get("id") or user.get("email") or user.get("username")

        if sid is not None:
            self.sid = _make_uuid(sid)
        if did is not None:
            self.did = str(did)
        if timestamp is None:
            timestamp = datetime.utcnow()
        self.timestamp = timestamp
        if started is not None:
            self.started = started
        if duration is not None:
            self.duration = duration
        if release is not None:
            self.release = release
        if environment is not None:
            self.environment = environment
        if ip_address is not None:
            self.ip_address = ip_address
        if user_agent is not None:
            self.user_agent = user_agent
        if errors is not None:
            self.errors = errors

        if status is not None:
            self.status = status

    def close(
        self, status=None  # type: Optional[SessionStatus]
    ):
        # type: (...) -> Any
        if status is None and self.status == "ok":
            status = "exited"
        if status is not None:
            self.update(status=status)

    def get_json_attrs(
        self, with_user_info=True  # type: Optional[bool]
    ):
        # type: (...) -> Any
        attrs = {}
        if self.release is not None:
            attrs["release"] = self.release
        if self.environment is not None:
            attrs["environment"] = self.environment
        if with_user_info:
            if self.ip_address is not None:
                attrs["ip_address"] = self.ip_address
            if self.user_agent is not None:
                attrs["user_agent"] = self.user_agent
        return attrs

    def to_json(self):
        # type: (...) -> Any
        rv = {
            "sid": str(self.sid),
            "init": True,
            "started": format_timestamp(self.started),
            "timestamp": format_timestamp(self.timestamp),
            "status": self.status,
        }  # type: Dict[str, Any]
        if self.errors:
            rv["errors"] = self.errors
        if self.did is not None:
            rv["did"] = self.did
        if self.duration is not None:
            rv["duration"] = self.duration
        attrs = self.get_json_attrs()
        if attrs:
            rv["attrs"] = attrs
        return rv

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 25 2025 08:31:36
root / root
0755
__pycache__
--
May 15 2025 08:31:38
root / root
0755
crons
--
May 15 2025 08:30:34
root / root
0755
integrations
--
May 15 2025 08:30:34
root / root
0755
__init__.py
1.031 KB
April 17 2025 13:10:59
root / root
0644
_compat.py
2.729 KB
April 17 2025 13:10:59
root / root
0644
_functools.py
4.841 KB
April 17 2025 13:10:59
root / root
0644
_lru_cache.py
5.264 KB
April 17 2025 13:10:59
root / root
0644
_queue.py
11.003 KB
April 17 2025 13:10:59
root / root
0644
_types.py
2.194 KB
April 17 2025 13:10:59
root / root
0644
_werkzeug.py
3.701 KB
April 17 2025 13:10:59
root / root
0644
api.py
6.047 KB
April 17 2025 13:10:59
root / root
0644
attachments.py
1.769 KB
April 17 2025 13:10:59
root / root
0644
client.py
22.354 KB
April 17 2025 13:10:59
root / root
0644
consts.py
8.493 KB
April 17 2025 13:10:59
root / root
0644
debug.py
1.105 KB
April 17 2025 13:10:59
root / root
0644
envelope.py
9.366 KB
April 17 2025 13:10:59
root / root
0644
hub.py
26.416 KB
April 17 2025 13:10:59
root / root
0644
monitor.py
2.966 KB
April 17 2025 13:10:59
root / root
0644
profiler.py
33.182 KB
April 17 2025 13:10:59
root / root
0644
py.typed
0 KB
April 17 2025 13:10:59
root / root
0644
scope.py
24.262 KB
April 17 2025 13:10:59
root / root
0644
scrubber.py
3.802 KB
April 17 2025 13:10:59
root / root
0644
serializer.py
12.974 KB
April 17 2025 13:10:59
root / root
0644
session.py
5.431 KB
April 17 2025 13:10:59
root / root
0644
sessions.py
5.762 KB
April 17 2025 13:10:59
root / root
0644
tracing.py
29.042 KB
April 17 2025 13:10:59
root / root
0644
tracing_utils.py
11.999 KB
April 17 2025 13:10:59
root / root
0644
tracing_utils_py2.py
1.215 KB
April 17 2025 13:10:59
root / root
0644
tracing_utils_py3.py
2.096 KB
April 17 2025 13:10:59
root / root
0644
transport.py
18.135 KB
April 17 2025 13:10:59
root / root
0644
utils.py
45.582 KB
April 17 2025 13:10:59
root / root
0644
worker.py
4.154 KB
April 17 2025 13:10:59
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF