def profile(self, fields=None):
        """
        Generates a complete profile.
        If "fields" is not empty, only the fields in the list will be returned
        """
        if fields is None:
            fields = []

        d = {
            "job": self.generator.job(),
            "company": self.generator.company(),
            "ssn": self.generator.ssn(),
            "residence": self.generator.address(),
            "current_location": (self.generator.latitude(), self.generator.longitude()),
            "blood_group": "".join(self.random_element(list(itertools.product(["A", "B", "AB", "0"], ["+", "-"])))),
            "website": [self.generator.url() for i in range(1, self.random_int(2, 5))]
        }

        d = dict(d, **self.generator.simple_profile())
        #field selection
        if len(fields) > 0:
            d = dict((k, v) for (k, v) in d.items() if k in fields)

        return d
dataset/ETHPy150Open joke2k/faker/faker/providers/profile/__init__.py/Provider.profile/original