swadhinbiswas WIP save-point: production hardening, H3 removal, fmt gate, and accumulated phase work · 7/15/2026
2080d40
100 lines · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
use pyo3::prelude::*;

pub fn register(parent: &Bound<'_, PyModule>) -> PyResult<()> {
    let py = parent.py();
    let m = PyModule::new(py, "status")?;

    m.add("HTTP_100_CONTINUE", 100)?;
    m.add("HTTP_101_SWITCHING_PROTOCOLS", 101)?;
    m.add("HTTP_102_PROCESSING", 102)?;
    m.add("HTTP_103_EARLY_HINTS", 103)?;

    m.add("HTTP_200_OK", 200)?;
    m.add("HTTP_201_CREATED", 201)?;
    m.add("HTTP_202_ACCEPTED", 202)?;
    m.add("HTTP_203_NON_AUTHORITATIVE_INFORMATION", 203)?;
    m.add("HTTP_204_NO_CONTENT", 204)?;
    m.add("HTTP_205_RESET_CONTENT", 205)?;
    m.add("HTTP_206_PARTIAL_CONTENT", 206)?;
    m.add("HTTP_207_MULTI_STATUS", 207)?;
    m.add("HTTP_208_ALREADY_REPORTED", 208)?;
    m.add("HTTP_226_IM_USED", 226)?;

    m.add("HTTP_300_MULTIPLE_CHOICES", 300)?;
    m.add("HTTP_301_MOVED_PERMANENTLY", 301)?;
    m.add("HTTP_302_FOUND", 302)?;
    m.add("HTTP_303_SEE_OTHER", 303)?;
    m.add("HTTP_304_NOT_MODIFIED", 304)?;
    m.add("HTTP_305_USE_PROXY", 305)?;
    m.add("HTTP_306_RESERVED", 306)?;
    m.add("HTTP_307_TEMPORARY_REDIRECT", 307)?;
    m.add("HTTP_308_PERMANENT_REDIRECT", 308)?;

    m.add("HTTP_400_BAD_REQUEST", 400)?;
    m.add("HTTP_401_UNAUTHORIZED", 401)?;
    m.add("HTTP_402_PAYMENT_REQUIRED", 402)?;
    m.add("HTTP_403_FORBIDDEN", 403)?;
    m.add("HTTP_404_NOT_FOUND", 404)?;
    m.add("HTTP_405_METHOD_NOT_ALLOWED", 405)?;
    m.add("HTTP_406_NOT_ACCEPTABLE", 406)?;
    m.add("HTTP_407_PROXY_AUTHENTICATION_REQUIRED", 407)?;
    m.add("HTTP_408_REQUEST_TIMEOUT", 408)?;
    m.add("HTTP_409_CONFLICT", 409)?;
    m.add("HTTP_410_GONE", 410)?;
    m.add("HTTP_411_LENGTH_REQUIRED", 411)?;
    m.add("HTTP_412_PRECONDITION_FAILED", 412)?;
    m.add("HTTP_413_CONTENT_TOO_LARGE", 413)?;
    m.add("HTTP_414_URI_TOO_LONG", 414)?;
    m.add("HTTP_415_UNSUPPORTED_MEDIA_TYPE", 415)?;
    m.add("HTTP_416_RANGE_NOT_SATISFIABLE", 416)?;
    m.add("HTTP_417_EXPECTATION_FAILED", 417)?;
    m.add("HTTP_418_IM_A_TEAPOT", 418)?;
    m.add("HTTP_421_MISDIRECTED_REQUEST", 421)?;
    m.add("HTTP_422_UNPROCESSABLE_CONTENT", 422)?;
    m.add("HTTP_423_LOCKED", 423)?;
    m.add("HTTP_424_FAILED_DEPENDENCY", 424)?;
    m.add("HTTP_425_TOO_EARLY", 425)?;
    m.add("HTTP_426_UPGRADE_REQUIRED", 426)?;
    m.add("HTTP_428_PRECONDITION_REQUIRED", 428)?;
    m.add("HTTP_429_TOO_MANY_REQUESTS", 429)?;
    m.add("HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE", 431)?;
    m.add("HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS", 451)?;

    m.add("HTTP_500_INTERNAL_SERVER_ERROR", 500)?;
    m.add("HTTP_501_NOT_IMPLEMENTED", 501)?;
    m.add("HTTP_502_BAD_GATEWAY", 502)?;
    m.add("HTTP_503_SERVICE_UNAVAILABLE", 503)?;
    m.add("HTTP_504_GATEWAY_TIMEOUT", 504)?;
    m.add("HTTP_505_HTTP_VERSION_NOT_SUPPORTED", 505)?;
    m.add("HTTP_506_VARIANT_ALSO_NEGOTIATES", 506)?;
    m.add("HTTP_507_INSUFFICIENT_STORAGE", 507)?;
    m.add("HTTP_508_LOOP_DETECTED", 508)?;
    m.add("HTTP_510_NOT_EXTENDED", 510)?;
    m.add("HTTP_511_NETWORK_AUTHENTICATION_REQUIRED", 511)?;

    m.add("WS_1000_NORMAL_CLOSURE", 1000)?;
    m.add("WS_1001_GOING_AWAY", 1001)?;
    m.add("WS_1002_PROTOCOL_ERROR", 1002)?;
    m.add("WS_1003_UNSUPPORTED_DATA", 1003)?;
    m.add("WS_1005_NO_STATUS_RCVD", 1005)?;
    m.add("WS_1006_ABNORMAL_CLOSURE", 1006)?;
    m.add("WS_1007_INVALID_FRAME_PAYLOAD_DATA", 1007)?;
    m.add("WS_1008_POLICY_VIOLATION", 1008)?;
    m.add("WS_1009_MESSAGE_TOO_BIG", 1009)?;
    m.add("WS_1010_MANDATORY_EXT", 1010)?;
    m.add("WS_1011_INTERNAL_ERROR", 1011)?;
    m.add("WS_1012_SERVICE_RESTART", 1012)?;
    m.add("WS_1013_TRY_AGAIN_LATER", 1013)?;
    m.add("WS_1014_BAD_GATEWAY", 1014)?;
    m.add("WS_1015_TLS_HANDSHAKE", 1015)?;

    parent.add_submodule(&m)?;

    let parent_name: String = parent.getattr("__name__")?.extract()?;
    let full_name = format!("{}.status", parent_name);
    let sys = py.import("sys")?;
    let modules = sys.getattr("modules")?;
    modules.set_item(full_name, &m)?;
    Ok(())
}