openapi_nexus/generators/python/httpx/
runtime.rs1use 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");
8const UPLOAD_FILE_PY: &str = include_str!("runtime/upload_file.py.txt");
9
10pub fn runtime_files(header: &str, include_upload_file: bool) -> Vec<FileInfo> {
12 let mut files = vec![
13 FileInfo::runtime("client.py".to_string(), with_header(header, CLIENT_PY)),
14 FileInfo::runtime("auth.py".to_string(), with_header(header, AUTH_PY)),
15 FileInfo::runtime("errors.py".to_string(), with_header(header, ERRORS_PY)),
16 FileInfo::runtime(
17 "__init__.py".to_string(),
18 runtime_init(header, include_upload_file),
19 ),
20 ];
21 if include_upload_file {
22 files.push(FileInfo::runtime(
23 "upload_file.py".to_string(),
24 with_header(header, UPLOAD_FILE_PY),
25 ));
26 }
27 files
28}
29
30fn with_header(header: &str, body: &str) -> String {
31 let mut out = String::with_capacity(header.len() + body.len());
32 out.push_str(header);
33 out.push_str(body);
34 out
35}
36
37fn runtime_init(header: &str, include_upload_file: bool) -> String {
38 let mut out = String::new();
39 out.push_str(header);
40 out.push_str("from .auth import ApiKeyAuth as ApiKeyAuth\n");
41 out.push_str("from .auth import Authenticator as Authenticator\n");
42 out.push_str("from .auth import BearerAuth as BearerAuth\n");
43 out.push_str("from .client import ApiResponse as ApiResponse\n");
44 out.push_str("from .client import Client as Client\n");
45 out.push_str("from .errors import ApiError as ApiError\n");
46 if include_upload_file {
47 out.push_str("from .upload_file import UploadFile as UploadFile\n");
48 }
49 out
50}