def dict_about(self, show_secrets=True):

        secrets = [
            "email",
            "wordpress_api_key",
            "password_hash"
        ]

        properties_to_return = [
            "id",
            "given_name",
            "bio",
            "surname",
            "full_name",
            "email",
            "email_hash",
            "url_slug",
            "collection_id",
            "created",
            "last_viewed_profile",
            "last_refreshed",
            "last_email_check",
            "last_email_sent",
            "orcid_id",
            "github_id",
            "slideshare_id",
            "twitter_id",
            "figshare_id",
            "publons_id",
            "google_scholar_id",
            "wordpress_api_key",
            "stripe_id",
            "days_left_in_trial",
            "new_metrics_notification_dismissed",
            "notification_email_frequency",
            "is_advisor",
            "linked_accounts",
            "is_subscribed",
            "is_trialing",
            "trial_extended_until",
            "trial_end_date",
            "is_live",
            "institution"

            # these make calls out to Stripe, plus we're not using them anyway.
            #"is_paid_subscriber",
            #"subscription_start_date"
        ]



        ret_dict = {}
        for prop in properties_to_return:
            val = getattr(self, prop, None)
            try:
                # if we want dict, we probably want something json-serializable
                val = val.isoformat()
            except __HOLE__:
                pass

            if show_secrets:
                ret_dict[prop] = val
            elif not show_secrets and not prop in secrets:
                ret_dict[prop] = val
            else:
                pass  # hide_secrets=True, and this is a secret. don't return it.

        return ret_dict
dataset/ETHPy150Open Impactstory/total-impact-webapp/totalimpactwebapp/profile.py/Profile.dict_about