diff --git a/platformio/compat.py b/platformio/compat.py index 0f4dd3c3..c812e98d 100644 --- a/platformio/compat.py +++ b/platformio/compat.py @@ -38,12 +38,14 @@ def get_locale_encoding(): return None -def get_class_attributes(cls): - attributes = inspect.getmembers(cls, lambda a: not inspect.isroutine(a)) +def get_object_members(obj, ignore_private=True): + members = inspect.getmembers(obj, lambda a: not inspect.isroutine(a)) + if not ignore_private: + return members return { - a[0]: a[1] - for a in attributes - if not (a[0].startswith("__") and a[0].endswith("__")) + item[0]: item[1] + for item in members + if not (item[0].startswith("__") and item[0].endswith("__")) } diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index 60138609..e8ec5929 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -21,7 +21,7 @@ import re import requests from platformio import util -from platformio.compat import get_class_attributes, string_types +from platformio.compat import get_object_members, string_types from platformio.package.exception import ManifestParserError, UnknownManifestError from platformio.project.helpers import is_platformio_project @@ -40,7 +40,7 @@ class ManifestFileType(object): @classmethod def items(cls): - return get_class_attributes(ManifestFileType) + return get_object_members(ManifestFileType) @classmethod def from_uri(cls, uri):