Skip to main content

openapi_nexus/generators/python/requests/
runtime.rs

1//! Hardcoded Python runtime source files for requests.
2
3use crate::codegen::traits::file_writer::FileInfo;
4
5const CLIENT_PY: &str = include_str!("runtime/client.py.txt");
6const AUTH_PY: &str = include_str!("runtime/auth.py.txt");
7const ERRORS_PY: &str = include_str!("runtime/errors.py.txt");
8
9/// Returns runtime files ready to write.
10pub fn runtime_files(header: &str) -> Vec<FileInfo> {
11    vec![
12        FileInfo::runtime("client.py".to_string(), with_header(header, CLIENT_PY)),
13        FileInfo::runtime("auth.py".to_string(), with_header(header, AUTH_PY)),
14        FileInfo::runtime("errors.py".to_string(), with_header(header, ERRORS_PY)),
15        FileInfo::runtime("__init__.py".to_string(), runtime_init(header)),
16    ]
17}
18
19fn with_header(header: &str, body: &str) -> String {
20    let mut out = String::with_capacity(header.len() + body.len());
21    out.push_str(header);
22    out.push_str(body);
23    out
24}
25
26fn runtime_init(header: &str) -> String {
27    let mut out = String::new();
28    out.push_str(header);
29    out.push_str("from .auth import ApiKeyAuth as ApiKeyAuth\n");
30    out.push_str("from .auth import Authenticator as Authenticator\n");
31    out.push_str("from .auth import BearerAuth as BearerAuth\n");
32    out.push_str("from .client import Client as Client\n");
33    out.push_str("from .errors import ApiError as ApiError\n");
34    out
35}