Skip to content

Commit 4fac099

Browse files
committed
use Option<bool> for serialize_by_alias config to be consistent with validation alias/name settings
1 parent 2c9ac6d commit 4fac099

File tree

6 files changed

+9
-10
lines changed

6 files changed

+9
-10
lines changed

src/serializers/computed_fields.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ struct ComputedField {
116116
serializer: CombinedSerializer,
117117
alias: String,
118118
alias_py: Py<PyString>,
119-
serialize_by_alias: bool,
119+
serialize_by_alias: Option<bool>,
120120
}
121121

122122
impl ComputedField {
@@ -134,14 +134,13 @@ impl ComputedField {
134134
let alias_py = schema
135135
.get_as(intern!(py, "alias"))?
136136
.unwrap_or_else(|| property_name.clone());
137-
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?.unwrap_or(false);
138137
Ok(Self {
139138
property_name: property_name.extract()?,
140139
property_name_py: property_name.into(),
141140
serializer,
142141
alias: alias_py.extract()?,
143142
alias_py: alias_py.into(),
144-
serialize_by_alias,
143+
serialize_by_alias: config.get_as(intern!(py, "serialize_by_alias"))?,
145144
})
146145
}
147146

src/serializers/extra.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ impl<'a> Extra<'a> {
205205
self.model.and_then(|model| model.get_type().name().ok())
206206
}
207207

208-
pub fn serialize_by_alias_or(&self, serialize_by_alias: bool) -> bool {
209-
self.by_alias.unwrap_or(serialize_by_alias)
208+
pub fn serialize_by_alias_or(&self, serialize_by_alias: Option<bool>) -> bool {
209+
self.by_alias.unwrap_or(serialize_by_alias.unwrap_or(false))
210210
}
211211
}
212212

src/serializers/fields.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub(super) struct SerField {
2929
// None serializer means exclude
3030
pub serializer: Option<CombinedSerializer>,
3131
pub required: bool,
32-
pub serialize_by_alias: bool,
32+
pub serialize_by_alias: Option<bool>,
3333
}
3434

3535
impl_py_gc_traverse!(SerField { serializer });
@@ -41,7 +41,7 @@ impl SerField {
4141
alias: Option<String>,
4242
serializer: Option<CombinedSerializer>,
4343
required: bool,
44-
serialize_by_alias: bool,
44+
serialize_by_alias: Option<bool>,
4545
) -> Self {
4646
let alias_py = alias.as_ref().map(|alias| PyString::new(py, alias.as_str()).into());
4747
Self {

src/serializers/type_serializers/dataclass.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ impl BuildSerializer for DataclassArgsBuilder {
3737
_ => FieldsMode::SimpleDict,
3838
};
3939

40-
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?.unwrap_or(false);
40+
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?;
4141

4242
for (index, item) in fields_list.iter().enumerate() {
4343
let field_info = item.downcast::<PyDict>()?;

src/serializers/type_serializers/model.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ impl BuildSerializer for ModelFieldsBuilder {
4747
(_, _) => None,
4848
};
4949

50-
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?.unwrap_or(false);
50+
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?;
5151

5252
for (key, value) in fields_dict {
5353
let key_py = key.downcast_into::<PyString>()?;

src/serializers/type_serializers/typed_dict.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ impl BuildSerializer for TypedDictBuilder {
3232
_ => FieldsMode::SimpleDict,
3333
};
3434

35-
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?.unwrap_or(false);
35+
let serialize_by_alias = config.get_as(intern!(py, "serialize_by_alias"))?;
3636

3737
let fields_dict: Bound<'_, PyDict> = schema.get_as_req(intern!(py, "fields"))?;
3838
let mut fields: AHashMap<String, SerField> = AHashMap::with_capacity(fields_dict.len());

0 commit comments

Comments
 (0)