Passed
Pull Request — main (#160)
by
unknown
01:22
created

pincer._config.GatewayConfig.uri()   A

Complexity

Conditions 1

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 13
rs 10
c 0
b 0
f 0
cc 1
nop 0
1
# Copyright Pincer 2021-Present
0 ignored issues
show
introduced by
Missing module docstring
Loading history...
2
# Full MIT License can be found in `LICENSE` at the project root.
3
4
from dataclasses import dataclass
5
from typing import Optional
6
7
8
@dataclass
9
class GatewayConfig:
10
    """
11
    This file is to make maintaining the library its gateway
12
        configuration easier.
13
    """
14
    socket_base_url: str = "wss://gateway.discord.gg/"
15
    version: int = 9
16
    encoding: str = "json"
17
    compression: Optional[str] = "zlib-stream"
18
19
    @staticmethod
20
    def uri() -> str:
21
        """
22
        :return uri:
23
            The GatewayConfig's uri.
24
        """
25
        return (
26
            f"{GatewayConfig.socket_base_url}"
27
            f"?v={GatewayConfig.version}"
28
            f"&encoding={GatewayConfig.encoding}"
29
        ) + (
30
            f"&compress={GatewayConfig.compression}"
31
            * GatewayConfig.compressed()
32
        )
33
34
    @staticmethod
35
    def compressed() -> bool:
36
        """
37
        :return compressed:
38
            Whether the Gateway should compress payloads or not.
39
        """
40
        return GatewayConfig.compression in ["zlib-stream", "zlib-payload"]
41