# Locale id_ID

## `faker.providers.address`

class faker.providers.address.id_ID.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()
        ...
        'Gg. Monginsidi No. 64\nManado, KT 42194'
        'Jl. Rumah Sakit No. 81\nPalangkaraya, Maluku Utara 87784'
        'Gg. Otto Iskandardinata No. 0\nMagelang, Kalimantan Utara 13933'
        'Jl. Raya Setiabudhi No. 7\nLangsa, Lampung 85839'
        'Gg. Raya Setiabudhi No. 3\nDenpasar, KS 09471'

  administrative_unit() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.administrative_unit()
        ...
        'Papua Barat'
        'Sulawesi Barat'
        'Banten'
        'Kepulauan Bangka Belitung'
        'Sumatera Selatan'

  building_number() → str
    Example:

      ‘791’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.building_number()
        ...
        '60'
        '87'
        '47'
        '93'
        '2'

  city() → str
    Example:

      ‘Sashabury’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city()
        ...
        'Tual'
        'Banjar'
        'Pekanbaru'
        'Padang'
        'Pariaman'

  city_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city_name()
        ...
        'Meulaboh'
        'Tual'
        'Padangpanjang'
        'Banjar'
        'Kota Administrasi Jakarta Selatan'

  city_suffix() → str
    Example:

      ‘town’

    Examples:

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

  country() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country()
        ...
        'Madagaskar'
        'Mauritius'
        'Argentina'
        'Islandia'
        'Perancis'

  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()
        ...
        'Indonesia'
        'Indonesia'
        'Indonesia'
        'Indonesia'
        'Indonesia'

  current_country_code() → str
    Examples:

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

  postcode() → str
    Example:

      86039-9874

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.postcode()
        ...
        '60487'
        '47593'
        '42194'
        '41157'
        '56593'

  state() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.state()
        ...
        'Papua Barat'
        'Sulawesi Barat'
        'Banten'
        'Kepulauan Bangka Belitung'
        'Sumatera Selatan'

  state_abbr() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.state_abbr()
        ...
        'PB'
        'SR'
        'BT'
        'BB'
        'SS'

  street() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street()
        ...
        'Sukajadi'
        'Veteran'
        'Cihampelas'
        'Pasirkoja'
        'Monginsidi'

  street_address() → str
    Example:

      ‘791 Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_address()
        ...
        'Jalan Pasirkoja No. 7'
        'Gang Setiabudhi No. 3'
        'Jalan Dipenogoro No. 4'
        'Jalan Ciumbuleuit No. 5'
        'Gg. Bangka Raya No. 93'

  street_name() → str
    Example:

      ‘Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_name()
        ...
        'Gang Cihampelas'
        'Gang Surapati'
        'Gang Setiabudhi'
        'Jl. Peta'
        'Jl. Wonoayu'

  street_prefix_long() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_prefix_long()
        ...
        'Gang'
        'Gang'
        'Jalan'
        'Gang'
        'Gang'

  street_prefix_short() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_prefix_short()
        ...
        'Gg.'
        'Gg.'
        'Jl.'
        'Gg.'
        'Gg.'

  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.id_ID.Provider(generator: Any)

  Bases: `Provider`

  Implement automotive provider for `id_ID` locale.

  license_plate() → str

    Generate a license plate.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.license_plate()
        ...
        'YN 8764 BI'
        'LS 4219 GQE'
        'R 9241 WZ'
        'V 156 KPR'
        'T 7784 UGR'

  vin() → str

    Generate vin number.

    Examples:

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

## `faker.providers.color`

class faker.providers.color.id_ID.Provider(generator: Any)

  Bases: `Provider`

  Implement color provider for `id_ID` locale.

  Sources: - https://id.wikipedia.org/wiki/Daftar_warna

  color(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None, color_format: str = 'hex') → str

    Generate a color in a human-friendly way.

    Under the hood, this method first creates a color represented in the HSV color model and then converts it to the desired `color_format`. The argument `hue` controls the H value according to the following rules:

    - If the value is a number from `0` to `360`, it will serve as the H value of the generated color.

    - If the value is a tuple/list of 2 numbers from 0 to 360, the color’s H value will be randomly selected from that range.

    - If the value is a valid string, the color’s H value will be randomly selected from the H range corresponding to the supplied string. Valid values are `'monochrome'`, `'red'`, `'orange'`, `'yellow'`, `'green'`, `'blue'`, `'purple'`, and `'pink'`.

    The argument `luminosity` influences both S and V values and is partially affected by `hue` as well. The finer details of this relationship are somewhat involved, so please refer to the source code instead if you wish to dig deeper. To keep the interface simple, this argument either can be omitted or can accept the following string values:`'bright'`, `'dark'`, `'light'`, or `'random'`.

    The argument `color_format` controls in which color model the color is represented. Valid values are `'hsv'`, `'hsl'`, `'rgb'`, or `'hex'` (default).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(hue='red')
        ...
        '#af2f33'
        '#e02141'
        '#ef6466'
        '#a80a14'
        '#ed9e95'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(luminosity='light')
        ...
        '#79c3e0'
        '#89ffa1'
        '#96cbf7'
        '#aafaff'
        '#e3f495'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(hue=(100, 200), color_format='rgb')
        ...
        'rgb(26, 155, 88)'
        'rgb(9, 193, 49)'
        'rgb(73, 229, 154)'
        'rgb(107, 249, 166)'
        'rgb(76, 204, 69)'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(hue='orange', luminosity='bright')
        ...
        '#efc332'
        '#edae65'
        '#d1861d'
        '#ffcc42'
        '#e09533'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(hue=135, luminosity='dark', color_format='hsv')
        ...
        'hsv(135, 96, 45)'
        'hsv(135, 98, 57)'
        'hsv(135, 94, 61)'
        'hsv(135, 99, 47)'
        'hsv(135, 94, 50)'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color(hue=(300, 20), luminosity='random', color_format='hsl')
        ...
        'hsl(217, 94, 27)'
        'hsl(40, 23, 54)'
        'hsl(268, 100, 74)'
        'hsl(175, 43, 31)'
        'hsl(131, 47, 11)'

  color_hsl(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None) → Tuple[int, int, int]

    Generate a HSL color tuple.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsl()
        ...
        (197, 57, 32)
        (132, 90, 39)
        (207, 76, 65)
        (183, 88, 33)
        (258, 62, 73)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsl(hue='red', luminosity='dark')
        ...
        (358, 92, 27)
        (350, 96, 33)
        (359, 88, 36)
        (356, 98, 28)
        (6, 85, 34)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsl(hue=(100, 200), luminosity='random')
        ...
        (149, 94, 27)
        (105, 23, 54)
        (162, 100, 74)
        (138, 43, 31)
        (174, 19, 55)

  color_hsv(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None) → Tuple[int, int, int]

    Generate a HSV color tuple.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsv()
        ...
        (197, 73, 51)
        (132, 95, 76)
        (207, 58, 92)
        (183, 94, 64)
        (258, 37, 90)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsv(hue='red', luminosity='dark')
        ...
        (358, 96, 53)
        (350, 98, 66)
        (359, 94, 68)
        (356, 99, 56)
        (6, 92, 63)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_hsv(hue=(100, 200), luminosity='random')
        ...
        (149, 97, 53)
        (105, 33, 65)
        (162, 51, 100)
        (138, 61, 45)
        (174, 27, 64)

  color_name() → str

    Generate a color name.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_name()
        ...
        'Jingga'
        'Ungu tua'
        'Kuning'
        'Biru'
        'Hijau'

  color_rgb(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None) → Tuple[int, int, int]

    Generate a RGB color tuple of integers.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb()
        ...
        (35, 103, 130)
        (9, 193, 46)
        (98, 173, 234)
        (9, 155, 163)
        (170, 144, 229)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb(hue='red', luminosity='dark')
        ...
        (135, 5, 9)
        (168, 3, 30)
        (173, 10, 13)
        (142, 1, 10)
        (160, 27, 12)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb(hue=(100, 200), luminosity='random')
        ...
        (4, 135, 67)
        (124, 165, 111)
        (124, 255, 215)
        (44, 114, 65)
        (119, 163, 158)

  color_rgb_float(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None) → Tuple[float, float, float]

    Generate a RGB color tuple of floats.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb_float()
        ...
        (0.13770000000000002, 0.4045149999999999, 0.51)
        (0.038000000000000034, 0.76, 0.18239999999999984)
        (0.3864000000000001, 0.6798800000000002, 0.92)
        (0.03840000000000004, 0.6099200000000001, 0.64)
        (0.6668999999999999, 0.5670000000000001, 0.9)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb_float(hue='red', luminosity='dark')
        ...
        (0.53, 0.02120000000000002, 0.03815999999999998)
        (0.66, 0.013200000000000012, 0.12100000000000023)
        (0.68, 0.04080000000000004, 0.05145333333333333)
        (0.56, 0.005600000000000005, 0.042559999999999855)
        (0.63, 0.10835999999999996, 0.05039999999999997)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.color_rgb_float(hue=(100, 200), luminosity='random')
        ...
        (0.015900000000000015, 0.53, 0.2643816666666667)
        (0.489125, 0.65, 0.43549999999999994)
        (0.49, 1.0, 0.8470000000000001)
        (0.17550000000000002, 0.45, 0.2578500000000001)
        (0.4672, 0.64, 0.62272)

  hex_color() → str

    Generate a color formatted as a hex triplet.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.hex_color()
        ...
        '#d82c08'
        '#629f70'
        '#c2094d'
        '#e3e707'
        '#6baa95'

  rgb_color() → str

    Generate a color formatted as a comma-separated RGB value.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.rgb_color()
        ...
        '197,215,20'
        '132,248,207'
        '155,244,183'
        '111,71,144'
        '71,48,128'

  rgb_css_color() → str

    Generate a color formatted as a CSS rgb() function.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.rgb_css_color()
        ...
        'rgb(197,215,20)'
        'rgb(132,248,207)'
        'rgb(155,244,183)'
        'rgb(111,71,144)'
        'rgb(71,48,128)'

  safe_color_name() → str

    Generate a web-safe color name.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.safe_color_name()
        ...
        'ungu'
        'oranye'
        'ungu'
        'putih'
        'kuning'

  safe_hex_color() → str

    Generate a web-safe color formatted as a hex triplet.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.safe_hex_color()
        ...
        '#ccdd11'
        '#88ffcc'
        '#99ffbb'
        '#664499'
        '#443388'

## `faker.providers.company`

class faker.providers.company.id_ID.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()
        ...
        'PD Gunarto Rajata Tbk'
        'UD Kuswandari Tamba (Persero) Tbk'
        'UD Mandala Kuswoyo'
        'Perum Suartini (Persero) Tbk'
        'PT Hidayanto Tbk'

  company_prefix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_prefix()
        ...
        'PD'
        'PD'
        'PT'
        'UD'
        'Perum'

  company_suffix() → str
    Example:

      ‘Ltd’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_suffix()
        ...
        'Tbk'
        'Tbk'
        '(Persero) Tbk'
        'Tbk'
        'Tbk'

## `faker.providers.date_time`

class faker.providers.date_time.id_ID.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, 1, 989137)
        datetime.datetime(2012, 6, 7, 1, 35, 45, 387657)
        datetime.datetime(1993, 7, 18, 12, 33, 7, 844794)
        datetime.datetime(1984, 6, 30, 3, 6, 57, 195936)
        datetime.datetime(1998, 8, 16, 3, 37, 9, 395999)

  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, 38, 57, 458992)
        datetime.datetime(1535, 11, 6, 1, 41, 59, 271027)
        datetime.datetime(852, 8, 25, 14, 55, 59, 888794)
        datetime.datetime(525, 4, 21, 5, 13, 38, 165787)
        datetime.datetime(1036, 4, 28, 12, 2, 50, 388203)

  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, 3, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 49, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 30, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 6, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 2, 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, 20)
        datetime.datetime(2025, 12, 25, 5, 28, 20)
        datetime.datetime(2025, 12, 25, 5, 28, 20)
        datetime.datetime(2025, 12, 25, 5, 28, 20)
        datetime.datetime(2025, 12, 25, 5, 28, 20)

        >>> 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, 3, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 49, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 30, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 6, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 2, 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, 17, 441207)
        datetime.datetime(2026, 9, 28, 1, 31, 6, 993625)
        datetime.datetime(2026, 5, 27, 20, 6, 6, 345382)
        datetime.datetime(2026, 3, 29, 19, 4, 27, 534973)
        datetime.datetime(2026, 6, 29, 23, 11, 1, 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, 30, 362517)
        datetime.datetime(2019, 9, 11, 3, 50, 33, 30998)
        datetime.datetime(2010, 12, 5, 7, 41, 4, 960262)
        datetime.datetime(2006, 9, 23, 4, 17, 45, 228192)
        datetime.datetime(2013, 4, 14, 2, 43, 42, 52102)

        >>> 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, 31, 806169)
        datetime.datetime(2082, 1, 31, 8, 27, 33, 591891)
        datetime.datetime(2057, 2, 10, 6, 50, 6, 962485)
        datetime.datetime(2045, 2, 22, 23, 35, 58, 676330)
        datetime.datetime(2063, 10, 29, 10, 9, 52, 654098)

  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, 9, 928780)
        datetime.datetime(2024, 7, 14, 7, 16, 35, 706420)
        datetime.datetime(2022, 7, 8, 1, 4, 30, 575713)
        datetime.datetime(2021, 7, 19, 19, 0, 40, 447288)
        datetime.datetime(2023, 1, 22, 6, 2, 39, 110862)

        >>> 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, 19, 312075)
        datetime.datetime(2029, 1, 10, 17, 34, 26, 586076)
        datetime.datetime(2027, 9, 3, 12, 44, 55, 308854)
        datetime.datetime(2027, 1, 9, 6, 12, 37, 146777)
        datetime.datetime(2028, 1, 14, 15, 54, 19, 427721)

  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, 28, 261797)
        datetime.datetime(2025, 12, 19, 8, 43, 45, 951675)
        datetime.datetime(2025, 12, 11, 4, 33, 2, 490153)
        datetime.datetime(2025, 12, 7, 6, 33, 10, 433388)
        datetime.datetime(2025, 12, 13, 9, 17, 31, 374241)

        >>> 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, 51, 225327)
        datetime.datetime(2025, 12, 30, 8, 39, 39, 121160)
        datetime.datetime(2025, 12, 28, 1, 49, 36, 431944)
        datetime.datetime(2025, 12, 26, 23, 33, 12, 190596)
        datetime.datetime(2025, 12, 28, 16, 34, 6, 839473)

  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, 36, 284367)
        datetime.datetime(2025, 9, 29, 12, 29, 30, 929965)
        datetime.datetime(2025, 5, 31, 15, 51, 8, 941137)
        datetime.datetime(2025, 4, 3, 18, 1, 46, 446642)
        datetime.datetime(2025, 7, 3, 3, 40, 12, 773608)

        >>> 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, 51, 225327)
        datetime.datetime(2025, 12, 30, 8, 39, 39, 121160)
        datetime.datetime(2025, 12, 28, 1, 49, 36, 431944)
        datetime.datetime(2025, 12, 26, 23, 33, 12, 190596)
        datetime.datetime(2025, 12, 28, 16, 34, 6, 839473)

  day_of_month() → str
    Examples:

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

  day_of_week() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.day_of_week()
        ...
        'Selasa'
        'Jumat'
        'Senin'
        'Minggu'
        'Senin'

  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, 21, 594731)
        datetime.datetime(2026, 1, 16, 23, 11, 58, 54467)
        datetime.datetime(2026, 1, 6, 20, 17, 2, 116942)
        datetime.datetime(2026, 1, 1, 23, 53, 32, 957843)
        datetime.datetime(2026, 1, 9, 13, 35, 24, 566513)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_datetime(end_date='+1y')
        ...
        datetime.datetime(2026, 10, 29, 15, 28, 17, 596785)
        datetime.datetime(2026, 9, 28, 1, 31, 7, 235670)
        datetime.datetime(2026, 5, 27, 20, 6, 6, 924810)
        datetime.datetime(2026, 3, 29, 19, 4, 28, 276056)
        datetime.datetime(2026, 6, 29, 23, 11, 1, 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:01.989137'
        '2012-06-07T01:35:45.387657'
        '1993-07-18T12:33:07.844794'
        '1984-06-30T03:06:57.195936'
        '1998-08-16T03:37:09.395999'

  month() → str
    Examples:

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

  month_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.month_name()
        ...
        'April'
        'Juni'
        'Juli'
        'Juni'
        'Agustus'

  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, 20, 594731)
        datetime.datetime(2025, 12, 17, 23, 11, 57, 54467)
        datetime.datetime(2025, 12, 7, 20, 17, 1, 116942)
        datetime.datetime(2025, 12, 2, 23, 53, 31, 957843)
        datetime.datetime(2025, 12, 10, 13, 35, 23, 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:01'
        '01:35:45'
        '12:33:07'
        '03:06:57'
        '03:37:09'

        >>> 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, 1, 989137)
        datetime.time(1, 35, 45, 387657)
        datetime.time(12, 33, 7, 844794)
        datetime.time(3, 6, 57, 195936)
        datetime.time(3, 37, 9, 395999)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_object(end_datetime='+1h')
        ...
        datetime.time(2, 54, 41, 907802)
        datetime.time(2, 21, 14, 23508)
        datetime.time(12, 58, 21, 902485)
        datetime.time(3, 22, 29, 296237)
        datetime.time(4, 7, 49, 984996)

  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 0x7d6608d88dc0>
        <generator object Provider.time_series at 0x7d6608d88dc0>
        <generator object Provider.time_series at 0x7d6608d88dc0>
        <generator object Provider.time_series at 0x7d6608d88dc0>
        <generator object Provider.time_series at 0x7d6608d88dc0>

  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()
        ...
        1491789841.9891367
        1339032945.3876574
        742998787.8447944
        457412817.1959359
        903238629.3959992

  year() → str
    Examples:

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

## `faker.providers.internet`

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

  Bases: `Provider`

  ascii_company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_company_email()
        ...
        'candriani@perum.biz.id'
        'ltamba@perum.edu'
        'safitrijais@ud.co.id'
        'gpurwanti@pd.ponpes.id'
        'hhandayani@pt.net'

  ascii_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_email()
        ...
        'qgunarto@hotmail.com'
        'esihombing@yahoo.com'
        'kardimandala@perum.ponpes.id'
        'dalimin15@perum.co.id'
        'hhandayani@pt.net'

  ascii_free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_free_email()
        ...
        'candriani@yahoo.com'
        'ywaskita@yahoo.com'
        'ltamba@gmail.com'
        'kardimandala@gmail.com'
        'farah92@yahoo.com'

  ascii_safe_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_safe_email()
        ...
        'candriani@example.com'
        'ywaskita@example.com'
        'ltamba@example.org'
        'kardimandala@example.org'
        'farah92@example.com'

  company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_email()
        ...
        'candriani@perum.biz.id'
        'ltamba@perum.edu'
        'safitrijais@ud.co.id'
        'gpurwanti@pd.ponpes.id'
        'hhandayani@pt.net'

  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.ac.id'
        'meydkrgdcvulautulqvjofrrnbjkfmvrewtpfttqcjafdhxckmyfamohcpnldug.biz.id'
        'iiulfpgbvqcdaehnqkbxmaqgkykorlxnwy.mil'
        'cpyhexmtvewxpwiiaxtgdfajuhbsyaaykvgkgreki.int'
        'uqniukqjckmjabijnuqholpsjayatffafysbsyaaytuquhbpmpviajxnaro.web.id'

  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()
        ...
        'pd.go.id'
        'pd.or.id'
        'ud.web.id'
        'perum.biz.id'
        'pt.net.id'

  domain_word() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.domain_word()
        ...
        'pd'
        'ud'
        'ud'
        'perum'
        'pt'

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

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.email()
        ...
        'candriani@example.com'
        'ywaskita@example.com'
        'ltamba@example.org'
        'kardimandala@example.org'
        'farah92@example.com'

  free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.free_email()
        ...
        'candriani@yahoo.com'
        'ywaskita@yahoo.com'
        'ltamba@gmail.com'
        'kardimandala@gmail.com'
        'farah92@yahoo.com'

  free_email_domain() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.free_email_domain()
        ...
        'yahoo.com'
        'yahoo.com'
        'gmail.com'
        'yahoo.com'
        'hotmail.com'

  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.ud.net.id'
        'laptop-47.perum.biz.id'
        'srv-19.perum.biz.id'
        'db-15.perum.co.id'
        'lt-38.pd.ponpes.id'

  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()
        ...
        'candriani@example.com'
        'ywaskita@example.com'
        'ltamba@example.org'
        'kardimandala@example.org'
        'farah92@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()
        ...
        'go.id'
        'mil.id'
        'org'
        'ac.id'
        'or.id'

  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://ud.or.id/categorylogin.jsp'
        'http://ud.co.id/mainfaq.htm'
        'https://www.pd.ponpes.id/tag/tagsmain.asp'
        'http://www.ud.mil/list/blog/postsabout.html'
        'http://www.ud.net.id/blogregister.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://ud.net.id/'
        'https://ud.biz.id/'
        'http://www.perum.biz.id/'
        'http://www.pd.desa.id/'
        'https://perum.or.id/'

  user_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.user_name()
        ...
        'candriani'
        'calista76'
        'xanana59'
        'claramandala'
        'estiono19'

## `faker.providers.person`

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

  Bases: `Provider`

  first_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name()
        ...
        'Prasetya'
        'Saadat'
        'Bajragin'
        'Karja'
        'Calista'

  first_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_female()
        ...
        'Zulfa'
        'Kiandra'
        'Vanya'
        'Lili'
        'Azalea'

  first_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_male()
        ...
        'Surya'
        'Harsana'
        'Prabu'
        'Tirtayasa'
        'Imam'

  first_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_nonbinary()
        ...
        'Prasetya'
        'Saadat'
        'Bajragin'
        'Karja'
        'Calista'

  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()
        ...
        'Winarno'
        'Andriani'
        'Gunarto'
        'Rajata'
        'Melani'

  last_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_female()
        ...
        'Sudiati'
        'Oktaviani'
        'Fujiati'
        'Palastri'
        'Winarsih'

  last_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_male()
        ...
        'Nababan'
        'Wibowo'
        'Pranowo'
        'Damanik'
        'Mustofa'

  last_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_nonbinary()
        ...
        'Winarno'
        'Andriani'
        'Gunarto'
        'Rajata'
        'Melani'

  name() → str
    Example:

      ‘John Doe’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name()
        ...
        'drg. Vanya Andriani, S.Gz'
        'Oni Laksita'
        'Violet Sihombing'
        'Kani Padmasari'
        'Johan Mandala'

  name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_female()
        ...
        'drg. Vanya Andriani, S.Gz'
        'Oni Laksita'
        'Violet Sihombing'
        'Kani Padmasari'
        'Johan Mandala'

  name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_male()
        ...
        'drg. Vanya Andriani, S.Gz'
        'Oni Laksita'
        'Violet Sihombing'
        'Kani Padmasari'
        'Johan Mandala'

  name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_nonbinary()
        ...
        'drg. Vanya Andriani, S.Gz'
        'Oni Laksita'
        'Violet Sihombing'
        'Kani Padmasari'
        'Johan Mandala'

  prefix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix()
        ...
        'drg.'
        'T.'
        'drg.'
        'Dr.'
        'Ir.'

  prefix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_female()
        ...
        'drg.'
        'drg.'
        'Cut'
        'Tgk.'
        'Drs.'

  prefix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_male()
        ...
        'dr.'
        'KH.'
        'dr.'
        'Dt.'
        'T.'

  prefix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_nonbinary()
        ...
        'drg.'
        'T.'
        'drg.'
        'Dr.'
        'Ir.'

  suffix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix()
        ...
        'S.Sos'
        'S.Farm'
        'S.Gz'
        'S.T.'
        'M.TI.'

  suffix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_female()
        ...
        'S.Sos'
        'S.Farm'
        'S.Gz'
        'S.T.'
        'M.TI.'

  suffix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_male()
        ...
        'S.Sos'
        'S.Farm'
        'S.Gz'
        'S.T.'
        'M.TI.'

  suffix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.suffix_nonbinary()
        ...
        'S.Sos'
        'S.Farm'
        'S.Gz'
        'S.T.'
        'M.TI.'

## `faker.providers.phone_number`

class faker.providers.phone_number.id_ID.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()
        ...
        '(060) 487 6475'
        '+62-824-219-4892'
        '+62 (0115) 781-5659'
        '+62-877-840-8016'
        '+62-97-535-1393'