Locale vi_VN¶
faker.providers.address
¶
- class faker.providers.address.vi_VN.Provider(generator: Any)¶
Bases:
Provider
Provider for generating Vietnamese addresses. Sources:
- 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'
- 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'
faker.providers.automotive
¶
- class faker.providers.automotive.vi_VN.Provider(generator: Any)¶
Bases:
Provider
Implement automotive provider for
vi_VN
locale.Sources:
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 argumenthue
controls the H value according to the following rules:If the value is a number from
0
to360
, 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 byhue
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 in a human-friendly way.
- 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)
- color_hsv(hue: str | float | int | Sequence[int] | None = None, luminosity: str | None = None) Tuple[int, int, int] ¶
Generate a HSV color tuple in a human-friendly way.
- 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)
- 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 in a human-friendly way.
- 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)
- 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 in a human-friendly way.
- 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)
- 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)'
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'
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'
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' 'PM' 'AM' 'PM' 'PM'
- century() str ¶
- Example:
‘XVII’
- 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)
- Example:
‘2008-11-27’
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date() ... '2016-07-22' '2011-10-15' '1993-03-10' '1984-04-10' '1998-03-10'
- 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 – Defaults to 30 years ago
end_date – Defaults to “today”
- Example:
Date(‘1999-02-02’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_between() ... datetime.date(2020, 6, 18) datetime.date(2017, 11, 13) datetime.date(2007, 9, 30) datetime.date(2002, 11, 24) datetime.date(2010, 6, 20)
- date_between_dates(date_start: date | datetime | timedelta | str | int | None = None, date_end: date | datetime | timedelta | str | int | None = None) date ¶
Takes two Date objects and returns a random date between the two given dates. Accepts Date or datetime objects
- Parameters:
date_start – Date
date_end – Date
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_between_dates() ... datetime.date(2025, 2, 17) datetime.date(2025, 2, 17) datetime.date(2025, 2, 17) datetime.date(2025, 2, 17) datetime.date(2025, 2, 17)
- date_object(end_datetime: datetime | None = None) date ¶
Get a date object between January 1, 1970 and now
- Example:
datetime.date(2016, 9, 20)
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_object() ... datetime.date(2016, 7, 22) datetime.date(2011, 10, 15) datetime.date(1993, 3, 10) datetime.date(1984, 4, 10) datetime.date(1998, 3, 10)
- 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.
- Example:
Date(‘1979-02-02’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_of_birth() ... datetime.date(2007, 1, 31) datetime.date(1997, 1, 19) datetime.date(1957, 12, 1) datetime.date(1939, 3, 2) datetime.date(1968, 6, 9)
- 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
after_today – include days in current century after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_century() ... datetime.date(2021, 3, 21) datetime.date(2019, 1, 18) datetime.date(2010, 7, 27) datetime.date(2006, 7, 4) datetime.date(2012, 11, 5)
- 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
after_today – include days in current decade after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_decade() ... datetime.date(2024, 5, 1) datetime.date(2023, 11, 21) datetime.date(2022, 2, 27) datetime.date(2021, 4, 30) datetime.date(2022, 8, 16)
- 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
after_today – include days in current month after today
- Example:
dtdate(‘2012-04-04’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_month() ... datetime.date(2025, 2, 14) datetime.date(2025, 2, 13) datetime.date(2025, 2, 7) datetime.date(2025, 2, 5) datetime.date(2025, 2, 9)
- 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
after_today – include days in current year after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_year() ... datetime.date(2025, 2, 9) datetime.date(2025, 2, 5) datetime.date(2025, 1, 20) datetime.date(2025, 1, 13) datetime.date(2025, 1, 25)
- 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 now
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2005-08-16 20:39:21’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time() ... datetime.datetime(2016, 7, 22, 2, 32, 16, 802440) datetime.datetime(2011, 10, 15, 21, 53, 58, 811224) datetime.datetime(1993, 3, 10, 0, 59, 38, 625127) datetime.datetime(1984, 4, 10, 19, 13, 57, 968546) datetime.datetime(1998, 3, 10, 12, 41, 21, 949913)
- 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, 001 and now
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1265-03-22 21:15:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_ad() ... datetime.datetime(1710, 3, 23, 5, 7, 12, 272293) datetime.datetime(1535, 3, 15, 22, 0, 12, 694595) datetime.datetime(852, 4, 17, 3, 22, 30, 669121) datetime.datetime(525, 1, 30, 21, 20, 38, 938400) datetime.datetime(1035, 11, 21, 21, 7, 2, 942116)
- 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 – Defaults to 30 years ago
end_date – Defaults to “now”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_between() ... datetime.datetime(2020, 6, 19, 6, 41, 36, 236214) datetime.datetime(2017, 11, 14, 20, 6, 22, 808743) datetime.datetime(2007, 10, 2, 1, 36, 3, 361449) datetime.datetime(2002, 11, 25, 18, 46, 39, 49189) datetime.datetime(2010, 6, 21, 22, 3, 35, 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 ¶
Takes two datetime objects and returns a random datetime between the two given datetimes. Accepts datetime objects.
- Parameters:
datetime_start – datetime
datetime_end – datetime
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_between_dates() ... datetime.datetime(2025, 2, 17, 23, 30, 53) datetime.datetime(2025, 2, 17, 23, 30, 53) datetime.datetime(2025, 2, 17, 23, 30, 53) datetime.datetime(2025, 2, 17, 23, 30, 53) datetime.datetime(2025, 2, 17, 23, 30, 53)
- 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
after_now – include days in current century after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_century() ... datetime.datetime(2021, 3, 22, 18, 36, 45, 175820) datetime.datetime(2019, 1, 19, 0, 8, 46, 454565) datetime.datetime(2010, 7, 27, 20, 7, 35, 740595) datetime.datetime(2006, 7, 4, 20, 24, 46, 802) datetime.datetime(2012, 11, 6, 11, 47, 54, 606016)
- 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
after_now – include days in current decade after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_decade() ... datetime.datetime(2024, 5, 2, 6, 34, 24, 742083) datetime.datetime(2023, 11, 22, 3, 34, 49, 129987) datetime.datetime(2022, 2, 27, 13, 31, 1, 356045) datetime.datetime(2021, 4, 30, 11, 7, 41, 219897) datetime.datetime(2022, 8, 16, 15, 6, 51, 664776)
- 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
after_now – include days in current month after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_month() ... datetime.datetime(2025, 2, 15, 8, 6, 51, 610545) datetime.datetime(2025, 2, 13, 20, 52, 39, 280697) datetime.datetime(2025, 2, 8, 3, 23, 20, 799373) datetime.datetime(2025, 2, 5, 9, 30, 44, 595268) datetime.datetime(2025, 2, 9, 16, 21, 7, 113808)
- 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
after_now – include days in current year after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_year() ... datetime.datetime(2025, 2, 10, 12, 21, 51, 97670) datetime.datetime(2025, 2, 6, 8, 47, 44, 353532) datetime.datetime(2025, 1, 21, 4, 17, 39, 721470) datetime.datetime(2025, 1, 13, 10, 8, 47, 219252) datetime.datetime(2025, 1, 25, 12, 44, 25, 327522)
- day_of_month() str ¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.day_of_month() ... '22' '15' '10' '10' '10'
- day_of_week()¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.day_of_week() ... 'Thứ Sáu' 'Thứ Bảy' 'Thứ Tư' 'Thứ Ba' 'Thứ Ba'
- future_date(end_date: date | datetime | timedelta | str | int = '+30d', tzinfo: tzinfo | None = None) date ¶
Get a Date object based on a random date between 1 day from now and a given date. Accepts date strings that can be recognized by strtotime().
- Parameters:
end_date – Defaults to “+30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
dtdate(‘2030-01-01’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.future_date() ... datetime.date(2025, 3, 14) datetime.date(2025, 3, 11) datetime.date(2025, 3, 2) datetime.date(2025, 2, 25) datetime.date(2025, 3, 4)
- 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. Accepts date strings that can be recognized by strtotime().
- Parameters:
end_date – Defaults to “+30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.future_datetime() ... datetime.datetime(2025, 3, 15, 7, 29, 54, 594731) datetime.datetime(2025, 3, 12, 17, 14, 31, 54467) datetime.datetime(2025, 3, 2, 14, 19, 35, 116942) datetime.datetime(2025, 2, 25, 17, 56, 5, 957843) datetime.datetime(2025, 3, 5, 7, 37, 57, 566513)
- iso8601(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, sep: str = 'T', timespec: str = 'auto') str ¶
Get a timestamp in ISO 8601 format (or one of its profiles).
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
sep – separator between date and time, defaults to ‘T’
timespec – format specifier for the time part, defaults to ‘auto’ - see datetime.isoformat() documentation
- Example:
‘2003-10-21T16:05:52+0000’
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.iso8601() ... '2016-07-22T02:32:16.802440' '2011-10-15T21:53:58.811224' '1993-03-10T00:59:38.625127' '1984-04-10T19:13:57.968546' '1998-03-10T12:41:21.949913'
- month() str ¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.month() ... '07' '10' '03' '04' '03'
- month_name()¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.month_name() ... 'Tháng Bảy' 'Tháng Mười' 'Tháng Ba' 'Tháng Tư' 'Tháng Ba'
- 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. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to “-30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
dtdate(‘1999-02-02’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.past_date() ... datetime.date(2025, 2, 11) datetime.date(2025, 2, 8) datetime.date(2025, 1, 30) datetime.date(2025, 1, 25) datetime.date(2025, 2, 1)
- 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. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to “-30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.past_datetime() ... datetime.datetime(2025, 2, 13, 7, 29, 53, 594731) datetime.datetime(2025, 2, 10, 17, 14, 30, 54467) datetime.datetime(2025, 1, 31, 14, 19, 34, 116942) datetime.datetime(2025, 1, 26, 17, 56, 4, 957843) datetime.datetime(2025, 2, 3, 7, 37, 56, 566513)
- pytimezone(*args: Any, **kwargs: Any) tzinfo | None ¶
Generate a random timezone (see faker.timezone for any args) and return as a python object usable as a tzinfo to datetime or other fakers.
- Example:
faker.pytimezone()
- Returns:
dateutil.tz.tz.tzfile
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.pytimezone() ... tzfile('/usr/share/zoneinfo/Indian/Maldives') tzfile('/usr/share/zoneinfo/America/Barbados') tzfile('/usr/share/zoneinfo/Europe/Stockholm') tzfile('/usr/share/zoneinfo/Africa/Windhoek') tzfile('/usr/share/zoneinfo/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
- Example:
‘15:02:34’
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time() ... '02:32:16' '21:53:58' '00:59:38' '19:13:57' '12:41:21'
- time_delta(end_datetime: date | datetime | timedelta | str | int | None = None) timedelta ¶
Get a timedelta object
- 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)
- time_object(end_datetime: date | datetime | timedelta | str | int | None = None) time ¶
Get a time object
- Example:
datetime.time(15, 56, 56, 772876)
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time_object() ... datetime.time(2, 32, 16, 802440) datetime.time(21, 53, 58, 811224) datetime.time(0, 59, 38, 625127) datetime.time(19, 13, 57, 968546) datetime.time(12, 41, 21, 949913)
- 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 byprecision
.distrib
is a callable that accepts<datetime>
and returns<value>
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time_series() ... <generator object Provider.time_series at 0x7181c2665a20> <generator object Provider.time_series at 0x7181c2665a20> <generator object Provider.time_series at 0x7181c2665a20> <generator object Provider.time_series at 0x7181c2665a20> <generator object Provider.time_series at 0x7181c2665a20>
- 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.
- Example:
1061306726.6
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.unix_time() ... 1469154736.8024402 1318715638.8112245 731725178.625127 450472437.9685457 889533681.9499133
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'
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. Ifext_word_list
is provided, then the value ofpart_of_speech
is ignored.part_of_speech
is a parameter that defines to what part of speech the returned word belongs. Ifext_word_list
is notNone
, thenpart_of_speech
is ignored. If the value ofpart_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 largenb
can exhaust said lists ifunique
isTrue
, 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 settingvariable_nb_sentences
toFalse
will generate the exact amount, while setting it toTrue
(default) will generate a random amount (+/-40%, minimum of 1) usingrandomize_nb_elements()
.Under the hood,
sentences()
is used to generate the sentences, so the argumentext_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 thenb
argument controls exactly how many sentences the list will contain. Theext_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 settingvariable_nb_words
toFalse
will generate the exact amount, while setting it toTrue
(default) will generate a random amount (+/-40%, minimum of 1) usingrandomize_nb_elements()
.Under the hood,
words()
is used to generate the words, so the argumentext_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 thenb
argument controls exactly how many sentences the list will contain. Theext_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 eitherwords()
,sentences()
, orparagraphs()
for text generation. Theext_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 usestext()
under the hood for text generation, so the two remaining arguments,max_nb_chars
andext_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 thenb
argument set to1
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 ifext_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 theget_words_list
method to get the word list. Ifword_list
is provided, the method will use the provided list.If
unique
isTrue
, this method will return a list containing unique words. Under the hood,random_sample()
will be used for sampling without replacement. Ifunique
isFalse
,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() ... '' '' '' '' ''
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'