pub mod annotations;
pub mod arglist;
pub mod expr;
pub mod pycode;
#[cfg(test)]
mod tests;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PySigConfig {
pub maximum_signature_line_length: Option<i64>,
pub python_maximum_signature_line_length: Option<i64>,
pub python_trailing_comma_in_multi_line_signatures: bool,
pub python_display_short_literal_types: bool,
pub python_use_unqualified_type_names: bool,
pub toc_object_entries: bool,
pub toc_object_entries_show_parents: String,
pub add_function_parentheses: bool,
pub add_module_names: bool,
pub strip_signature_backslash: bool,
}
impl Default for PySigConfig {
fn default() -> Self {
Self {
maximum_signature_line_length: None,
python_maximum_signature_line_length: None,
python_trailing_comma_in_multi_line_signatures: true,
python_display_short_literal_types: false,
python_use_unqualified_type_names: false,
toc_object_entries: true,
toc_object_entries_show_parents: "domain".to_string(),
add_function_parentheses: true,
add_module_names: true,
strip_signature_backslash: false,
}
}
}
impl PySigConfig {
pub fn max_len(&self) -> i64 {
fn truthy(value: Option<i64>) -> Option<i64> {
value.filter(|v| *v != 0)
}
truthy(self.python_maximum_signature_line_length)
.or_else(|| truthy(self.maximum_signature_line_length))
.unwrap_or(0)
}
}
impl From<&crate::config::BuildConfig> for PySigConfig {
fn from(config: &crate::config::BuildConfig) -> Self {
Self {
maximum_signature_line_length: config.maximum_signature_line_length,
python_maximum_signature_line_length: config.python_maximum_signature_line_length,
python_trailing_comma_in_multi_line_signatures: config
.python_trailing_comma_in_multi_line_signatures,
python_display_short_literal_types: config.python_display_short_literal_types,
python_use_unqualified_type_names: config.python_use_unqualified_type_names,
toc_object_entries: config.toc_object_entries,
toc_object_entries_show_parents: config.toc_object_entries_show_parents.clone(),
add_function_parentheses: config.add_function_parentheses,
add_module_names: config.add_module_names,
strip_signature_backslash: config.strip_signature_backslash,
}
}
}