From 5070953feb348399bbbcd7ec5c255578cb9a1873 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Thu, 6 Jan 2022 02:08:48 +0000 Subject: [PATCH] Skip private fields and properties on dataclass-to-JSON conversion --- snscrape/base.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/snscrape/base.py b/snscrape/base.py index 242c76a..299074e 100644 --- a/snscrape/base.py +++ b/snscrape/base.py @@ -40,11 +40,15 @@ def _json_dataclass_to_dict(obj): out['_type'] = f'{type(obj).__module__}.{type(obj).__name__}' for field in dataclasses.fields(obj): assert field.name != '_type' + if field.name.startswith('_'): + continue out[field.name] = _json_dataclass_to_dict(getattr(obj, field.name)) # Add in (non-deprecated) properties for k in dir(obj): if isinstance(getattr(type(obj), k, None), property): assert k != '_type' + if k.startswith('_'): + continue out[k] = _json_dataclass_to_dict(getattr(obj, k)) return out elif isinstance(obj, (tuple, list)):