# Locale pt_PT

## `faker.providers.address`

class faker.providers.address.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  address() → str
    Example:

      ‘791 Crist Parks, Sashabury, IL 86039-9874’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.address()
        ...
        'Travessa Nascimento, 56\n5938-242 Mangualde'
        'Avenida Sousa, 97\n5659-387 Vale de Cambra'
        'Avenida Valente, 80\n3513-933 Vila Nova de Famalicão'
        'Largo Nascimento, 51\n1858-398 Santo Tirso'
        'Rua de Gaspar, 4\n0947-112 Amarante'

  administrative_unit() → str
    Example:

      ‘Bragança’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.administrative_unit()
        ...
        'Porto'
        'Santarém'
        'Beja'
        'Guarda'
        'Vila Real'

  building_number() → str
    Example:

      ‘791’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.building_number()
        ...
        '16'
        '88'
        '84'
        '49'
        '52'

  city() → str
    Example:

      ‘Sashabury’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city()
        ...
        'Santa Comba Dão'
        'Marinha Grande'
        'Rio Maior'
        'São Mamede de Infesta'
        'Ílhavo'

  city_name() → str
    Example:

      ‘Amora’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city_name()
        ...
        'Quarteira'
        'Santa Comba Dão'
        'Amora'
        'Marinha Grande'
        'Trancoso'

  city_suffix() → str
    Example:

      ‘town’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city_suffix()
        ...
        'Ville'
        'Ville'
        'Ville'
        'Ville'
        'Ville'

  concelho() → str
    Example:

      ‘Tondela’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.concelho()
        ...
        'Peso da Régua'
        'Proença-a-Nova'
        'Alter do Chão'
        'Madalena'
        'Tavira'

  country() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country()
        ...
        'Roménia'
        'Singapura'
        'Áustria'
        'Laos'
        'Vaticano'

  country_code(representation: str = 'alpha-2') → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country_code()
        ...
        'MV'
        'PS'
        'NL'
        'BB'
        'IL'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country_code(representation='alpha-2')
        ...
        'MV'
        'PS'
        'NL'
        'BB'
        'IL'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country_code(representation='alpha-3')
        ...
        'MDV'
        'PSE'
        'NLD'
        'BRB'
        'ISR'

  current_country() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.current_country()
        ...
        'Portugal'
        'Portugal'
        'Portugal'
        'Portugal'
        'Portugal'

  current_country_code() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.current_country_code()
        ...
        'PT'
        'PT'
        'PT'
        'PT'
        'PT'

  distrito() → str
    Example:

      ‘Bragança’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.distrito()
        ...
        'Porto'
        'Santarém'
        'Beja'
        'Guarda'
        'Vila Real'

  freguesia() → str
    Example:

      ‘Miranda do Douro’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.freguesia()
        ...
        'Peniche'
        'Povoação'
        'Alpiarça'
        'Machico'
        'Tabuaço'

  place_name() → str
    Example:

      “do Pombal”

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.place_name()
        ...
        'Manuel Pinto de Azevedo Júnior'
        'Professor José Conde'
        'Severo Portela'
        'do Anjo'
        'República Argentina'

  postcode() → str
    Example:

      86039-9874

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.postcode()
        ...
        '6048-764'
        '5938-242'
        '9489-241'
        '5781-565'
        '8778-408'

  street_address() → str
    Example:

      ‘791 Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_address()
        ...
        'Av do Alto de São João, 77'
        'Largo de S. Macário, 9'
        'R. de Barbosa, 94'
        'Avenida de Vaz, S/N'
        'Avenida do Sextante, 45'

  street_name() → str
    Example:

      ‘Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_name()
        ...
        'Alameda da Boavista'
        'Praça de Magalhães'
        'Praça de Lima'
        'R. Noa Brito'
        'Travessa Nogueira'

  street_prefix() → str
    Example:

      ‘Rua’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_prefix()
        ...
        'Alameda'
        'Alameda'
        'Av'
        'Travessa'
        'Praça'

  street_suffix() → str
    Example:

      ‘Avenue’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_suffix()
        ...
        'Street'
        'Street'
        'Street'
        'Street'
        'Street'

## `faker.providers.automotive`

class faker.providers.automotive.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  Implement automotive provider for `pt_PT` locale.

  Sources:

  - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Portugal

  license_plate() → str

    Generate a license plate.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.license_plate()
        ...
        'YN-87-BI'
        'ZJ-93-PL'
        '19-JE-48'
        '15-JD-78'
        '59-38-LN'

  vin() → str

    Generate vin number.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.vin()
        ...
        'RT3GZYSK4Z9J97593'
        '7G0K75MX5LDXV8156'
        'G416S1YM2EF0V3513'
        '66LZY7KJ7DJV61858'
        'RLFJBCB3669039471'

## `faker.providers.bank`

class faker.providers.bank.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  Implement bank provider for `pt_PT` locale.

  aba() → str

    Generate an ABA routing transit number.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.aba()
        ...
        '076048766'
        '057593829'
        '052194896'
        '034115783'
        '025659384'

  bank() → str

    Generate a bank name.

  bank_country() → str

    Generate the bank provider’s ISO 3166-1 alpha-2 country code.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.bank_country()
        ...
        'PT'
        'PT'
        'PT'
        'PT'
        'PT'

  bban() → str

    Generate a Basic Bank Account Number (BBAN).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.bban()
        ...
        '660487647593824219489'
        '241157815659387784080'
        '160975351393328711587'
        '148418583989471965934'
        '232094711220186848339'

  iban() → str

    Generate an International Bank Account Number (IBAN).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.iban()
        ...
        'PT07660487647593824219489'
        'PT82241157815659387784080'
        'PT39160975351393328711587'
        'PT82148418583989471965934'
        'PT09232094711220186848339'

  swift(length: int | None = None, primary: bool = False, use_dataset: bool = False) → str

    Generate a SWIFT code.

    SWIFT codes, reading from left to right, are composed of a 4 alphabet character bank code, a 2 alphabet character country code, a 2 alphanumeric location code, and an optional 3 alphanumeric branch code. This means SWIFT codes can only have 8 or 11 characters, so the value of `length` can only be `None` or the integers `8` or `11`. If the value is `None`, then a value of `8` or `11` will randomly be assigned.

    Because all 8-digit SWIFT codes already refer to the primary branch or office, the `primary` argument only has an effect if the value of `length` is `11`. If `primary` is `True` and `length` is `11`, the 11-digit SWIFT codes generated will always end in `'XXX'` to denote that they belong to primary branches/offices.

    For extra authenticity, localized providers may opt to include SWIFT bank codes, location codes, and branch codes used in their respective locales. If `use_dataset` is `True`, this method will generate SWIFT codes based on those locale-specific codes if included. If those codes were not included, then it will behave as if `use_dataset` were `False`, and in that mode, all those codes will just be randomly generated as per the specification.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift()
        ...
        'YNBIPT65ZT4'
        'SGQEPTSIGQ8'
        'JDXCPTV4'
        'LNKTPTN9'
        'OQIBPT9AFZA'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=8)
        ...
        'MYNBPTQ6'
        'PMZJPT4W'
        'SGQEPTSI'
        'YDTZPTQ8'
        'WZTEPTTG'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=8, use_dataset=True)
        ...
        'MYNBPTQ6'
        'PMZJPT4W'
        'SGQEPTSI'
        'YDTZPTQ8'
        'WZTEPTTG'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=11)
        ...
        'MYNBPTQ65ZT'
        'PLSGPT6ISIG'
        'TZIRPTJTGEV'
        'PRDLPT1UN94'
        'OQIBPT9AFZA'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=11, primary=True)
        ...
        'MYNBPTQ6XXX'
        'PMZJPT4WXXX'
        'SGQEPTSIXXX'
        'YDTZPTQ8XXX'
        'WZTEPTTGXXX'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=11, use_dataset=True)
        ...
        'MYNBPTQ65ZT'
        'PLSGPT6ISIG'
        'TZIRPTJTGEV'
        'PRDLPT1UN94'
        'OQIBPT9AFZA'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift(length=11, primary=True, use_dataset=True)
        ...
        'MYNBPTQ6XXX'
        'PMZJPT4WXXX'
        'SGQEPTSIXXX'
        'YDTZPTQ8XXX'
        'WZTEPTTGXXX'

  swift11(primary: bool = False, use_dataset: bool = False) → str

    Generate an 11-digit SWIFT code.

    This method uses `swift()` under the hood with the `length` argument set to `11`. If `primary` is set to `True`, the SWIFT code will always end with `'XXX'`. All 11-digit SWIFT codes use this convention to refer to the primary branch/office.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift11()
        ...
        'MYNBPTQ65ZT'
        'PLSGPT6ISIG'
        'TZIRPTJTGEV'
        'PRDLPT1UN94'
        'OQIBPT9AFZA'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift11(use_dataset=True)
        ...
        'MYNBPTQ65ZT'
        'PLSGPT6ISIG'
        'TZIRPTJTGEV'
        'PRDLPT1UN94'
        'OQIBPT9AFZA'

  swift8(use_dataset: bool = False) → str

    Generate an 8-digit SWIFT code.

    This method uses `swift()` under the hood with the `length` argument set to `8` and with the `primary` argument omitted. All 8-digit SWIFT codes already refer to the primary branch/office.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift8()
        ...
        'MYNBPTQ6'
        'PMZJPT4W'
        'SGQEPTSI'
        'YDTZPTQ8'
        'WZTEPTTG'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.swift8(use_dataset=True)
        ...
        'MYNBPTQ6'
        'PMZJPT4W'
        'SGQEPTSI'
        'YDTZPTQ8'
        'WZTEPTTG'

## `faker.providers.company`

class faker.providers.company.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  bs() → str
    Example:

      ‘integrate extensible convergence’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.bs()
        ...
        'iterate integrated e-markets'
        'integrate back-end mindshare'
        'synthesize wireless content'
        'syndicate synergistic applications'
        'productize killer mindshare'

  catch_phrase() → str
    Example:

      ‘Robust full-range hub’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.catch_phrase()
        ...
        'Networked well-modulated instruction set'
        'Balanced empowering migration'
        'Pre-emptive impactful toolset'
        'Innovative mission-critical help-desk'
        'Reduced didactic middleware'

  company() → str
    Example:

      ‘Acme Ltd’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company()
        ...
        'Marques'
        'Figueiredo e Filhos'
        'Gomes'
        'Lima'
        'Moura Brito Lda.'

  company_suffix() → str
    Example:

      ‘Ltd’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_suffix()
        ...
        'e Filhos'
        'e Filhos'
        'S/A'
        'Lda.'
        'e Filhos'

## `faker.providers.credit_card`

class faker.providers.credit_card.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  Implementation of `pt_PT` locale credit card

  For all methods that take `card_type` as an argument a random card type will be used if the supplied value is `None`. The list of valid card types includes `'visa'`, `'mastercard'` and `'maestro'`.

  Source: https://bincheck.org/portugal

  credit_card_expire(start: date | datetime | timedelta | str | int = 'now', end: date | datetime | timedelta | str | int = '+10y', date_format: str = '%m/%y') → str

    Generate a credit card expiry date.

    This method uses `date_time_between()` under the hood to generate the expiry date, so the `start` and `end` arguments work in the same way here as it would in that method. For the actual formatting of the expiry date, `strftime()` is used and `date_format` is simply passed to that method.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.credit_card_expire()
        ...
        '06/34'
        '07/33'
        '03/30'
        '07/28'
        '02/31'

  credit_card_full(card_type: CardType | None = None) → str

    Generate a set of credit card details.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.credit_card_full()
        ...
        'Mastercard\nValentina Marques\n5125564876475934 01/31\nCVV2: 421\n'
        'Visa\nMateus Nogueira\n4907729241157817 07/29\nCVV2: 593\n'
        'Visa\nConstança Matos\n4511564080160970 04/34\nCVV2: 535\n'
        'Visa\nDaniel Correia\n4594323328711585 12/35\nCVV2: 714\n'
        'Visa\nNuno Teixeira\n4118698583989472 11/26\nCVV2: 659\n'

  credit_card_number(card_type: CardType | None = None) → str

    Generate a valid credit card number.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.credit_card_number()
        ...
        '5431230487647597'
        '6777072421948925'
        '5203421578156590'
        '4154038778408019'
        '4281870975351394'

  credit_card_provider(card_type: CardType | None = None) → str

    Generate a credit card provider name.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.credit_card_provider()
        ...
        'Mastercard'
        'Mastercard'
        'Maestro'
        'Mastercard'
        'Visa'

  credit_card_security_code(card_type: CardType | None = None) → str

    Generate a credit card security code.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.credit_card_security_code()
        ...
        '604'
        '764'
        '593'
        '242'
        '948'

## `faker.providers.date_time`

class faker.providers.date_time.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  am_pm() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.am_pm()
        ...
        'AM'
        'AM'
        'PM'
        'AM'
        'AM'

  century() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.century()
        ...
        'XIII'
        'XIV'
        'II'
        'IX'
        'XVII'

  date(pattern: str = '%Y-%m-%d', end_datetime: date | datetime | timedelta | str | int | None = None) → str

    Get a date string between January 1, 1970 and now.

    Parameters:

      - pattern – Format of the date (year-month-day by default)

      - end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date()
        ...
        '2017-04-10'
        '2012-06-07'
        '1993-07-18'
        '1984-06-30'
        '1998-08-16'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date(pattern='%m/%d/%Y')
        ...
        '04/10/2017'
        '06/07/2012'
        '07/18/1993'
        '06/30/1984'
        '08/16/1998'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date(end_datetime='+1w')
        ...
        '2017-04-15'
        '2012-06-12'
        '1993-07-21'
        '1984-07-01'
        '1998-08-19'

  date_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'today') → date

    Get a Date object based on a random date between two given dates. Accepts date strings that can be recognized by strtotime().

    Parameters:

      - start_date – A `DateParseType`. Defaults to 30 years ago

      - end_date – A `DateParseType`. Defaults to `"today"`

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_between()
        ...
        datetime.date(2021, 4, 25)
        datetime.date(2018, 9, 20)
        datetime.date(2008, 8, 6)
        datetime.date(2003, 10, 1)
        datetime.date(2011, 4, 27)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_between(start_date='-1w')
        ...
        datetime.date(2025, 12, 23)
        datetime.date(2025, 12, 23)
        datetime.date(2025, 12, 20)
        datetime.date(2025, 12, 19)
        datetime.date(2025, 12, 21)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_between(start_date="-1y", end_date="+1w")
        ...
        datetime.date(2025, 11, 3)
        datetime.date(2025, 10, 2)
        datetime.date(2025, 5, 29)
        datetime.date(2025, 3, 30)
        datetime.date(2025, 7, 2)

  date_between_dates(date_start: date | datetime | timedelta | str | int | None = None, date_end: date | datetime | timedelta | str | int | None = None) → date

    Get a random date between the two given dates.

    Parameters:

      - date_start – A `DateParseType`. Defaults to the UNIX epoch

      - date_end – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_between_dates()
        ...
        datetime.date(2025, 12, 25)
        datetime.date(2025, 12, 25)
        datetime.date(2025, 12, 25)
        datetime.date(2025, 12, 25)
        datetime.date(2025, 12, 25)

  date_object(end_datetime: datetime | None = None) → date

    Get a date object between January 1, 1970 and now

    Parameters:

      end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_object()
        ...
        datetime.date(2017, 4, 10)
        datetime.date(2012, 6, 7)
        datetime.date(1993, 7, 18)
        datetime.date(1984, 6, 30)
        datetime.date(1998, 8, 16)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_object(end_datetime='+1w')
        ...
        datetime.date(2017, 4, 15)
        datetime.date(2012, 6, 12)
        datetime.date(1993, 7, 21)
        datetime.date(1984, 7, 1)
        datetime.date(1998, 8, 19)

  date_of_birth(tzinfo: tzinfo | None = None, minimum_age: int = 0, maximum_age: int = 115) → date

    Generate a random date of birth represented as a Date object, constrained by optional miminimum_age and maximum_age parameters.

    Parameters:

      - tzinfo – Defaults to None.

      - minimum_age – Defaults to `0`.

      - maximum_age – Defaults to `115`.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_of_birth()
        ...
        datetime.date(2007, 12, 8)
        datetime.date(1997, 11, 26)
        datetime.date(1958, 10, 8)
        datetime.date(1940, 1, 7)
        datetime.date(1969, 4, 16)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_of_birth(minimum_age=30, maximum_age=50)
        ...
        datetime.date(1992, 9, 17)
        datetime.date(1990, 11, 24)
        datetime.date(1983, 10, 24)
        datetime.date(1980, 6, 1)
        datetime.date(1985, 9, 19)

  date_this_century(before_today: bool = True, after_today: bool = False) → date

    Gets a Date object for the current century.

    Parameters:

      - before_today – include days in current century before today. Defaults to True

      - after_today – include days in current century after today. Defaults to False

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_century()
        ...
        datetime.date(2021, 12, 9)
        datetime.date(2019, 9, 10)
        datetime.date(2010, 12, 5)
        datetime.date(2006, 9, 23)
        datetime.date(2013, 4, 13)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_century(before_today=False, after_today=True)
        ...
        datetime.date(2088, 6, 25)
        datetime.date(2082, 1, 31)
        datetime.date(2057, 2, 10)
        datetime.date(2045, 2, 22)
        datetime.date(2063, 10, 29)

  date_this_decade(before_today: bool = True, after_today: bool = False) → date

    Gets a Date object for the decade year.

    Parameters:

      - before_today – include days in current decade before today. Defaults to True

      - after_today – include days in current decade after today. Defaults to False

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_decade()
        ...
        datetime.date(2025, 1, 19)
        datetime.date(2024, 7, 14)
        datetime.date(2022, 7, 7)
        datetime.date(2021, 7, 19)
        datetime.date(2023, 1, 22)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_decade(before_today=False, after_today=True)
        ...
        datetime.date(2029, 5, 17)
        datetime.date(2029, 1, 10)
        datetime.date(2027, 9, 3)
        datetime.date(2027, 1, 9)
        datetime.date(2028, 1, 14)

  date_this_month(before_today: bool = True, after_today: bool = False) → date

    Gets a Date object for the current month.

    Parameters:

      - before_today – include days in current month before today. Defaults to True

      - after_today – include days in current month after today. Defaults to False

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_month()
        ...
        datetime.date(2025, 12, 21)
        datetime.date(2025, 12, 19)
        datetime.date(2025, 12, 11)
        datetime.date(2025, 12, 7)
        datetime.date(2025, 12, 13)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_month(before_today=False, after_today=True)
        ...
        datetime.date(2025, 12, 30)
        datetime.date(2025, 12, 30)
        datetime.date(2025, 12, 27)
        datetime.date(2025, 12, 26)
        datetime.date(2025, 12, 28)

  date_this_year(before_today: bool = True, after_today: bool = False) → date

    Gets a Date object for the current year.

    Parameters:

      - before_today – include days in current year before today. Defaults to True

      - after_today – include days in current year after today. Defaults to False

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_year()
        ...
        datetime.date(2025, 10, 30)
        datetime.date(2025, 9, 29)
        datetime.date(2025, 5, 31)
        datetime.date(2025, 4, 3)
        datetime.date(2025, 7, 3)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_this_year(before_today=False, after_today=True)
        ...
        datetime.date(2025, 12, 30)
        datetime.date(2025, 12, 30)
        datetime.date(2025, 12, 27)
        datetime.date(2025, 12, 26)
        datetime.date(2025, 12, 28)

  date_time(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None) → datetime

    Get a datetime object for a date between January 1, 1970 and a specified end_datetime

    Parameters:

      - tzinfo – timezone, instance of datetime.tzinfo subclass

      - end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time()
        ...
        datetime.datetime(2017, 4, 10, 2, 4, 10, 433355)
        datetime.datetime(2012, 6, 7, 1, 35, 52, 967201)
        datetime.datetime(1993, 7, 18, 12, 33, 12, 50510)
        datetime.datetime(1984, 6, 30, 3, 6, 59, 785103)
        datetime.datetime(1998, 8, 16, 3, 37, 14, 508747)

  date_time_ad(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, start_datetime: date | datetime | timedelta | str | int | None = None) → datetime

    Get a datetime object for a date between January 1, 0001 and now

    Parameters:

      - tzinfo – timezone, instance of datetime.tzinfo subclass

      - end_datetime – A `DateParseType`. Defaults to the current date and time

      - start_datetime – A `DateParseType`. Defaults to UNIX timestamp `-62135596800`,

    equivalent to 0001-01-01 00:00:00 UTC

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_ad()
        ...
        datetime.datetime(1710, 12, 10, 4, 39, 5, 903214)
        datetime.datetime(1535, 11, 6, 1, 42, 6, 850571)
        datetime.datetime(852, 8, 25, 14, 56, 4, 94505)
        datetime.datetime(525, 4, 21, 5, 13, 40, 754959)
        datetime.datetime(1036, 4, 28, 12, 2, 55, 500950)

  date_time_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'now', tzinfo: tzinfo | None = None) → datetime

    Get a datetime object based on a random date between two given dates. Accepts date strings that can be recognized by strtotime().

    Parameters:

      - start_date – A `DateParseType`. Defaults to 30 years ago

      - end_date – A `DateParseType`. Defaults to `"now"`

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_between()
        ...
        datetime.datetime(2021, 4, 25, 12, 39, 13, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 59, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 40, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 16, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 12, 171082)

  date_time_between_dates(datetime_start: date | datetime | timedelta | str | int | None = None, datetime_end: date | datetime | timedelta | str | int | None = None, tzinfo: tzinfo | None = None) → datetime

    Get a random datetime between the two given datetimes.

    Parameters:

      - datetime_start – A `DateParseType`. Defaults to the UNIX epoch

      - datetime_end – A `DateParseType`. Defaults to the current date and time

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_between_dates()
        ...
        datetime.datetime(2025, 12, 25, 5, 28, 30)
        datetime.datetime(2025, 12, 25, 5, 28, 30)
        datetime.datetime(2025, 12, 25, 5, 28, 30)
        datetime.datetime(2025, 12, 25, 5, 28, 30)
        datetime.datetime(2025, 12, 25, 5, 28, 30)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_between_dates(datetime_start='-30y', datetime_end='now')
        ...
        datetime.datetime(2021, 4, 25, 12, 39, 13, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 59, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 40, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 16, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 12, 171082)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_between_dates(datetime_start='now', datetime_end='+1y')
        ...
        datetime.datetime(2026, 10, 29, 15, 28, 27, 441207)
        datetime.datetime(2026, 9, 28, 1, 31, 16, 993625)
        datetime.datetime(2026, 5, 27, 20, 6, 16, 345382)
        datetime.datetime(2026, 3, 29, 19, 4, 37, 534973)
        datetime.datetime(2026, 6, 29, 23, 11, 11, 405703)

  date_time_this_century(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) → datetime

    Gets a datetime object for the current century.

    Parameters:

      - before_now – include days in current century before today. Defaults to True

      - after_now – include days in current century after today. Defaults to False

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_century()
        ...
        datetime.datetime(2021, 12, 9, 18, 8, 38, 806736)
        datetime.datetime(2019, 9, 11, 3, 50, 40, 610542)
        datetime.datetime(2010, 12, 5, 7, 41, 9, 165978)
        datetime.datetime(2006, 9, 23, 4, 17, 47, 817359)
        datetime.datetime(2013, 4, 14, 2, 43, 47, 164850)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_century(before_now=False, after_now=True)
        ...
        datetime.datetime(2088, 6, 25, 23, 31, 33, 361950)
        datetime.datetime(2082, 1, 31, 8, 27, 36, 12347)
        datetime.datetime(2057, 2, 10, 6, 50, 12, 756770)
        datetime.datetime(2045, 2, 22, 23, 36, 6, 87162)
        datetime.datetime(2063, 10, 29, 10, 9, 57, 541350)

  date_time_this_decade(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) → datetime

    Gets a datetime object for the decade year.

    Parameters:

      - before_now – include days in current decade before today. Defaults to True

      - after_now – include days in current decade after today. Defaults to False

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_decade()
        ...
        datetime.datetime(2025, 1, 19, 6, 6, 18, 372998)
        datetime.datetime(2024, 7, 14, 7, 16, 43, 285964)
        datetime.datetime(2022, 7, 8, 1, 4, 34, 781428)
        datetime.datetime(2021, 7, 19, 19, 0, 43, 36455)
        datetime.datetime(2023, 1, 22, 6, 2, 44, 223609)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_decade(before_now=False, after_now=True)
        ...
        datetime.datetime(2029, 5, 17, 15, 31, 20, 867856)
        datetime.datetime(2029, 1, 10, 17, 34, 29, 6532)
        datetime.datetime(2027, 9, 3, 12, 45, 1, 103138)
        datetime.datetime(2027, 1, 9, 6, 12, 44, 557610)
        datetime.datetime(2028, 1, 14, 15, 54, 24, 314974)

  date_time_this_month(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) → datetime

    Gets a datetime object for the current month.

    Parameters:

      - before_now – include days in current month before today. Defaults to True

      - after_now – include days in current month after today. Defaults to False

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_month()
        ...
        datetime.datetime(2025, 12, 21, 11, 0, 36, 706016)
        datetime.datetime(2025, 12, 19, 8, 43, 53, 531219)
        datetime.datetime(2025, 12, 11, 4, 33, 6, 695869)
        datetime.datetime(2025, 12, 7, 6, 33, 13, 22556)
        datetime.datetime(2025, 12, 13, 9, 17, 36, 486988)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_month(before_now=False, after_now=True)
        ...
        datetime.datetime(2025, 12, 30, 22, 42, 52, 781109)
        datetime.datetime(2025, 12, 30, 8, 39, 41, 541616)
        datetime.datetime(2025, 12, 28, 1, 49, 42, 226228)
        datetime.datetime(2025, 12, 26, 23, 33, 19, 601429)
        datetime.datetime(2025, 12, 28, 16, 34, 11, 726726)

  date_time_this_year(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) → datetime

    Gets a datetime object for the current year.

    Parameters:

      - before_now – include days in current year before today. Defaults to True

      - after_now – include days in current year after today. Defaults to False

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_year()
        ...
        datetime.datetime(2025, 10, 30, 11, 53, 44, 728585)
        datetime.datetime(2025, 9, 29, 12, 29, 38, 509509)
        datetime.datetime(2025, 5, 31, 15, 51, 13, 146853)
        datetime.datetime(2025, 4, 3, 18, 1, 49, 35810)
        datetime.datetime(2025, 7, 3, 3, 40, 17, 886355)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_this_year(before_now=False, after_now=True)
        ...
        datetime.datetime(2025, 12, 30, 22, 42, 52, 781109)
        datetime.datetime(2025, 12, 30, 8, 39, 41, 541616)
        datetime.datetime(2025, 12, 28, 1, 49, 42, 226228)
        datetime.datetime(2025, 12, 26, 23, 33, 19, 601429)
        datetime.datetime(2025, 12, 28, 16, 34, 11, 726726)

  day_of_month() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.day_of_month()
        ...
        '10'
        '07'
        '18'
        '30'
        '16'

  day_of_week()
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.day_of_week()
        ...
        'segunda-feira'
        'quinta-feira'
        'domingo'
        'sábado'
        'domingo'

  future_date(end_date: date | datetime | timedelta | str | int = '+30d') → date

    Get a Date object based on a random date between 1 day from now and a given date.

    Parameters:

      - end_date – A `DateParseType`. Defaults to `"+30d"`

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_date()
        ...
        datetime.date(2026, 1, 19)
        datetime.date(2026, 1, 16)
        datetime.date(2026, 1, 7)
        datetime.date(2026, 1, 2)
        datetime.date(2026, 1, 9)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_date(end_date='+1y')
        ...
        datetime.date(2026, 10, 29)
        datetime.date(2026, 9, 27)
        datetime.date(2026, 5, 28)
        datetime.date(2026, 3, 30)
        datetime.date(2026, 6, 30)

  future_datetime(end_date: date | datetime | timedelta | str | int = '+30d', tzinfo: tzinfo | None = None) → datetime

    Get a datetime object based on a random date between 1 second form now and a given date.

    Parameters:

      - end_date – A `DateParseType`. Defaults to `"+30d"`

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_datetime()
        ...
        datetime.datetime(2026, 1, 19, 13, 27, 31, 594731)
        datetime.datetime(2026, 1, 16, 23, 12, 8, 54467)
        datetime.datetime(2026, 1, 6, 20, 17, 12, 116942)
        datetime.datetime(2026, 1, 1, 23, 53, 42, 957843)
        datetime.datetime(2026, 1, 9, 13, 35, 34, 566513)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_datetime(end_date='+1y')
        ...
        datetime.datetime(2026, 10, 29, 15, 28, 27, 596785)
        datetime.datetime(2026, 9, 28, 1, 31, 17, 235670)
        datetime.datetime(2026, 5, 27, 20, 6, 16, 924810)
        datetime.datetime(2026, 3, 29, 19, 4, 38, 276056)
        datetime.datetime(2026, 6, 29, 23, 11, 11, 894428)

  iso8601(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, sep: str = 'T', timespec: str = 'auto') → str

    Get an ISO 8601 string for a datetime between the UNIX epoch and now.

    Parameters:

      - tzinfo – timezone, instance of datetime.tzinfo subclass

      - end_datetime – A `DateParseType`. Defaults to the current date and time

      - sep – separator between date and time, defaults to ‘T’

      - timespec – format specifier for the time part, defaults to ‘auto’ - see datetime.isoformat() documentation

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.iso8601()
        ...
        '2017-04-10T02:04:10.433355'
        '2012-06-07T01:35:52.967201'
        '1993-07-18T12:33:12.050510'
        '1984-06-30T03:06:59.785103'
        '1998-08-16T03:37:14.508747'

  month() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.month()
        ...
        '04'
        '06'
        '07'
        '06'
        '08'

  month_name()
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.month_name()
        ...
        'abril'
        'junho'
        'julho'
        'junho'
        'agosto'

  past_date(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) → date

    Get a Date object based on a random date between a given date and 1 day ago.

    Parameters:

      - start_date – A `DateParseType`. Defaults to `"-30d"`

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.past_date()
        ...
        datetime.date(2025, 12, 19)
        datetime.date(2025, 12, 16)
        datetime.date(2025, 12, 7)
        datetime.date(2025, 12, 2)
        datetime.date(2025, 12, 9)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.past_date(start_date='-1y')
        ...
        datetime.date(2025, 10, 28)
        datetime.date(2025, 9, 26)
        datetime.date(2025, 5, 26)
        datetime.date(2025, 3, 28)
        datetime.date(2025, 6, 28)

  past_datetime(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) → datetime

    Get a datetime object based on a random date between a given date and 1 second ago.

    Parameters:

      - start_date – A `DateParseType`. Defaults to `"-30d"`

      - tzinfo – timezone, instance of datetime.tzinfo subclass

    Example:

      datetime(‘1999-02-02 11:42:52’)

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.past_datetime()
        ...
        datetime.datetime(2025, 12, 20, 13, 27, 30, 594731)
        datetime.datetime(2025, 12, 17, 23, 12, 7, 54467)
        datetime.datetime(2025, 12, 7, 20, 17, 11, 116942)
        datetime.datetime(2025, 12, 2, 23, 53, 41, 957843)
        datetime.datetime(2025, 12, 10, 13, 35, 33, 566513)

  pytimezone(*args: Any, **kwargs: Any) → tzinfo | None

    Generate a random timezone (see `faker.timezone` for any args) and return a Python object usable as a `tzinfo` for `datetime` or other fakers.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.pytimezone()
        ...
        zoneinfo.ZoneInfo(key='Indian/Maldives')
        zoneinfo.ZoneInfo(key='America/Barbados')
        zoneinfo.ZoneInfo(key='Europe/Stockholm')
        zoneinfo.ZoneInfo(key='Africa/Windhoek')
        zoneinfo.ZoneInfo(key='Asia/Qatar')

  time(pattern: str = '%H:%M:%S', end_datetime: date | datetime | timedelta | str | int | None = None) → str

    Get a time string (24h format by default)

    Parameters:

      - pattern – format

      - end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time()
        ...
        '02:04:10'
        '01:35:52'
        '12:33:12'
        '03:06:59'
        '03:37:14'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time(pattern='%I:%M %p')
        ...
        '02:04 AM'
        '01:35 AM'
        '12:33 PM'
        '03:06 AM'
        '03:37 AM'

  time_delta(end_datetime: date | datetime | timedelta | str | int | None = None) → timedelta

    Get a random timedelta object of duration between the current date and time and end_datetime

    Parameters:

      end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_delta()
        ...
        datetime.timedelta(0)
        datetime.timedelta(0)
        datetime.timedelta(0)
        datetime.timedelta(0)
        datetime.timedelta(0)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_delta(end_datetime='+30h')
        ...
        datetime.timedelta(days=1, seconds=4797, microseconds=559965)
        datetime.timedelta(seconds=81859, microseconds=75518)
        datetime.timedelta(seconds=45421, microseconds=730730)
        datetime.timedelta(seconds=27963, microseconds=9032)
        datetime.timedelta(seconds=55217, microseconds=669908)

  time_object(end_datetime: date | datetime | timedelta | str | int | None = None) → time

    Get a time object

    Parameters:

      end_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_object()
        ...
        datetime.time(2, 4, 10, 433355)
        datetime.time(1, 35, 52, 967201)
        datetime.time(12, 33, 12, 50510)
        datetime.time(3, 6, 59, 785103)
        datetime.time(3, 37, 14, 508747)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_object(end_datetime='+1h')
        ...
        datetime.time(2, 54, 50, 352021)
        datetime.time(2, 21, 21, 603052)
        datetime.time(12, 58, 26, 108201)
        datetime.time(3, 22, 31, 885404)
        datetime.time(4, 7, 55, 97743)

  time_series(start_date: date | datetime | timedelta | str | int = '-30d', end_date: date | datetime | timedelta | str | int = 'now', precision: float | None = None, distrib: Callable[[datetime], float] | None = None, tzinfo: tzinfo | None = None) → Iterator[Tuple[datetime, Any]]

    Returns a generator yielding tuples of `(<datetime>, <value>)`.

    The data points will start at `start_date`, and be at every time interval specified by `precision`.

    Parameters:

      - start_date – A `DateParseType`. Defaults to `"-30d"`

      - end_date – A `DateParseType`. Defaults to `"now"`

      - precision – A float representing the time interval between data points.

    Defaults to 1/30th of the time :param distrib: A callable that accepts a datetime object and returns a value. Defaults to a uniform distribution :param tzinfo: timezone, instance of datetime.tzinfo subclass

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_series()
        ...
        <generator object Provider.time_series at 0x7d6603e75240>
        <generator object Provider.time_series at 0x7d6603e75240>
        <generator object Provider.time_series at 0x7d6603e75240>
        <generator object Provider.time_series at 0x7d6603e75240>
        <generator object Provider.time_series at 0x7d6603e75240>

  timezone() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.timezone()
        ...
        'Indian/Maldives'
        'America/Barbados'
        'Europe/Stockholm'
        'Africa/Windhoek'
        'Asia/Qatar'

  unix_time(end_datetime: date | datetime | timedelta | str | int | None = None, start_datetime: date | datetime | timedelta | str | int | None = None) → float

    Get a timestamp between January 1, 1970 and now, unless passed explicit `start_datetime` or end_datetime values.

    On Windows, the decimal part is always 0.

    Parameters:

      - end_datetime – A `DateParseType`. Defaults to the UNIX epoch

      - start_datetime – A `DateParseType`. Defaults to the current date and time

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.unix_time()
        ...
        1491789850.4333553
        1339032952.9672015
        742998792.0505103
        457412819.78510344
        903238634.5087465

  year() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.year()
        ...
        '2017'
        '2012'
        '1993'
        '1984'
        '1998'

## `faker.providers.geo`

class faker.providers.geo.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  coordinate(center: float | None = None, radius: float | int = 0.001) → Decimal

    Optionally center the coord and pick a point within radius.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.coordinate()
        ...
        Decimal('26.826999')
        Decimal('45.792650')
        Decimal('-158.265114')
        Decimal('-40.995129')
        Decimal('94.488524')

  latitude() → Decimal
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.latitude()
        ...
        Decimal('13.4134995')
        Decimal('22.896325')
        Decimal('-79.132557')
        Decimal('-20.4975645')
        Decimal('47.244262')

  latlng() → Tuple[Decimal, Decimal]
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.latlng()
        ...
        (Decimal('13.4134995'), Decimal('45.792650'))
        (Decimal('-79.132557'), Decimal('-40.995129'))
        (Decimal('47.244262'), Decimal('80.880444'))
        (Decimal('18.6986795'), Decimal('-17.160223'))
        (Decimal('37.935520'), Decimal('12.226293'))

  local_latlng(country_code: str = 'US', coords_only: bool = False) → Tuple[str, ...] | None

    Returns a location known to exist on land in a country specified by country_code. Defaults to ‘en_US’. See the land_coords list for available locations/countries.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.local_latlng()
        ...
        ('40.72371', '-73.95097', 'Greenpoint', 'US', 'America/New_York')
        ('41.48199', '-81.79819', 'Lakewood', 'US', 'America/New_York')
        ('30.17746', '-81.38758', 'Palm Valley', 'US', 'America/New_York')
        ('41.72059', '-87.70172', 'Evergreen Park', 'US', 'America/Chicago')
        ('33.93113', '-117.54866', 'Norco', 'US', 'America/Los_Angeles')

  location_on_land(coords_only: bool = False) → Tuple[str, ...]

    Returns a random tuple specifying a coordinate set guaranteed to exist on land. Format is (latitude, longitude, place name, two-letter country code, timezone) Pass coords_only to return coordinates without metadata.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.location_on_land()
        ...
        ('40.56754', '-89.64066', 'Pekin', 'US', 'America/Chicago')
        ('25.13915', '73.06784', 'Sheoganj', 'IN', 'Asia/Kolkata')
        ('-7.60361', '37.00438', 'Kidodi', 'TZ', 'Africa/Dar_es_Salaam')
        ('33.35283', '-111.78903', 'Gilbert', 'US', 'America/Phoenix')
        ('17.54907', '82.85749', 'Elamanchili', 'IN', 'Asia/Kolkata')

  longitude() → Decimal
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.longitude()
        ...
        Decimal('26.826999')
        Decimal('45.792650')
        Decimal('-158.265114')
        Decimal('-40.995129')
        Decimal('94.488524')

  nationality() → str
    Example:

      ‘Portuguesa’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.nationality()
        ...
        'Mongol'
        'Jamaicana'
        'Bósnia'
        'Singapurense'
        'Libanesa'

## `faker.providers.internet`

class faker.providers.internet.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  ascii_company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_company_email()
        ...
        'cmarques@nascimento.pt'
        'egomes@pinheiro.net'
        'noabrito@reis.com'
        'emanuel15@pacheco.com'
        'benedita59@oliveira.org'

  ascii_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_email()
        ...
        'qandrade@sapo.pt'
        'constanca59@hotmail.com'
        'goncalo19@nogueira.com'
        'vazdenis@clix.pt'
        'limabenedita@clix.pt'

  ascii_free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_free_email()
        ...
        'cmarques@clix.pt'
        'ymagalhaes@clix.pt'
        'llima@hotmail.com'
        'noabrito@gmail.com'
        'flor92@clix.pt'

  ascii_safe_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_safe_email()
        ...
        'cmarques@example.com'
        'ymagalhaes@example.com'
        'llima@example.org'
        'noabrito@example.org'
        'flor92@example.com'

  company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_email()
        ...
        'cmarques@nascimento.pt'
        'egomes@pinheiro.net'
        'noabrito@reis.com'
        'emanuel15@pacheco.com'
        'benedita59@oliveira.org'

  dga(year: int | None = None, month: int | None = None, day: int | None = None, tld: str | None = None, length: int | None = None) → str

    Generates a domain name by given date https://en.wikipedia.org/wiki/Domain_generation_algorithm

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.dga()
        ...
        'hxqvaffcmfsccynscisxeajjagjahtnfcmfsccynscisxeajjagjahtnfcmfscc.org'
        'meydkrgdcvulautulqvjofrrnbjkfmvrewtpfttqcjafdhxckmyfamohcpnldug.org'
        'iiulfpgbvqcdaehnqkbxmaqgkykorlxnwy.net'
        'cpyhexmtvewxpwiiaxtgdfajuhbsyaaykvgkgreki.com'
        'uqniukqjckmjabijnuqho.com'

  domain_name(levels: int = 1) → str

    Produce an Internet domain name with the specified number of subdomain levels.

        >>> domain_name()
        nichols-phillips.com
        >>> domain_name(2)
        williamson-hopkins.jackson.com

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.domain_name()
        ...
        'marques.com'
        'nascimento.pt'
        'gomes.pt'
        'pinheiro.net'
        'garcia.org'

  domain_word() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.domain_word()
        ...
        'marques'
        'figueiredo'
        'gomes'
        'lima'
        'moura'

  email(safe: bool = True, domain: str | None = None) → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.email()
        ...
        'cmarques@example.com'
        'ymagalhaes@example.com'
        'llima@example.org'
        'noabrito@example.org'
        'flor92@example.com'

  free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.free_email()
        ...
        'cmarques@clix.pt'
        'ymagalhaes@clix.pt'
        'llima@hotmail.com'
        'noabrito@gmail.com'
        'flor92@clix.pt'

  free_email_domain() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.free_email_domain()
        ...
        'sapo.pt'
        'sapo.pt'
        'gmail.com'
        'clix.pt'
        'sapo.pt'

  hostname(levels: int = 1) → str

    Produce a hostname with specified number of subdomain levels.

        >>> hostname()
        db-01.nichols-phillips.com
        >>> hostname(0)
        laptop-56
        >>> hostname(2)
        web-12.williamson-hopkins.jackson.com

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.hostname()
        ...
        'web-66.figueiredo.pt'
        'web-47.pinheiro.net'
        'lt-24.barbosa.com'
        'desktop-11.monteiro.com'
        'desktop-65.oliveira.org'

  http_method() → str

    Returns random HTTP method https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.http_method()
        ...
        'OPTIONS'
        'OPTIONS'
        'GET'
        'DELETE'
        'PATCH'

  http_status_code(include_unassigned: bool = True) → int

    Returns random HTTP status code https://www.rfc-editor.org/rfc/rfc9110#name-status-codes :param include_unassigned: Whether to include status codes which have

    > not yet been assigned or are unused

    Returns:

      a random three digit status code

    Return type:

      int

    Example:

      404

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.http_status_code()
        ...
        532
        297
        488
        555
        315

  iana_id() → str

    Returns IANA Registrar ID https://www.iana.org/assignments/registrar-ids/registrar-ids.xhtml

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.iana_id()
        ...
        '6463344'
        '7056021'
        '679216'
        '4343903'
        '8577767'

  image_url(width: int | None = None, height: int | None = None, placeholder_url: str | None = None) → str

    Returns URL to placeholder image Example: http://placehold.it/640x480

    Parameters:

      - width – Optional image width

      - height – Optional image height

      - placeholder_url – Optional template string of image URLs from custom placeholder service. String must contain `{width}` and `{height}` placeholders, eg: `https:/example.com/{width}/{height}`.

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.image_url()
        ...
        'https://picsum.photos/788/861'
        'https://dummyimage.com/530x995'
        'https://dummyimage.com/621x976'
        'https://dummyimage.com/447x285'
        'https://placekitten.com/286/194'

  ipv4(network: bool = False, address_class: str | None = None, private: str | None = None) → str

    Returns a random IPv4 address or network with a valid CIDR.

    Parameters:

      - network – Network address

      - address_class – IPv4 address class (a, b, or c)

      - private – Public or private

    Returns:

      IPv4

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ipv4()
        ...
        '171.174.170.81'
        '95.25.112.121'
        '51.105.121.194'
        '195.110.164.126'
        '141.250.247.54'

  ipv4_network_class() → str

    Returns a IPv4 network class ‘a’, ‘b’ or ‘c’.

    Returns:

      IPv4 network class

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ipv4_network_class()
        ...
        'b'
        'b'
        'a'
        'b'
        'c'

  ipv4_private(network: bool = False, address_class: str | None = None) → str

    Returns a private IPv4.

    Parameters:

      - network – Network address

      - address_class – IPv4 address class (a, b, or c)

    Returns:

      Private IPv4

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ipv4_private()
        ...
        '172.29.117.82'
        '10.248.203.131'
        '172.25.180.188'
        '172.22.253.123'
        '192.168.71.140'

  ipv4_public(network: bool = False, address_class: str | None = None) → str

    Returns a public IPv4 excluding private blocks.

    Parameters:

      - network – Network address

      - address_class – IPv4 address class (a, b, or c)

    Returns:

      Public IPv4

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ipv4_public()
        ...
        '166.186.169.69'
        '111.198.92.30'
        '168.155.75.206'
        '141.250.247.54'
        '212.120.204.37'

  ipv6(network: bool = False) → str

    Produce a random IPv6 address or network with a valid CIDR

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ipv6()
        ...
        'e3e7:682:c209:4cac:629f:6fbf:d82c:7cd'
        'f728:b4fa:4248:5e3a:a5d:2f35:6baa:9455'
        'eb11:67b3:67a9:c378:7c65:c1e6:82e2:e662'
        'f7c1:bd87:4da5:e709:d471:3d61:c8a7:639'
        'e443:df78:9558:867f:5ba9:1fb0:7a02:4204'

  mac_address(multicast: bool = False) → str

    Returns a random MAC address.

    Parameters:

      multicast – Multicast address

    Returns:

      MAC Address

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.mac_address()
        ...
        '66:c5:d7:14:84:f8'
        '48:9b:f4:b7:6f:47'
        '18:47:30:80:4b:9e'
        '6e:25:a9:f1:33:b5'
        '0e:a1:68:f4:e2:85'

  nic_handle(suffix: str = 'FAKE') → str

    Returns NIC Handle ID https://www.apnic.net/manage-ip/using-whois/guide/person/

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.nic_handle()
        ...
        'ZYT1598-FAKE'
        'SIW493-FAKE'
        'UE59352-FAKE'
        'WBUN892-FAKE'
        'CHQD98-FAKE'

  nic_handles(count: int = 1, suffix: str = '????') → List[str]

    Returns NIC Handle ID list

    Return type:

      list[str]

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.nic_handles()
        ...
        ['ZYT1598-EWLN']
        ['WGNZ53-QITZ']
        ['UERV52-EJGW']
        ['CHQ498-DZJA']
        ['UU1864-TEMK']

  port_number(is_system: bool = False, is_user: bool = False, is_dynamic: bool = False) → int

    Returns a network port number https://tools.ietf.org/html/rfc6335

    Parameters:

      - is_system – System or well-known ports

      - is_user – User or registered ports

      - is_dynamic – Dynamic / private / ephemeral ports

    Return type:

      int

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.port_number()
        ...
        50494
        55125
        5306
        33936
        63691

  ripe_id() → str

    Returns RIPE Organization ID https://www.ripe.net/manage-ips-and-asns/db/support/organisation-object-in-the-ripe-database

    Return type:

      str

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ripe_id()
        ...
        'ORG-ZYT1598-RIPE'
        'ORG-SIW493-RIPE'
        'ORG-UE59352-RIPE'
        'ORG-WBUN892-RIPE'
        'ORG-CHQD98-RIPE'

  safe_domain_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.safe_domain_name()
        ...
        'example.com'
        'example.com'
        'example.org'
        'example.com'
        'example.net'

  safe_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.safe_email()
        ...
        'cmarques@example.com'
        'ymagalhaes@example.com'
        'llima@example.org'
        'noabrito@example.org'
        'flor92@example.com'

  slug(value: str | None = None) → str

    Django algorithm

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.slug()
        ...
        'three-image-son'
        'kitchen-amount'
        'much-mention'
        'why-step-themselves'
        'me-help-past-wait'

  tld() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.tld()
        ...
        'pt'
        'pt'
        'com'
        'org'
        'pt'

  uri(schemes: List[str] | None = None, deep: int | None = None) → str
    Parameters:

      - schemes – a list of strings to use as schemes, one will chosen randomly. If None, it will generate http and https uris. Passing an empty list will result in schemeless uri generation like “://domain.com/index.html”.

      - deep – an integer specifying how many path components the URI should have..

    Returns:

      a random url string.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.uri()
        ...
        'https://gomes.pt/categorylogin.jsp'
        'https://www.goncalves.pt/main/main/mainprivacy.htm'
        'https://www.matos.org/tag/tagsmain.asp'
        'http://www.ramos.pt/exploreauthor.php'
        'http://baptista.com/list/wp-content/categoriesmain.html'

  uri_extension() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.uri_extension()
        ...
        '.php'
        '.php'
        '.html'
        '.htm'
        '.asp'

  uri_page() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.uri_page()
        ...
        'author'
        'category'
        'privacy'
        'category'
        'index'

  uri_path(deep: int | None = None) → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.uri_path()
        ...
        'posts/tag'
        'explore/tag'
        'explore/category'
        'blog'
        'category'

  url(schemes: List[str] | None = None) → str
    Parameters:

      schemes – a list of strings to use as schemes, one will chosen randomly. If None, it will generate http and https urls. Passing an empty list will result in schemeless url generation like “://domain.com”.

    Returns:

      a random url string.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.url()
        ...
        'https://figueiredo.pt/'
        'https://pinheiro.net/'
        'http://barbosa.com/'
        'https://www.sousa.pt/'
        'http://guerreiro.net/'

  user_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.user_name()
        ...
        'cmarques'
        'erica76'
        'constanca59'
        'emiliabrito'
        'goncalo19'

## `faker.providers.job`

class faker.providers.job.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  job() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job()
        ...
        'Bombeiro'
        'Pedreiro'
        'Oficiais e outros profissionais das forças e serviços de segurança, com funções de comando,'
        'Fiscal e encarregado de portagem'
        'Soprador de artigos de vidro'

  job_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_female()
        ...
        'Bombeiro'
        'Pedreiro'
        'Oficiais e outros profissionais das forças e serviços de segurança, com funções de comando,'
        'Fiscal e encarregado de portagem'
        'Soprador de artigos de vidro'

  job_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_male()
        ...
        'Bombeiro'
        'Pedreiro'
        'Oficiais e outros profissionais das forças e serviços de segurança, com funções de comando,'
        'Fiscal e encarregado de portagem'
        'Soprador de artigos de vidro'

## `faker.providers.person`

class faker.providers.person.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  first_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name()
        ...
        'Wilson'
        'Valentina'
        'Ângela'
        'Bruno'
        'Mauro'

  first_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_female()
        ...
        'Júlia'
        'Violeta'
        'Larissa'
        'Ana'
        'Eva'

  first_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_male()
        ...
        'José'
        'William'
        'Leandro'
        'António'
        'Gaspar'

  first_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_nonbinary()
        ...
        'Wilson'
        'Valentina'
        'Ângela'
        'Bruno'
        'Mauro'

  language_name() → str

    Generate a random i18n language name (e.g. English).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.language_name()
        ...
        'Luba-Katanga'
        'Malay'
        'Aymara'
        'Interlingue'
        'Quechua'

  last_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name()
        ...
        'Macedo'
        'Marques'
        'Andrade'
        'Figueiredo'
        'Nascimento'

  last_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_female()
        ...
        'Macedo'
        'Marques'
        'Andrade'
        'Figueiredo'
        'Nascimento'

  last_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_male()
        ...
        'Macedo'
        'Marques'
        'Andrade'
        'Figueiredo'
        'Nascimento'

  last_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_nonbinary()
        ...
        'Macedo'
        'Marques'
        'Andrade'
        'Figueiredo'
        'Nascimento'

  name() → str
    Example:

      ‘John Doe’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name()
        ...
        'Violeta Marques'
        'Gaspar Nascimento'
        'Kyara Gomes'
        'Isabela Pinheiro'
        'Mateus Brito'

  name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_female()
        ...
        'Violeta Marques'
        'Eva Nascimento'
        'Kyara da Morais'
        'Miriam Cunha'
        'Carlota Garcia-Brito'

  name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_male()
        ...
        'William Marques'
        'Gaspar Nascimento'
        'Kevin da Morais'
        'Nuno Cunha'
        'David Garcia-Brito'

  name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_nonbinary()
        ...
        'Violeta Marques'
        'Gaspar Nascimento'
        'Kyara Gomes'
        'Isabela Pinheiro'
        'Mateus Brito'

  prefix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix()
        ...
        'da'
        'da'
        'de'
        'da'
        'do'

  prefix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_female()
        ...
        'da'
        'da'
        'de'
        'da'
        'do'

  prefix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_male()
        ...
        'da'
        'da'
        'de'
        'da'
        'do'

  prefix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_nonbinary()
        ...
        'da'
        'da'
        'de'
        'da'
        'do'

  suffix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix()
        ...
        ''
        ''
        ''
        ''
        ''

  suffix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_female()
        ...
        ''
        ''
        ''
        ''
        ''

  suffix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_male()
        ...
        ''
        ''
        ''
        ''
        ''

  suffix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_nonbinary()
        ...
        ''
        ''
        ''
        ''
        ''

## `faker.providers.phone_number`

class faker.providers.phone_number.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  country_calling_code() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country_calling_code()
        ...
        '+687'
        '+595'
        '+880'
        '+964'
        '+41'

  msisdn() → str

    https://en.wikipedia.org/wiki/MSISDN

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.msisdn()
        ...
        '6048764759382'
        '2194892411578'
        '5659387784080'
        '6097535139332'
        '1158714841858'

  phone_number() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.phone_number()
        ...
        '+351260487647'
        '+351939382421'
        '(351) 928924115'
        '918156593'
        '917840801'

## `faker.providers.ssn`

class faker.providers.ssn.pt_PT.Provider(generator: Any)

  Bases: `Provider`

  A Faker provider for the Portuguese VAT IDs

  ssn() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ssn()
        ...
        '604-87-6475'
        '824-21-9489'
        '411-57-8156'
        '938-77-8408'
        '160-97-5351'

  vat_id() → str

    http://ec.europa.eu/taxation_customs/vies/faq.html#item_11 :return: A random Portuguese VAT ID

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.vat_id()
        ...
        'PT604876475'
        'PT824219489'
        'PT411578156'
        'PT938778408'
        'PT160975351'