# Locale vi_VN

## `faker.providers.address`

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

  Bases: `Provider`

  Provider for generating Vietnamese addresses. Sources:

  # https://vi.wikipedia.org/wiki/B%E1%BA%A3n_m%E1%BA%ABu:K%C3%BD_hi%E1%BB%87u_quy_%C6%B0%E1%BB%9Bc_c%C3%A1c_t%E1%BB%89nh_th%C3%A0nh_Vi%E1%BB%87t_Nam

  address() → str
    Example:

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

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.address()
        ...
        '487 Vũ Dãy\nJohnXã, 246039'
        '4 Jane Ngõ\nHuyện JaneXã, 205592'
        '3 Dương Khu\nThành phố JohnPhường, 980899'
        '7 Phạm Tổ\nQuận JohnQuận, 942368'
        'JohnThành phố\n7 Jane Khu, 840883'

  administrative_unit() → str

    Returns a random administrative unit (province).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.administrative_unit()
        ...
        'Thái Nguyên'
        'Hà Tĩnh'
        'Quảng Ninh'
        'Thừa Thiên Huế'
        'Hải Phòng'

  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()
        ...
        'JaneThành phố'
        'JaneThị xã'
        'JaneHuyện'
        'Quận JaneQuận'
        'Huyện JohnHuyện'

  city_prefix() → str

    Returns a random city prefix.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city_prefix()
        ...
        'Thị xã'
        'Thị xã'
        'Thành phố'
        'Huyện'
        'Thị xã'

  city_suffix() → str
    Example:

      ‘town’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.city_suffix()
        ...
        'Thị xã'
        'Thị xã'
        'Thành phố'
        'Huyện'
        'Xã'

  country() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.country()
        ...
        'Maldives'
        'Palestine'
        'Kingdom of the Netherlands'
        'Barbados'
        'Israel'

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

  current_country_code() → str
    Examples:

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

  postcode() → str

    Returns a random postcode.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.postcode()
        ...
        '985440'
        '503958'
        '894772'
        '541001'
        '142450'

  postcode_in_state(state_abbr: str | None = None) → str

    Returns a random postcode within the provided province abbreviation.

    Parameters:

      state_abbr – A province abbreviation.

    Returns:

      A random postcode within the provided province abbreviation.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.postcode_in_state()
        ...
        '025394'
        '020911'
        '018041'
        '064988'
        '092497'

  state() → str

    Returns a random administrative unit (province).

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.state()
        ...
        'Thái Nguyên'
        'Hà Tĩnh'
        'Quảng Ninh'
        'Thừa Thiên Huế'
        'Hải Phòng'

  state_abbr() → str

    Returns a random two-letter abbreviation for Vietnamese provinces.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.state_abbr()
        ...
        'TNg'
        'HT'
        'QN'
        'TTH'
        'HP'

  street_address() → str
    Example:

      ‘791 Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_address()
        ...
        '04 Bùi Khu'
        '93 Jane Hẻm'
        '4 Jane Ngõ'
        '5 Mai Ngõ'
        '59 Jane Dãy'

  street_name() → str
    Example:

      ‘Crist Parks’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_name()
        ...
        'Bùi Đường'
        'Mai Dãy'
        'Vũ Dãy'
        'Hoàng Làng'
        'Jane Hẻm'

  street_suffix() → str
    Example:

      ‘Avenue’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.street_suffix()
        ...
        'Số'
        'Số'
        'Đường'
        'Khu'
        'Dãy'

## `faker.providers.automotive`

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

  Bases: `Provider`

  Implement automotive provider for `vi_VN` locale.

  Sources:

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

  license_plate() → str

    Generate a license plate.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.license_plate()
        ...
        '04P-87647'
        '38X-24219'
        '92V-41157'
        '65M-93877'
        '80B-16097'

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

  Bases: `Provider`

  Implement color provider for `vi_VN` locale.

  #Sources: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_m%C3%A0u

  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()
        ...
        'Vàng'
        'Tím violet'
        'Xanh lá cây'
        'Azure'
        'Rêu đậm'

  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()
        ...
        'xanh chanh'
        'trắng'
        'xanh chanh'
        'đen'
        'tím'

  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.vi_VN.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()
        ...
        'Bùi và đối tác Công ty TNHH'
        'Mai và Dương Công ty TNHH MTV'
        'Dương và Đặng Công ty Hợp danh'
        'Mai Lê Doanh nghiệp tư nhân'
        'Trần Hoàng Tập Đoàn'

  company_suffix() → str
    Example:

      ‘Ltd’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_suffix()
        ...
        'Tập Đoàn'
        'Công ty TNHH MTV'
        'Tập Đoàn'
        'Công ty TNHH MTV'
        'Công ty TNHH'

## `faker.providers.currency`

class faker.providers.currency.vi_VN.Provider(generator: Any)

  Bases: `Provider`

  cryptocurrency() → Tuple[str, str]
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.cryptocurrency()
        ...
        ('XRP', 'Ripple')
        ('STC', 'SwiftCoin')
        ('BC', 'BlackCoin')
        ('NXT', 'Nxt')
        ('IOTA', 'IOTA')

  cryptocurrency_code() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.cryptocurrency_code()
        ...
        'XRP'
        'STC'
        'BC'
        'NXT'
        'IOTA'

  cryptocurrency_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.cryptocurrency_name()
        ...
        'Ripple'
        'SwiftCoin'
        'BlackCoin'
        'Nxt'
        'IOTA'

  currency() → Tuple[str, str]
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.currency()
        ...
        ('MWK', 'Malawian kwacha')
        ('NZD', 'New Zealand dollar')
        ('BAM', 'Bosnia and Herzegovina convertible mark')
        ('IRR', 'Iranian rial')
        ('SPL', 'Seborga luigino')

  currency_code() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.currency_code()
        ...
        'MWK'
        'NZD'
        'BAM'
        'IRR'
        'SPL'

  currency_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.currency_name()
        ...
        'Malawian kwacha'
        'New Zealand dollar'
        'Bosnia and Herzegovina convertible mark'
        'Iranian rial'
        'Seborga luigino'

  currency_symbol(code: str | None = None) → str
    Example:

      $

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.currency_symbol()
        ...
        '$'
        '$'
        'KM'
        'kr'
        'L'

  pricetag() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.pricetag()
        ...
        '₫7,604.87'
        '₫975.93'
        '₫54.21'
        '₫89,241.15'
        '₫91,565.93'

## `faker.providers.date_time`

class faker.providers.date_time.vi_VN.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, 18, 877574)
        datetime.datetime(2012, 6, 7, 1, 36, 0, 546746)
        datetime.datetime(1993, 7, 18, 12, 33, 16, 256226)
        datetime.datetime(1984, 6, 30, 3, 7, 2, 374271)
        datetime.datetime(1998, 8, 16, 3, 37, 19, 621494)

  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, 14, 347427)
        datetime.datetime(1535, 11, 6, 1, 42, 14, 430115)
        datetime.datetime(852, 8, 25, 14, 56, 8, 300217)
        datetime.datetime(525, 4, 21, 5, 13, 43, 344124)
        datetime.datetime(1036, 4, 28, 12, 3, 0, 613697)

  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, 23, 236214)
        datetime.datetime(2018, 9, 21, 2, 4, 9, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 50, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 26, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 22, 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, 40)
        datetime.datetime(2025, 12, 25, 5, 28, 40)
        datetime.datetime(2025, 12, 25, 5, 28, 40)
        datetime.datetime(2025, 12, 25, 5, 28, 40)
        datetime.datetime(2025, 12, 25, 5, 28, 40)

        >>> 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, 23, 236214)
        datetime.datetime(2018, 9, 21, 2, 4, 9, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 50, 361449)
        datetime.datetime(2003, 10, 2, 0, 44, 26, 49189)
        datetime.datetime(2011, 4, 28, 4, 1, 22, 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, 37, 441207)
        datetime.datetime(2026, 9, 28, 1, 31, 26, 993625)
        datetime.datetime(2026, 5, 27, 20, 6, 26, 345382)
        datetime.datetime(2026, 3, 29, 19, 4, 47, 534973)
        datetime.datetime(2026, 6, 29, 23, 11, 21, 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, 47, 250954)
        datetime.datetime(2019, 9, 11, 3, 50, 48, 190086)
        datetime.datetime(2010, 12, 5, 7, 41, 13, 371694)
        datetime.datetime(2006, 9, 23, 4, 17, 50, 406527)
        datetime.datetime(2013, 4, 14, 2, 43, 52, 277597)

        >>> 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, 34, 917732)
        datetime.datetime(2082, 1, 31, 8, 27, 38, 432803)
        datetime.datetime(2057, 2, 10, 6, 50, 18, 551054)
        datetime.datetime(2045, 2, 22, 23, 36, 13, 497995)
        datetime.datetime(2063, 10, 29, 10, 10, 2, 428603)

  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, 26, 817217)
        datetime.datetime(2024, 7, 14, 7, 16, 50, 865508)
        datetime.datetime(2022, 7, 8, 1, 4, 38, 987144)
        datetime.datetime(2021, 7, 19, 19, 0, 45, 625623)
        datetime.datetime(2023, 1, 22, 6, 2, 49, 336357)

        >>> 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, 22, 423638)
        datetime.datetime(2029, 1, 10, 17, 34, 31, 426988)
        datetime.datetime(2027, 9, 3, 12, 45, 6, 897422)
        datetime.datetime(2027, 1, 9, 6, 12, 51, 968442)
        datetime.datetime(2028, 1, 14, 15, 54, 29, 202226)

  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, 45, 150234)
        datetime.datetime(2025, 12, 19, 8, 44, 1, 110763)
        datetime.datetime(2025, 12, 11, 4, 33, 10, 901585)
        datetime.datetime(2025, 12, 7, 6, 33, 15, 611723)
        datetime.datetime(2025, 12, 13, 9, 17, 41, 599735)

        >>> 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, 54, 336890)
        datetime.datetime(2025, 12, 30, 8, 39, 43, 962072)
        datetime.datetime(2025, 12, 28, 1, 49, 48, 20513)
        datetime.datetime(2025, 12, 26, 23, 33, 27, 12261)
        datetime.datetime(2025, 12, 28, 16, 34, 16, 613978)

  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, 53, 172804)
        datetime.datetime(2025, 9, 29, 12, 29, 46, 89053)
        datetime.datetime(2025, 5, 31, 15, 51, 17, 352569)
        datetime.datetime(2025, 4, 3, 18, 1, 51, 624978)
        datetime.datetime(2025, 7, 3, 3, 40, 22, 999102)

        >>> 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, 54, 336890)
        datetime.datetime(2025, 12, 30, 8, 39, 43, 962072)
        datetime.datetime(2025, 12, 28, 1, 49, 48, 20513)
        datetime.datetime(2025, 12, 26, 23, 33, 27, 12261)
        datetime.datetime(2025, 12, 28, 16, 34, 16, 613978)

  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()
        ...
        'Thứ Hai'
        'Thứ Năm'
        'Chủ Nhật'
        'Thứ Bảy'
        'Chủ Nhật'

  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, 41, 594731)
        datetime.datetime(2026, 1, 16, 23, 12, 18, 54467)
        datetime.datetime(2026, 1, 6, 20, 17, 22, 116942)
        datetime.datetime(2026, 1, 1, 23, 53, 52, 957843)
        datetime.datetime(2026, 1, 9, 13, 35, 44, 566513)

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

  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()
        ...
        'Tháng Tư'
        'Tháng Sáu'
        'Tháng Bảy'
        'Tháng Sáu'
        'Tháng Tám'

  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, 40, 594731)
        datetime.datetime(2025, 12, 17, 23, 12, 17, 54467)
        datetime.datetime(2025, 12, 7, 20, 17, 21, 116942)
        datetime.datetime(2025, 12, 2, 23, 53, 51, 957843)
        datetime.datetime(2025, 12, 10, 13, 35, 43, 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:18'
        '01:36:00'
        '12:33:16'
        '03:07:02'
        '03:37:19'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time(pattern='%I:%M %p')
        ...
        '02:04 AM'
        '01:36 AM'
        '12:33 PM'
        '03:07 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, 18, 877574)
        datetime.time(1, 36, 0, 546746)
        datetime.time(12, 33, 16, 256226)
        datetime.time(3, 7, 2, 374271)
        datetime.time(3, 37, 19, 621494)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_object(end_datetime='+1h')
        ...
        datetime.time(2, 54, 58, 796239)
        datetime.time(2, 21, 29, 182596)
        datetime.time(12, 58, 30, 313917)
        datetime.time(3, 22, 34, 474572)
        datetime.time(4, 8, 0, 210491)

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

  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()
        ...
        1491789858.8775737
        1339032960.5467455
        742998796.2562261
        457412822.3742709
        903238639.6214937

  year() → str
    Examples:

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

## `faker.providers.job`

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

  Bases: `Provider`

  Translated from Super class

  job() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job()
        ...
        'Giảng viên'
        'Nghệ sĩ'
        'Thực tập sinh giáo dục'
        'Kiến trúc sư phần mềm'
        'Chuyên viên phân tích thị trường'

  job_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_female()
        ...
        'Giảng viên'
        'Nghệ sĩ'
        'Thực tập sinh giáo dục'
        'Kiến trúc sư phần mềm'
        'Chuyên viên phân tích thị trường'

  job_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_male()
        ...
        'Giảng viên'
        'Nghệ sĩ'
        'Thực tập sinh giáo dục'
        'Kiến trúc sư phần mềm'
        'Chuyên viên phân tích thị trường'

## `faker.providers.lorem`

class faker.providers.lorem.vi_VN.Provider(generator: Any)

  Bases: `Provider`

  Implement lorem provider for `vi_VN` locale.

  Word list is based on common Vietnamese words and phrases. # Source : https://vi.wikipedia.org/wiki/Ng%E1%BB%AF_ph%C3%A1p_ti%E1%BA%BFng_Vi%E1%BB%87t

  get_words_list(part_of_speech: str | None = None, ext_word_list: Sequence[str] | None = None) → List[str]

    Get list of words.

    `ext_word_list` is a parameter that allows the user to provide a list of words to be used instead of the built-in word list. If `ext_word_list` is provided, then the value of `part_of_speech` is ignored.

    `part_of_speech` is a parameter that defines to what part of speech the returned word belongs. If `ext_word_list` is not `None`, then `part_of_speech` is ignored. If the value of `part_of_speech` does not correspond to an existent part of speech according to the set locale, then an exception is raised.

    Warning

    Depending on the length of a locale provider’s built-in word list or on the length of `ext_word_list` if provided, a large `nb` can exhaust said lists if `unique` is `True`, raising an exception.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.get_words_list(part_of_speech="abc", ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.get_words_list(ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']
        ['abc', 'def', 'ghi', 'jkl']

  paragraph(nb_sentences: int = 3, variable_nb_sentences: bool = True, ext_word_list: Sequence[str] | None = None) → str

    Generate a paragraph.

    The `nb_sentences` argument controls how many sentences the paragraph will contain, and setting `variable_nb_sentences` to `False` will generate the exact amount, while setting it to `True` (default) will generate a random amount (+/-40%, minimum of 1) using `randomize_nb_elements()`.

    Under the hood, `sentences()` is used to generate the sentences, so the argument `ext_word_list` works in the same way here as it would in that method.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraph(nb_sentences=5)
        ...
        'Và nhiều tại các như nhiều. Có như để nơi giống vẫn. Từ với chỉ vài trong. Hơn như điều tại. Thì bạn dưới không.'
        'Vì giữa có các các để bên. Cái thế chưa theo được chưa người lớn. Của trong cách để từ. Từ thế nếu đang với được các. Nhiều hơn có vì vài. Bạn này người như là gần.'
        'Như vậy cho trong và một hoặc. Điều bên giữa giữa này sẽ vậy. Có rất đến từ các đúng. Được cũng có khi.'
        'Đó nơi chỉ mà của. Mỗi để trong hoặc và lớn. Vài như với người như với để. Là đó từng người.'
        'Sẽ của số đó nhưng để làm. Như nếu vì có tại. Để từ không thì khiến bên các của.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraph(nb_sentences=5, variable_nb_sentences=False)
        ...
        'Sau của làm để nào đúng. Nhiều thì thay đã cho. Giống vẫn theo như. Như bạn hơn như điều tại để nhưng. Dưới không từ vì giữa có các các.'
        'Hơn nào như vậy. Hơn như được. Hoặc có các đã của trong. Vì một bạn để tự cũng cách. Cách mỗi cách nhiều.'
        'Cách đang để của bạn này người như. Hơn đến tại. Vậy cho trong và. Như tự cách cũng. Nơi mỗi để thay vài từng có.'
        'Thế đi hoặc gần thì được cũng. Dưới bên này khiến với đã đúng được. Để trong hoặc và. Dưới số vài như với người như. Cũng về gần là.'
        'Không nhiều hơn. Sẽ của số đó nhưng để làm. Như nếu vì có tại. Để từ không thì khiến bên các của. Nhiều có vậy bên khi.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraph(nb_sentences=5, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'Abc jkl def jkl jkl jkl. Ghi jkl ghi def jkl ghi. Jkl ghi ghi ghi abc. Ghi jkl ghi def. Def def ghi abc.'
        'Def ghi abc jkl jkl abc jkl. Abc def jkl abc def jkl abc ghi. Jkl abc ghi abc jkl. Jkl def def def abc def jkl. Jkl ghi ghi def ghi. Def abc abc jkl abc jkl.'
        'Abc ghi abc abc abc abc ghi. Ghi jkl ghi ghi abc abc ghi. Ghi def ghi jkl jkl jkl. Def abc ghi def.'
        'Abc def ghi def abc. Jkl abc abc ghi abc ghi. Ghi abc abc abc jkl abc abc. Abc abc jkl abc.'
        'Abc jkl jkl abc def abc def. Abc def def abc def. Abc jkl abc def ghi jkl jkl abc.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraph(nb_sentences=5, variable_nb_sentences=False, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'Jkl def def ghi def jkl. Jkl def jkl abc abc. Jkl ghi def jkl. Jkl def ghi jkl ghi def abc def. Ghi abc ghi def ghi abc jkl jkl.'
        'Ghi def jkl ghi. Ghi jkl def. Ghi abc jkl abc jkl abc. Def abc def ghi jkl abc ghi. Ghi jkl ghi jkl.'
        'Ghi def abc jkl def abc abc jkl. Ghi ghi def. Ghi abc abc abc. Jkl jkl ghi def. Def jkl jkl jkl ghi jkl ghi.'
        'Def ghi ghi jkl def def abc. Ghi jkl abc ghi abc abc jkl def. Abc abc ghi abc. Ghi jkl ghi abc abc abc jkl. Def def jkl abc.'
        'Abc jkl ghi. Abc jkl jkl abc def abc def. Abc def def abc def. Abc jkl abc def ghi jkl jkl abc. Jkl abc ghi jkl def.'

  paragraphs(nb: int = 3, ext_word_list: Sequence[str] | None = None) → List[str]

    Generate a list of paragraphs.

    This method uses `paragraph()` under the hood to generate paragraphs, and the `nb` argument controls exactly how many sentences the list will contain. The `ext_word_list` argument works in exactly the same way as well.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraphs(nb=5)
        ...
        ['Và nhiều tại các như nhiều. Có như để nơi giống vẫn. Từ với chỉ vài trong.', 'Như điều tại để. Bạn dưới không từ vì giữa.', 'Các để bên chỉ đúng vẫn hơn. Theo được chưa người lớn này.', 'Vì một bạn để tự cũng cách. Cách mỗi cách nhiều.', 'Có vì vài cũng lớn đang người. Là gần làm như. Như tự bên như. Điều bên giữa giữa này sẽ vậy.']
        ['Nơi thế đi hoặc gần thì được cũng. Dưới bên này khiến với đã đúng được. Để trong hoặc và.', 'Vài như với người như với để. Là đó từng người. Tại hơn có vậy.', 'Vẫn bên như như nếu vì. Để và để từ. Làm như tại như lớn.', 'Đúng tôi tôi với. Vài vì của tại.', 'Như các đi cũng đến trong điều. Khiến khi và nơi này từng thì. Vậy vài thay để cho.']
        ['Giống như một vài hoặc tôi. Dưới mà như lớn của.', 'Của đến và vì làm tôi với. Như hơn cái và được bên và. Người từ dưới một hơn gần.', 'Bạn sẽ chỉ cái như với. Người hơn không nếu. Để để cũng một.', 'Của với làm đi mỗi đi cũng. Nơi đó và điều.', 'Số số như và giống hoặc. Chỉ như dưới mà với sẽ có. Cho nơi khi.']
        ['Khi vẫn và tôi. Đang cũng cách đang tại này và người. Hơn nếu bên nếu cũng từ tại.', 'Với với thế là khi điều. Các vẫn mà gần. Như một giống có.', 'Cũng giữa vì thế.', 'Của về từ làm trong. Người cũng như để là với. Với nào sẽ và số. Vẫn cũng rất về như.', 'Gần trong nào điều như thế các được. Từ dưới như cách tự cái chỉ.']
        ['Là trong làm đúng bên có. Như một chưa và đã và đó. Được tôi trong đến nhiều để như.', 'Lớn vậy của. Từ giống như sẽ với vài như tại. Hơn này chưa đó thay khiến.', 'Lớn được thế làm như trong mà. Có dưới với đang như có.', 'Của thế chưa chỉ vậy trong gần.', 'Hơn cũng và. Trong đó vài cho được hoặc đi. Mà trong thế như hơn.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraphs(nb=5, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['Abc jkl def jkl jkl jkl. Ghi jkl ghi def jkl ghi. Jkl ghi ghi ghi abc.', 'Jkl ghi def abc. Def ghi abc ghi def ghi.', 'Jkl abc jkl ghi jkl ghi ghi. Abc def jkl abc ghi abc.', 'Def abc def ghi jkl abc ghi. Ghi jkl ghi jkl.', 'Ghi def ghi def ghi def abc. Abc jkl def abc. Jkl jkl jkl jkl. Ghi jkl ghi ghi abc abc ghi.']
        ['Def def ghi ghi jkl def def abc. Ghi jkl abc ghi abc abc jkl def. Abc abc ghi abc.', 'Ghi abc abc abc jkl abc abc. Abc abc jkl abc. Def ghi abc ghi.', 'Ghi jkl abc abc def def. Ghi abc abc jkl. Def jkl def jkl ghi.', 'Jkl abc abc ghi. Ghi def abc def.', 'Jkl jkl ghi def ghi abc ghi. Ghi def abc def abc jkl def. Ghi ghi jkl jkl abc.']
        ['Ghi jkl abc ghi ghi abc. Ghi def jkl ghi def.', 'Def ghi abc def def abc ghi. Jkl ghi abc abc def jkl abc. Abc jkl ghi abc ghi jkl.', 'Def abc ghi abc jkl ghi. Abc ghi abc def. Abc jkl def abc.', 'Jkl abc def ghi jkl ghi abc. Def abc abc ghi.', 'Jkl jkl jkl abc ghi ghi. Ghi jkl ghi def ghi abc ghi. Abc def def.']
        ['Def ghi abc abc. Def def ghi def def abc abc abc. Ghi def jkl def abc ghi def.', 'Abc abc def abc def ghi. Jkl ghi def jkl. Abc abc ghi abc.', 'Def ghi def def.', 'Def def jkl def jkl. Abc abc jkl jkl abc ghi. Abc def abc abc jkl. Ghi abc def def jkl.', 'Jkl abc def ghi jkl def jkl def. Jkl ghi jkl ghi jkl abc ghi.']
        ['Abc abc def jkl jkl ghi. Abc abc jkl abc abc abc abc. Def abc abc ghi jkl ghi jkl.', 'Ghi ghi jkl. Jkl ghi jkl abc ghi ghi jkl def. Ghi abc jkl abc jkl ghi.', 'Ghi def def def jkl jkl def. Abc ghi abc def jkl abc.', 'Def def jkl ghi ghi abc jkl.', 'Ghi def abc. Jkl abc ghi abc def ghi ghi. Def jkl def jkl ghi.']

  sentence(nb_words: int = 6, variable_nb_words: bool = True, ext_word_list: Sequence[str] | None = None) → str

    Generate a sentence.

    The `nb_words` argument controls how many words the sentence will contain, and setting `variable_nb_words` to `False` will generate the exact amount, while setting it to `True` (default) will generate a random amount (+/-40%, minimum of 1) using `randomize_nb_elements()`.

    Under the hood, `words()` is used to generate the words, so the argument `ext_word_list` works in the same way here as it would in that method.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentence(nb_words=10)
        ...
        'Sau của làm để nào đúng nếu tại có như.'
        'Cho cho để của từ với chỉ vài trong để như để.'
        'Tại để nhưng hơn các nhiều tại chưa làm của.'
        'Các để bên chỉ đúng vẫn hơn như được hơn hoặc có các.'
        'Này nhiều của vì một bạn để tự.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentence(nb_words=10, variable_nb_words=False)
        ...
        'Bên sau của làm để nào đúng nếu tại có.'
        'Như để nơi giống vẫn theo như gần mỗi như.'
        'Bạn hơn như điều tại để nhưng hơn các nhiều.'
        'Tại chưa làm của cách đó hơn nào như vậy.'
        'Cái thế chưa theo được chưa người lớn này nhiều.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentence(nb_words=10, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'Jkl def def ghi def jkl def def ghi jkl.'
        'Abc abc abc jkl jkl ghi ghi ghi abc abc abc jkl.'
        'Def abc def ghi jkl jkl def jkl def jkl.'
        'Jkl abc jkl ghi jkl ghi ghi jkl def ghi ghi abc jkl.'
        'Abc jkl jkl def abc def ghi jkl.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentence(nb_words=10, variable_nb_words=True, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'Jkl def def ghi def jkl def def ghi jkl.'
        'Abc abc abc jkl jkl ghi ghi ghi abc abc abc jkl.'
        'Def abc def ghi jkl jkl def jkl def jkl.'
        'Jkl abc jkl ghi jkl ghi ghi jkl def ghi ghi abc jkl.'
        'Abc jkl jkl def abc def ghi jkl.'

  sentences(nb: int = 3, ext_word_list: Sequence[str] | None = None) → List[str]

    Generate a list of sentences.

    This method uses `sentence()` under the hood to generate sentences, and the `nb` argument controls exactly how many sentences the list will contain. The `ext_word_list` argument works in exactly the same way as well.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentences()
        ...
        ['Sau của làm để nào đúng.', 'Nhiều thì thay đã cho.', 'Giống vẫn theo như.']
        ['Như bạn hơn như điều tại để nhưng.', 'Dưới không từ vì giữa có các các.', 'Hơn nào như vậy.']
        ['Hơn như được.', 'Hoặc có các đã của trong.', 'Vì một bạn để tự cũng cách.']
        ['Cách mỗi cách nhiều.', 'Cách đang để của bạn này người như.', 'Hơn đến tại.']
        ['Vậy cho trong và.', 'Như tự cách cũng.', 'Nơi mỗi để thay vài từng có.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentences(nb=5)
        ...
        ['Sau của làm để nào đúng.', 'Nhiều thì thay đã cho.', 'Giống vẫn theo như.', 'Như bạn hơn như điều tại để nhưng.', 'Dưới không từ vì giữa có các các.']
        ['Hơn nào như vậy.', 'Hơn như được.', 'Hoặc có các đã của trong.', 'Vì một bạn để tự cũng cách.', 'Cách mỗi cách nhiều.']
        ['Cách đang để của bạn này người như.', 'Hơn đến tại.', 'Vậy cho trong và.', 'Như tự cách cũng.', 'Nơi mỗi để thay vài từng có.']
        ['Thế đi hoặc gần thì được cũng.', 'Dưới bên này khiến với đã đúng được.', 'Để trong hoặc và.', 'Dưới số vài như với người như.', 'Cũng về gần là.']
        ['Không nhiều hơn.', 'Sẽ của số đó nhưng để làm.', 'Như nếu vì có tại.', 'Để từ không thì khiến bên các của.', 'Nhiều có vậy bên khi.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentences(nb=5, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['Jkl def def ghi def jkl.', 'Jkl def jkl abc abc.', 'Jkl ghi def jkl.', 'Jkl def ghi jkl ghi def abc def.', 'Ghi abc ghi def ghi abc jkl jkl.']
        ['Ghi def jkl ghi.', 'Ghi jkl def.', 'Ghi abc jkl abc jkl abc.', 'Def abc def ghi jkl abc ghi.', 'Ghi jkl ghi jkl.']
        ['Ghi def abc jkl def abc abc jkl.', 'Ghi ghi def.', 'Ghi abc abc abc.', 'Jkl jkl ghi def.', 'Def jkl jkl jkl ghi jkl ghi.']
        ['Def ghi ghi jkl def def abc.', 'Ghi jkl abc ghi abc abc jkl def.', 'Abc abc ghi abc.', 'Ghi jkl ghi abc abc abc jkl.', 'Def def jkl abc.']
        ['Abc jkl ghi.', 'Abc jkl jkl abc def abc def.', 'Abc def def abc def.', 'Abc jkl abc def ghi jkl jkl abc.', 'Jkl abc ghi jkl def.']

  text(max_nb_chars: int = 200, ext_word_list: Sequence[str] | None = None) → str

    Generate a text string.

    The `max_nb_chars` argument controls the approximate number of characters the text string will have, and depending on its value, this method may use either `words()`, `sentences()`, or `paragraphs()` for text generation. The `ext_word_list` argument works in exactly the same way it would in any of those methods.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(max_nb_chars=20)
        ...
        'Dưới điều như nhưng.'
        'Của đến thế đúng có.'
        'Thì như đã tại đã.'
        'Của như từ này để.'
        'Với cách trong các.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(max_nb_chars=80)
        ...
        'Sau của làm để nào đúng. Nhiều thì thay đã cho. Giống vẫn theo như.'
        'Dưới không từ vì giữa có các các. Hơn nào như vậy. Hơn như được.'
        'Vì một bạn để tự cũng cách. Cách mỗi cách nhiều.'
        'Hơn đến tại. Vậy cho trong và. Như tự cách cũng. Nơi mỗi để thay vài từng có.'
        'Dưới bên này khiến với đã đúng được. Để trong hoặc và.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(max_nb_chars=160)
        ...
        'Và nhiều tại các như nhiều. Có như để nơi giống vẫn. Từ với chỉ vài trong.\nNhư điều tại để. Bạn dưới không từ vì giữa.'
        'Vì một bạn để tự cũng cách. Cách mỗi cách nhiều.\nCó vì vài cũng lớn đang người. Là gần làm như. Như tự bên như. Điều bên giữa giữa này sẽ vậy.'
        'Vài như với người như với để. Là đó từng người. Tại hơn có vậy.\nVẫn bên như như nếu vì. Để và để từ. Làm như tại như lớn.\nĐúng tôi tôi với. Vài vì của tại.'
        'Giống như một vài hoặc tôi. Dưới mà như lớn của.\nCủa đến và vì làm tôi với. Như hơn cái và được bên và. Người từ dưới một hơn gần.'
        'Của với làm đi mỗi đi cũng. Nơi đó và điều.\nSố số như và giống hoặc. Chỉ như dưới mà với sẽ có. Cho nơi khi.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'Abc jkl def jkl jkl jkl. Ghi jkl ghi def jkl ghi. Jkl ghi ghi ghi abc.\nJkl ghi def abc. Def ghi abc ghi def ghi.\nJkl abc jkl ghi jkl ghi ghi. Abc def jkl abc ghi abc.'
        'Ghi def ghi def ghi def abc. Abc jkl def abc. Jkl jkl jkl jkl. Ghi jkl ghi ghi abc abc ghi.\nDef def ghi ghi jkl def def abc. Ghi jkl abc ghi abc abc jkl def. Abc abc ghi abc.'
        'Ghi jkl abc abc def def. Ghi abc abc jkl. Def jkl def jkl ghi.\nJkl abc abc ghi. Ghi def abc def.\nJkl jkl ghi def ghi abc ghi. Ghi def abc def abc jkl def. Ghi ghi jkl jkl abc.'
        'Def ghi abc def def abc ghi. Jkl ghi abc abc def jkl abc. Abc jkl ghi abc ghi jkl.\nDef abc ghi abc jkl ghi. Abc ghi abc def. Abc jkl def abc.\nJkl abc def ghi jkl ghi abc. Def abc abc ghi.'
        'Def ghi abc abc. Def def ghi def def abc abc abc. Ghi def jkl def abc ghi def.\nAbc abc def abc def ghi. Jkl ghi def jkl. Abc abc ghi abc.\nDef ghi def def.'

  texts(nb_texts: int = 3, max_nb_chars: int = 200, ext_word_list: Sequence[str] | None = None) → List[str]

    Generate a list of text strings.

    The `nb_texts` argument controls how many text strings the list will contain, and this method uses `text()` under the hood for text generation, so the two remaining arguments, `max_nb_chars` and `ext_word_list` will work in exactly the same way as well.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.texts(nb_texts=5)
        ...
        ['Và nhiều tại các như nhiều. Có như để nơi giống vẫn. Từ với chỉ vài trong.\nNhư điều tại để. Bạn dưới không từ vì giữa.\nCác để bên chỉ đúng vẫn hơn. Theo được chưa người lớn này.', 'Có vì vài cũng lớn đang người. Là gần làm như. Như tự bên như. Điều bên giữa giữa này sẽ vậy.\nNơi thế đi hoặc gần thì được cũng. Dưới bên này khiến với đã đúng được. Để trong hoặc và.', 'Vẫn bên như như nếu vì. Để và để từ. Làm như tại như lớn.\nĐúng tôi tôi với. Vài vì của tại.\nNhư các đi cũng đến trong điều. Khiến khi và nơi này từng thì. Vậy vài thay để cho.', 'Của đến và vì làm tôi với. Như hơn cái và được bên và. Người từ dưới một hơn gần.\nBạn sẽ chỉ cái như với. Người hơn không nếu. Để để cũng một.\nCủa với làm đi mỗi đi cũng. Nơi đó và điều.', 'Khi vẫn và tôi. Đang cũng cách đang tại này và người. Hơn nếu bên nếu cũng từ tại.\nVới với thế là khi điều. Các vẫn mà gần. Như một giống có.\nCũng giữa vì thế.']
        ['Gần trong nào điều như thế các được. Từ dưới như cách tự cái chỉ.\nLà trong làm đúng bên có. Như một chưa và đã và đó. Được tôi trong đến nhiều để như.', 'Lớn được thế làm như trong mà. Có dưới với đang như có.\nCủa thế chưa chỉ vậy trong gần.\nHơn cũng và. Trong đó vài cho được hoặc đi. Mà trong thế như hơn.', 'Từng như và theo. Số đến lớn. Đã trong thay vẫn để. Của nếu cũng nhưng lớn các tự.\nĐể trong khiến là. Nhưng của thế chưa được theo thì. Về là thì cái.\nNhư thay sẽ không vậy số. Giống đang điều tự.', 'Dưới người từ cũng có tôi như. Của bạn này giống.\nCủa và cho đó một như. Nếu của tự vài nếu thì.\nDưới dưới với mà cái nhiều. Vì về từng để người cũng.', 'Tại đã cũng gần nếu hơn nhưng giống. Vậy sau này sau. Dưới đó nơi vậy cái.\nThay chỉ vì giống thì chưa vậy. Vài là đúng nếu khi. Chưa thay sau như chưa đang cho.']
        ['Nếu giống có vẫn đó tại. Để gần điều.\nCái và vẫn từ như hoặc. Cho lớn người nhưng chỉ.\nĐược đi điều trong. Giữa cho các vì. Nhưng thế hơn của vì không.\nLà dưới chưa về khiến vậy.', 'Khi và có thì đang. Cho đúng điều. Cũng các rất khi để như đúng được.\nTheo giữa người một chưa khi. Theo hơn nếu giữa cũng. Khi chỉ và tự như rất hơn.\nGần rất với một để sau.', 'Chỉ trong giữa tại dưới. Này với đúng để khiến. Đã như từ cái với.\nVới đi với. Thì vậy hoặc đến đã như này. Nếu được mà tại có cho đó.\nVề dưới mỗi như tôi của. Cho sẽ các thế. Này cho này mà hơn.', 'Hơn hoặc như đúng. Số sẽ bạn giống theo chưa.\nKhi tôi đó lớn có. Trong đó vẫn đó và đã đến như.\nNhiều của thay sẽ nhưng thì. Đi hơn đúng nào.\nThay với của gần hoặc sau.', 'Cũng dưới chỉ hơn và khi khiến mà. Tự là một đang trong này thì khiến. Khi của số đó với đang.\nTrong lớn làm. Rất hơn nào. Và nơi từ theo điều hoặc tự.']
        ['Để mỗi có và tôi khi. Vẫn được đúng vài từ.\nLớn vì khi cái.\nGiống người cách nhưng từng. Với có dưới có. Dưới cách cũng nhưng bạn đó trong.\nVới từ từ người đúng. Bên giống tôi đến.', 'Lớn này chỉ chưa. Từng tôi tự tự. Số theo như trong hơn để.\nCái theo sau cũng trong vẫn cũng.\nTại như với chỉ được đó tại giữa.\nLớn thì cái người.', 'Thay các chỉ chỉ. Hơn giữa như.\nTừng khi có một từ mỗi. Của được chỉ đúng giữa. Từ tôi như từ và có đi. Thay bạn số.\nHơn mỗi giữa chỉ các cho trong. Cách như khi mỗi.', 'Không của có bạn cũng có sau chỉ. Các tự nào vì hơn vẫn. Vậy từ của của là.\nTừng có để là đó. Vẫn đi đó rất từ chưa.\nMột có chưa đúng để làm đi. Bên một thì để. Tôi giữa của.\nMà tôi cách.', 'Đã như tại như cho lớn. Tôi có điều.\nĐó như để là. Lớn trong trong đúng.\nVì các được theo cho để.\nNhư nào đến nhiều nhưng vì. Mà các này tại các như theo. Thay mà đó hơn tại.']
        ['Tự chỉ hơn tôi khi của. Các chưa sau cũng về trong thì tại. Giống không từng của có nếu dưới.\nNhưng điều làm hơn thì cho hơn. Là lớn tại đi.\nCách từ của sẽ đã giữa. Thì như khiến chỉ khi với nhiều.', 'Cũng trong hoặc vài hơn giữa làm. Của một là với về hơn bạn vậy. Có theo tại trong các từ. Trong để thay là.\nNào đến vì điều làm có các. Thay lớn các tự.', 'Như như cũng từng từ làm đã. Nếu về để đến.\nCó không là nào. Thế điều tự từ như khi để cái.\nBên bạn đã thế số để khi. Nếu của khiến nhiều.\nĐang không trong đến trong. Mà cho trong nào để.', 'Cũng mà cũng giữa gần. Như đã nào bạn này giữa cái. Bạn thay đã nhiều gần lớn và.\nKhông được cũng của về. Từng cái với cho như.', 'Đó trong trong cho sẽ. Không để với cũng các với.\nCủa cách cho theo một để mỗi. Rất thì trong của vì. Từ từng trong.\nNày tại cho vì về tại. Nhiều giữa một nếu.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.texts(nb_texts=5, max_nb_chars=50)
        ...
        ['Sau của làm để nào đúng. Nhiều thì thay đã cho.', 'Như bạn hơn như điều tại để nhưng.', 'Hơn nào như vậy. Hơn như được.', 'Vì một bạn để tự cũng cách. Cách mỗi cách nhiều.', 'Hơn đến tại. Vậy cho trong và. Như tự cách cũng.']
        ['Thế đi hoặc gần thì được cũng.', 'Để trong hoặc và. Dưới số vài như với người như.', 'Không nhiều hơn. Sẽ của số đó nhưng để làm.', 'Để từ không thì khiến bên các của.', 'Với các đến đó điều.']
        ['Khiến khi và nơi này từng thì.', 'Cũng của đi cái không. Tôi đã vì chỉ vậy như.', 'Tôi có hoặc. Với thế từ giống như thế bạn.', 'Gần nào vậy bạn. Đó giống gần vậy hơn.', 'Tại các vẫn đó. Của với làm đi mỗi đi cũng.']
        ['Bạn về lớn để để từng hơn.', 'Cho nơi khi. Hơn khi vẫn và tôi gần.', 'Bạn để hơn. Nào được của để như.', 'Khiến thay các vẫn mà gần. Như một giống có.', 'Đúng chỉ sẽ một đã từ có. Nhưng thì có chưa.']
        ['Thế làm dưới từ. Vẫn cũng rất về như.', 'Như thế các được thế thế. Cách tự cái chỉ giống.', 'Đang chỉ tại của giữa các như cho.', 'Nhiều để như để lớn vậy của.', 'Hơn này chưa đó thay khiến. Để theo như chưa số.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.texts(nb_texts=5, max_nb_chars=50, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['Jkl def def ghi def jkl. Jkl def jkl abc abc.', 'Jkl def ghi jkl ghi def abc def.', 'Ghi def jkl ghi. Ghi jkl def.', 'Def abc def ghi jkl abc ghi. Ghi jkl ghi jkl.', 'Ghi ghi def. Ghi abc abc abc. Jkl jkl ghi def.']
        ['Def ghi ghi jkl def def abc.', 'Abc abc ghi abc. Ghi jkl ghi abc abc abc jkl.', 'Abc jkl ghi. Abc jkl jkl abc def abc def.', 'Abc jkl abc def ghi jkl jkl abc.', 'Abc jkl ghi abc ghi. Jkl jkl ghi def ghi abc ghi.']
        ['Ghi ghi jkl jkl abc. Def def ghi abc abc.', 'Def ghi def. Abc abc ghi.', 'Abc jkl jkl def ghi jkl jkl. Jkl def ghi def.', 'Abc ghi jkl def jkl. Def jkl ghi abc.', 'Def abc abc ghi. Def def ghi jkl jkl jkl ghi.']
        ['Abc def def. Ghi def ghi abc abc jkl.', 'Def jkl ghi. Def def def abc jkl.', 'Ghi jkl jkl ghi def jkl. Abc abc ghi abc.', 'Jkl ghi abc abc abc jkl ghi. Def def abc jkl.', 'Def def ghi jkl. Ghi abc def def jkl.']
        ['Jkl def jkl def def def. Ghi jkl abc ghi ghi.', 'Def ghi def jkl ghi jkl abc abc.', 'Jkl ghi jkl ghi ghi ghi jkl.', 'Ghi abc jkl abc jkl ghi. Ghi def abc jkl jkl.', 'Def jkl abc abc def. Jkl ghi abc ghi jkl def abc.']

  word(part_of_speech: str | None = None, ext_word_list: Sequence[str] | None = None) → str

    Generate a word.

    This method uses `words()` under the hood with the `nb` argument set to `1` to generate the result.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.word()
        ...
        'dưới'
        'điều'
        'như'
        'nhưng'
        'bên'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.word(ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        'jkl'
        'jkl'
        'abc'
        'ghi'
        'jkl'

  words(nb: int = 3, ext_word_list: List[str] | None = None, part_of_speech: str | None = None, unique: bool = False) → List[str]

    Generate a tuple of words.

    The `nb` argument controls the number of words in the resulting list, and if `ext_word_list` is provided, words from that list will be used instead of those from the locale provider’s built-in word list.

    if `word_list` is not provided, the method will use a default value of None, which will result in the method calling the `get_words_list` method to get the word list. If `word_list` is provided, the method will use the provided list.

    If `unique` is `True`, this method will return a list containing unique words. Under the hood, `random_sample()` will be used for sampling without replacement. If `unique` is `False`, `random_choices()` is used instead, and the list returned may contain duplicates.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.words()
        ...
        ['bên', 'sau', 'của']
        ['làm', 'để', 'nào']
        ['đúng', 'nếu', 'tại']
        ['có', 'như', 'để']
        ['nơi', 'giống', 'vẫn']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.words(nb=5)
        ...
        ['bên', 'sau', 'của', 'làm', 'để']
        ['nào', 'đúng', 'nếu', 'tại', 'có']
        ['như', 'để', 'nơi', 'giống', 'vẫn']
        ['theo', 'như', 'gần', 'mỗi', 'như']
        ['bạn', 'hơn', 'như', 'điều', 'tại']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.words(nb=5, ext_word_list=['abc', 'def', 'ghi', 'jkl'])
        ...
        ['jkl', 'jkl', 'def', 'def', 'ghi']
        ['def', 'jkl', 'def', 'def', 'ghi']
        ['jkl', 'ghi', 'def', 'jkl', 'ghi']
        ['def', 'jkl', 'jkl', 'jkl', 'jkl']
        ['def', 'ghi', 'jkl', 'ghi', 'def']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.words(nb=4, ext_word_list=['abc', 'def', 'ghi', 'jkl'], unique=True)
        ...
        ['jkl', 'def', 'abc', 'ghi']
        ['jkl', 'def', 'ghi', 'abc']
        ['ghi', 'jkl', 'abc', 'def']
        ['ghi', 'abc', 'jkl', 'def']
        ['def', 'jkl', 'abc', 'ghi']

## `faker.providers.person`

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

  Bases: `Provider`

  first_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name()
        ...
        'Jane'
        'Jane'
        'John'
        'Jane'
        'Jane'

  first_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_female()
        ...
        'Ánh'
        'Hồng'
        'Vi'
        'Xuân'
        'Hồng'

  first_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_male()
        ...
        'Thành'
        'Huy'
        'Hưng'
        'Anh'
        'Minh'

  first_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_nonbinary()
        ...
        'Jane'
        'Jane'
        'John'
        'Jane'
        'Jane'

  first_name_unisex() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_unisex()
        ...
        'Kim'
        'Kim'
        'An'
        'Hạnh'
        'Phương'

  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()
        ...
        'Bùi'
        'Bùi'
        'Nguyễn'
        'Vũ'
        'Mai'

  last_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_female()
        ...
        'Bùi'
        'Bùi'
        'Nguyễn'
        'Vũ'
        'Mai'

  last_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_male()
        ...
        'Bùi'
        'Bùi'
        'Nguyễn'
        'Vũ'
        'Mai'

  last_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_nonbinary()
        ...
        'Bùi'
        'Bùi'
        'Nguyễn'
        'Vũ'
        'Mai'

  middle_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.middle_name()
        ...
        'Hữu'
        'Bảo'
        'Thị'
        'Đức'
        'Mai Bảo'

  name() → str
    Example:

      ‘John Doe’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name()
        ...
        'Kim Thị Vũ'
        'Quý ông Khoa Dương'
        'Nhiên Hoàng Mai'
        'Bà Bảo Trần'
        'Tùng Hoàng'

  name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_female()
        ...
        'Quý cô Ngọc Vũ'
        'Quý cô Xuân Vũ'
        'Bà Duyên Phạm'
        'Hạnh Lê'
        'Duyên Vũ'

  name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_male()
        ...
        'Quý ông Hưng Vũ'
        'Quý ông Khoa Dương'
        'Khoa Hoàng Mai'
        'Khoa Trí Trần'
        'Phương Trí Vũ'

  name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_nonbinary()
        ...
        'Kim Thị Vũ'
        'Quý ông Khoa Dương'
        'Nhiên Hoàng Mai'
        'Bà Bảo Trần'
        'Tùng Hoàng'

  prefix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix()
        ...
        'Quý cô'
        'Bác'
        'Quý cô'
        'Quý cô'
        'Chị'

  prefix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_female()
        ...
        'Quý cô'
        'Quý cô'
        'Cô'
        'Bà'
        'Quý cô'

  prefix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_male()
        ...
        'Quý ông'
        'Quý ông'
        'Ông'
        'Bác'
        'Quý ông'

  prefix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_nonbinary()
        ...
        'Quý cô'
        'Bác'
        'Quý cô'
        'Quý cô'
        'Chị'

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

  Bases: `Provider`

  Implement phone_number provider for `vi_VN` locale. # Source : https://vi.wikipedia.org/wiki/M%C3%A3_%C4%91i%E1%BB%87n_tho%E1%BA%A1i_Vi%E1%BB%87t_Nam

  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()
        ...
        '(06)604-8764'
        '05 9382421'
        '+84-48-924115'
        '08 1565938'
        '07 8408016'