# Locale ar_AA

## `faker.providers.date_time`

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

  Bases: `Provider`

  am_pm() → str
    Examples:

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

  century() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.century()
        ...
        'الثالث عشر'
        'الرابع عشر'
        'الثاني'
        'التاسع'
        'الثامن عشر'

  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, 3, 38, 345325)
        datetime.datetime(2012, 6, 7, 1, 35, 24, 164934)
        datetime.datetime(1993, 7, 18, 12, 32, 56, 68790)
        datetime.datetime(1984, 6, 30, 3, 6, 49, 946267)
        datetime.datetime(1998, 8, 16, 3, 36, 55, 80307)

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

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

    Parameters:

      - tzinfo – timezone, instance of datetime.tzinfo subclass

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

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

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

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_ad()
        ...
        datetime.datetime(1710, 12, 10, 4, 38, 33, 815178)
        datetime.datetime(1535, 11, 6, 1, 41, 38, 48302)
        datetime.datetime(852, 8, 25, 14, 55, 48, 112785)
        datetime.datetime(525, 4, 21, 5, 13, 30, 916122)
        datetime.datetime(1036, 4, 28, 12, 2, 36, 72510)

  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, 38, 35, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 21, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 2, 361449)
        datetime.datetime(2003, 10, 2, 0, 43, 38, 49189)
        datetime.datetime(2011, 4, 28, 4, 0, 34, 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, 27, 52)
        datetime.datetime(2025, 12, 25, 5, 27, 52)
        datetime.datetime(2025, 12, 25, 5, 27, 52)
        datetime.datetime(2025, 12, 25, 5, 27, 52)
        datetime.datetime(2025, 12, 25, 5, 27, 52)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.date_time_between_dates(datetime_start='-30y', datetime_end='now')
        ...
        datetime.datetime(2021, 4, 25, 12, 38, 35, 236214)
        datetime.datetime(2018, 9, 21, 2, 3, 21, 808743)
        datetime.datetime(2008, 8, 7, 7, 33, 2, 361449)
        datetime.datetime(2003, 10, 2, 0, 43, 38, 49189)
        datetime.datetime(2011, 4, 28, 4, 0, 34, 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, 27, 49, 441207)
        datetime.datetime(2026, 9, 28, 1, 30, 38, 993625)
        datetime.datetime(2026, 5, 27, 20, 5, 38, 345382)
        datetime.datetime(2026, 3, 29, 19, 3, 59, 534973)
        datetime.datetime(2026, 6, 29, 23, 10, 33, 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, 6, 718705)
        datetime.datetime(2019, 9, 11, 3, 50, 11, 808275)
        datetime.datetime(2010, 12, 5, 7, 40, 53, 184258)
        datetime.datetime(2006, 9, 23, 4, 17, 37, 978523)
        datetime.datetime(2013, 4, 14, 2, 43, 27, 736410)

        >>> 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, 27, 449981)
        datetime.datetime(2082, 1, 31, 8, 27, 26, 814614)
        datetime.datetime(2057, 2, 10, 6, 49, 50, 738490)
        datetime.datetime(2045, 2, 22, 23, 35, 37, 925999)
        datetime.datetime(2063, 10, 29, 10, 9, 38, 969790)

  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, 5, 46, 284968)
        datetime.datetime(2024, 7, 14, 7, 16, 14, 483697)
        datetime.datetime(2022, 7, 8, 1, 4, 18, 799708)
        datetime.datetime(2021, 7, 19, 19, 0, 33, 197618)
        datetime.datetime(2023, 1, 22, 6, 2, 24, 795170)

        >>> 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, 14, 955887)
        datetime.datetime(2029, 1, 10, 17, 34, 19, 808799)
        datetime.datetime(2027, 9, 3, 12, 44, 39, 84858)
        datetime.datetime(2027, 1, 9, 6, 12, 16, 396446)
        datetime.datetime(2028, 1, 14, 15, 54, 5, 743413)

  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, 4, 617985)
        datetime.datetime(2025, 12, 19, 8, 43, 24, 728952)
        datetime.datetime(2025, 12, 11, 4, 32, 50, 714149)
        datetime.datetime(2025, 12, 7, 6, 33, 3, 183719)
        datetime.datetime(2025, 12, 13, 9, 17, 17, 58549)

        >>> 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, 46, 869139)
        datetime.datetime(2025, 12, 30, 8, 39, 32, 343884)
        datetime.datetime(2025, 12, 28, 1, 49, 20, 207948)
        datetime.datetime(2025, 12, 26, 23, 32, 51, 440265)
        datetime.datetime(2025, 12, 28, 16, 33, 53, 155165)

  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, 12, 640555)
        datetime.datetime(2025, 9, 29, 12, 29, 9, 707242)
        datetime.datetime(2025, 5, 31, 15, 50, 57, 165133)
        datetime.datetime(2025, 4, 3, 18, 1, 39, 196974)
        datetime.datetime(2025, 7, 3, 3, 39, 58, 457916)

        >>> 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, 46, 869139)
        datetime.datetime(2025, 12, 30, 8, 39, 32, 343884)
        datetime.datetime(2025, 12, 28, 1, 49, 20, 207948)
        datetime.datetime(2025, 12, 26, 23, 32, 51, 440265)
        datetime.datetime(2025, 12, 28, 16, 33, 53, 155165)

  day_of_month() → str
    Examples:

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

  day_of_week() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.day_of_week()
        ...
        'الأحد'
        'الأربعاء'
        'السبت'
        'الجمعة'
        'السبت'

  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, 26, 53, 594731)
        datetime.datetime(2026, 1, 16, 23, 11, 30, 54467)
        datetime.datetime(2026, 1, 6, 20, 16, 34, 116942)
        datetime.datetime(2026, 1, 1, 23, 53, 4, 957843)
        datetime.datetime(2026, 1, 9, 13, 34, 56, 566513)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.future_datetime(end_date='+1y')
        ...
        datetime.datetime(2026, 10, 29, 15, 27, 49, 596785)
        datetime.datetime(2026, 9, 28, 1, 30, 39, 235670)
        datetime.datetime(2026, 5, 27, 20, 5, 38, 924810)
        datetime.datetime(2026, 3, 29, 19, 4, 0, 276056)
        datetime.datetime(2026, 6, 29, 23, 10, 33, 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:03:38.345325'
        '2012-06-07T01:35:24.164934'
        '1993-07-18T12:32:56.068790'
        '1984-06-30T03:06:49.946267'
        '1998-08-16T03:36:55.080307'

  month() → str
    Examples:

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

  month_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.month_name()
        ...
        'نيسان'
        'حزيران'
        'تمّوز'
        'حزيران'
        'آب'

  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, 26, 52, 594731)
        datetime.datetime(2025, 12, 17, 23, 11, 29, 54467)
        datetime.datetime(2025, 12, 7, 20, 16, 33, 116942)
        datetime.datetime(2025, 12, 2, 23, 53, 3, 957843)
        datetime.datetime(2025, 12, 10, 13, 34, 55, 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.

  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:03:38'
        '01:35:24'
        '12:32:56'
        '03:06:49'
        '03:36:55'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time(pattern='%I:%M %p')
        ...
        '02:03 AM'
        '01:35 AM'
        '12:32 PM'
        '03:06 AM'
        '03:36 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, 3, 38, 345325)
        datetime.time(1, 35, 24, 164934)
        datetime.time(12, 32, 56, 68790)
        datetime.time(3, 6, 49, 946267)
        datetime.time(3, 36, 55, 80307)

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.time_object(end_datetime='+1h')
        ...
        datetime.time(2, 54, 18, 263990)
        datetime.time(2, 20, 52, 800785)
        datetime.time(12, 58, 10, 126481)
        datetime.time(3, 22, 22, 46568)
        datetime.time(4, 7, 35, 669304)

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

  timezone() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.timezone()
        ...
        'الهندي/جزر_المالديف'
        'أمريكا/باربادوس'
        'أوروبا/ستوكهولم'
        'إفريقيا/ويندهوك'
        'آسيا/قطر'

  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()
        ...
        1491789818.345325
        1339032924.1649342
        742998776.0687902
        457412809.9462669
        903238615.080307

  year() → str
    Examples:

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

## `faker.providers.internet`

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

  Bases: `Provider`

  ascii_company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_company_email()
        ...
        'cslym@qhtan-ekawy.biz'
        'myas59@frahyd.com'
        'ramhbkr-bn-wal@alejman.com'
        'mhran81@hran-bnw.org'
        'hyvmerp@qlybw-bnw.com'

  ascii_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_email()
        ...
        'qalamam@hotmail.com'
        'ebnw-ejl@yahoo.com'
        'ebd-algnyalhaby@bkr.org'
        'rawy15@nsybp-aldlym.com'
        'aetkaf38@yahoo.com'

  ascii_free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_free_email()
        ...
        'cslym@yahoo.com'
        'yrsas@yahoo.com'
        'ljbyly@gmail.com'
        'ebd-algnyalhaby@gmail.com'
        'neman92@yahoo.com'

  ascii_safe_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.ascii_safe_email()
        ...
        'cslym@example.com'
        'yrsas@example.com'
        'ljbyly@example.org'
        'ebd-algnyalhaby@example.org'
        'neman92@example.com'

  company_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.company_email()
        ...
        'cslym@qhtan-ekawy.biz'
        'myas59@frahyd.com'
        'ramhbkr-bn-wal@alejman.com'
        'mhran81@hran-bnw.org'
        'hyvmerp@qlybw-bnw.com'

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

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

    Return type:

      str

    Examples:

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

  domain_name(levels: int = 1) → str

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

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

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.domain_name()
        ...
        'slym-alamam.com'
        'ekawy.info'
        'alnqyb-frahyd.com'
        'alhaby-aldjany.org'
        'lxm-alejman.com'

  domain_word() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.domain_word()
        ...
        'slym-alamam'
        'qhtan-ekawy'
        'bnw'
        'alnqyb-frahyd'
        'bnw'

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

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.email()
        ...
        'cslym@example.com'
        'yrsas@example.com'
        'ljbyly@example.org'
        'ebd-algnyalhaby@example.org'
        'neman92@example.com'

  free_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.free_email()
        ...
        'cslym@yahoo.com'
        'yrsas@yahoo.com'
        'ljbyly@gmail.com'
        'ebd-algnyalhaby@gmail.com'
        'neman92@yahoo.com'

  free_email_domain() → str
    Examples:

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

  hostname(levels: int = 1) → str

    Produce a hostname with specified number of subdomain levels.

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

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.hostname()
        ...
        'web-66.bly.info'
        'laptop-47.alnqyb-frahyd.com'
        'desktop-21.bkr.com'
        'db-15.nsybp-aldlym.com'
        'laptop-59.almmlwk.info'

  http_method() → str

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

    Return type:

      str

    Examples:

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

  http_status_code(include_unassigned: bool = True) → int

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

    > not yet been assigned or are unused

    Returns:

      a random three digit status code

    Return type:

      int

    Example:

      404

    Examples:

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

  iana_id() → str

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

    Return type:

      str

    Examples:

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

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

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

    Parameters:

      - width – Optional image width

      - height – Optional image height

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

    Return type:

      str

    Examples:

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

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

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

    Parameters:

      - network – Network address

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

      - private – Public or private

    Returns:

      IPv4

    Examples:

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

  ipv4_network_class() → str

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

    Returns:

      IPv4 network class

    Examples:

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

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

    Returns a private IPv4.

    Parameters:

      - network – Network address

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

    Returns:

      Private IPv4

    Examples:

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

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

    Returns a public IPv4 excluding private blocks.

    Parameters:

      - network – Network address

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

    Returns:

      Public IPv4

    Examples:

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

  ipv6(network: bool = False) → str

    Produce a random IPv6 address or network with a valid CIDR

    Examples:

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

  mac_address(multicast: bool = False) → str

    Returns a random MAC address.

    Parameters:

      multicast – Multicast address

    Returns:

      MAC Address

    Examples:

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

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

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

    Return type:

      str

    Examples:

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

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

    Returns NIC Handle ID list

    Return type:

      list[str]

    Examples:

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

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

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

    Parameters:

      - is_system – System or well-known ports

      - is_user – User or registered ports

      - is_dynamic – Dynamic / private / ephemeral ports

    Return type:

      int

    Examples:

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

  ripe_id() → str

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

    Return type:

      str

    Examples:

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

  safe_domain_name() → str
    Examples:

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

  safe_email() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.safe_email()
        ...
        'cslym@example.com'
        'yrsas@example.com'
        'ljbyly@example.org'
        'ebd-algnyalhaby@example.org'
        'neman92@example.com'

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

    Django algorithm

    Examples:

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

  tld() → str
    Examples:

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

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

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

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

    Returns:

      a random url string.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.uri()
        ...
        'https://bnw.com/categorylogin.jsp'
        'http://www.alejman.com/main/mainprivacy.htm'
        'https://sydawy-qlybw.com/main/tag/tagsmain.asp'
        'http://www.je.com/exploreauthor.php'
        'https://www.mzynp.com/postsmain.htm'

  uri_extension() → str
    Examples:

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

  uri_page() → str
    Examples:

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

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

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

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

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

    Returns:

      a random url string.

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.url()
        ...
        'https://bly.info/'
        'https://jbyly-alnqyb.net/'
        'http://aldjany.com/'
        'http://alhsyny.com/'
        'https://www.hran-bnw.org/'

  user_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.user_name()
        ...
        'cslym'
        'nbhan76'
        'myas59'
        'nasyfalhaby'
        'sate19'

## `faker.providers.job`

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

  Bases: `Provider`

  job() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job()
        ...
        'مصصم'
        'معلم'
        'جوھري'
        'عامل'
        'وسيط تأمين'

  job_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_female()
        ...
        'مصصم'
        'معلم'
        'جوھري'
        'عامل'
        'وسيط تأمين'

  job_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.job_male()
        ...
        'مصصم'
        'معلم'
        'جوھري'
        'عامل'
        'وسيط تأمين'

## `faker.providers.lorem`

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

  Bases: `Provider`

  Implement lorem provider for `ar_AA` locale.

  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)
        ...
        'أمدها ومن بولندا وجزر هامش ونتج. دارت وبولندا تزامناً العمليات لمّ شعار. يطول تُصب كثيرة ساعة الإحتفاظ. لدحر وبدون قادة بنقطة. ايطاليا المشتّتون عسكرياً الحرة.'
        'بعلى تكاليف إحكام وجزر وتنامت استرجاع و. أثره تاريخ والفرنسي الشتوية النزاع والقرى الثقيلة حقول. مقاومة الإتحاد جزيرتي استراليا يكن. ٢٠٠٤ بينما المارق القادة الأمريكي الوراء وحتّى. ومضى سبتمبر دنو بفرض رئيس. المشتّتون السيطرة التنازلي ميناء أكثر يتم.'
        'إستيلاء فمرّ الأهداف الإقتصادي أما اتفاق قِبل. قائمة هو تكتيكاً تكاليف السبب الخاطفة فمرّ. خيار بقسوة غينيا ٠٨٠٤ وتنصيب مشروط. الموسوعة الأخذ دفّة الولايات.'
        'أسابيع الطريق كثيرة بالتوقيع التاريخ. منتصف اعلان الإحتفاظ قُدُماً أن حيث. ساعة إنطلاق الأمريكي الثانية هامش الأرضية استراليا. أم أسيا ولم التي.'
        'الخارجية معقل وصغار أصقاع بريطانيا اقتصادية الصفحات. إعلان المارق بعدم إحتار بلها. اعلان يطول الجو بأضرار لعدم هو وجزر البولندي.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.paragraph(nb_sentences=5, variable_nb_sentences=False)
        ...
        'لهذه بداية الصعداء تصرّف بتخصيص مسؤولية. ونتج بأضرار وبالتحديد الدمج الأول. لمّ شعار الشطر وتتحمّل. وبعدما المجتمع لدحر وبدون قادة بنقطة اعلان بضرب. عسكرياً الحرة جورج بعلى تكاليف إحكام وجزر وتنامت.'
        'لإعادة ببلا نفس فشكّل. سياسة نهاية الوراء. كانتا إحكام وتنصيب الدول مقاومة الإتحاد. بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج. جمعت من جديداً ومضى.'
        'جمعت الفرنسي استراليا معاملة المشتّتون السيطرة التنازلي ميناء. سياسة غضون بهناك. فمرّ الأهداف الإقتصادي أما. وبدون وحتّى جديداً بالمطالبة. العالمية مما واتّجه وبدأت دول وقد خيار.'
        'ب٣٠ عشوائية كان يتم بأسر الموسوعة الأخذ. طوكيو وإعلان الشتاء لعدم الأرض الدنمارك مع الوراء. اعلان الإحتفاظ قُدُماً أن. عدد وصغار ساعة إنطلاق الأمريكي الثانية هامش. بالمطالبة بالإنزال يتعلّق أم.'
        'الجنرال ووصف لأداء. الخارجية معقل وصغار أصقاع بريطانيا اقتصادية الصفحات. إعلان المارق بعدم إحتار بلها. اعلان يطول الجو بأضرار لعدم هو وجزر البولندي. ومن إتفاقية فكان وإعلان اليها.'

        >>> 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)
        ...
        ['أمدها ومن بولندا وجزر هامش ونتج. دارت وبولندا تزامناً العمليات لمّ شعار. يطول تُصب كثيرة ساعة الإحتفاظ.', 'وبدون قادة بنقطة اعلان. المشتّتون عسكرياً الحرة جورج بعلى تكاليف.', 'وتنامت استرجاع و كلا مسارح صفحة سياسة. الشتوية النزاع والقرى الثقيلة حقول السفن.', 'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج. جمعت من جديداً ومضى.', 'دنو بفرض رئيس بالسيطرة حين القادة الثقيل. أكثر يتم الصفحات إستيلاء. والمعدات وحتّى وأزيز وبدون. قائمة هو تكتيكاً تكاليف السبب الخاطفة فمرّ.']
        ['العالمي ب٣٠ عشوائية كان يتم بأسر الموسوعة الأخذ. طوكيو وإعلان الشتاء لعدم الأرض الدنمارك مع الوراء. اعلان الإحتفاظ قُدُماً أن.', 'ساعة إنطلاق الأمريكي الثانية هامش الأرضية استراليا. أم أسيا ولم التي. بوابة لبولندا إحتار فمرّ.', 'شموليةً هناك إعادة إعلان المارق بعدم. تزامناً أمام اعلان يطول. الصفحات وبعض بمحاولة وبعدما حكومة.', 'مسرح الإنزال الانجليزية تمهيد. رئيس بعلى التحالف بمما.', 'والمانيا وتنصيب عليها بالعمل غضون الإمتعاض قبل. للأراضي الولايات أن العظمى السيء وقرى اوروبا. فقامت دون وبالرغم واستمرت الأوربيين.']
        ['للصين هاربر اتفاق ذلك قِبل الإيطالية. عرض بالرغم والمانيا حقول بحق.', 'بخطوط فاتّبع أهّل بفرض الصعداء الإنزال تم. وبولندا سبتمبر أثره أما النزاع هو أوراقهم. الثانية ٣٠ عجّل اتّجة لبلجيكا يرتبط.', 'المشتّتون الخاسرة لأداء أجزاء نتيجة تمهيد. الثقيل سكان الجنود المبرمة. اعلان واستمرت ببحشد اتفاقية.', 'معقل الأراضي الشهيرة عُقر مهمّات عل الأخذ. العدّ أساسي أمدها فهرست.', 'وفي وصل وتتحمّل أملاً للمجهود كانت. كلّ وبعدما عسكرياً بالثالث ثمّة الحيلولة دفّة. الأوضاع العاصمة الى.']
        ['اليابان شموليةً أمدها الاندونيسية. الفرنسية بانه جنوب الكونجرس بهيئة السيء أواخر التقليدي. لتقليعة المبرمة هناك المؤلّفة الأثناء حاملات بوقامت.', 'الأمريكي الأراضي تحت أما الولايات قامت. وجهان ضرب بالجوي ويكيبيديا. إذ احداث للمجهود إحتار.', 'بالولايات تعديل بقادة بين.', 'بدون بالأجل يعادل الصفحات محاولات. الجديدة الأخذ ميناء واستمرت أعمال تلك. الأرضية ببعض الحكومة أملاً وقام. شيء الآخر بكلّ بأيدي نهاية.', 'يتمكن الإطلاق بتصفح فهرست والنرويج تجهيز وتنصيب المواد. ٢٠٠٤ عدم والمانيا جزيرتي وسمّيت أخرى كثيرة.']
        ['ألمّ الإطلاق الشّعبين مسؤولية وأزيز دار. إذ احداث والفلبين أمام الدّفاع أمدها أراضي. الواقعة الا الإقتصادي غرّة وهولندا تزامناً وبعد.', 'حيث فمرّ مكثّفة. يعبأ للسيطرة وبغطاء الحكم ثم رجوعهم نقطة بولاتّساع. سقوط الساحلية والروسية أسيا وايرلندا للأراضي.', 'حلّت الوراء تاريخ الصفحة نفس ماشاء بالسيطرة. إحكام عشوائية الأمم الفترة هامش أي.', 'بخطوط ب٠٨٠٤ والديون لأداء فقامت الإقتصادية يرتبط.', 'سنغافورة بالشتاء أهّل. مدن أسيا رجوعهم الأوربيين الموسوعة كان عليها. بالسادس محاولات بينما وانتهاءً سليمان.']

        >>> 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)
        ...
        'لهذه بداية الصعداء تصرّف بتخصيص مسؤولية المتاخمة بهناك دارت وبولندا.'
        'الأول الأول استطاعوا معزّزة يطول تُصب كثيرة ساعة الإحتفاظ اعتداء إنطلاق واحدة.'
        'بنقطة اعلان بضرب سنغافورة وتزويده ومن بهناك والروسية الصفحات مكثّفة.'
        'وتنامت استرجاع و كلا مسارح صفحة سياسة نهاية الوراء لعدم كانتا إحكام وتنصيب.'
        'السفن ونتج مقاومة بقادة اتفاق المعاهدات تشكيل وسوء.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentence(nb_words=10, variable_nb_words=False)
        ...
        'وإعلان لهذه بداية الصعداء تصرّف بتخصيص مسؤولية المتاخمة بهناك دارت.'
        'وبولندا تزامناً العمليات لمّ شعار الشطر وتتحمّل يتمكن مليون وبعدما.'
        'المجتمع لدحر وبدون قادة بنقطة اعلان بضرب سنغافورة وتزويده ومن.'
        'بهناك والروسية الصفحات مكثّفة جنوب أراض لإعادة ببلا نفس فشكّل.'
        'أثره تاريخ والفرنسي الشتوية النزاع والقرى الثقيلة حقول السفن ونتج.'

        >>> 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()
        ...
        ['لهذه بداية الصعداء تصرّف بتخصيص مسؤولية.', 'ونتج بأضرار وبالتحديد الدمج الأول.', 'لمّ شعار الشطر وتتحمّل.']
        ['وبعدما المجتمع لدحر وبدون قادة بنقطة اعلان بضرب.', 'عسكرياً الحرة جورج بعلى تكاليف إحكام وجزر وتنامت.', 'لإعادة ببلا نفس فشكّل.']
        ['سياسة نهاية الوراء.', 'كانتا إحكام وتنصيب الدول مقاومة الإتحاد.', 'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج.']
        ['جمعت من جديداً ومضى.', 'جمعت الفرنسي استراليا معاملة المشتّتون السيطرة التنازلي ميناء.', 'سياسة غضون بهناك.']
        ['فمرّ الأهداف الإقتصادي أما.', 'وبدون وحتّى جديداً بالمطالبة.', 'العالمية مما واتّجه وبدأت دول وقد خيار.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.sentences(nb=5)
        ...
        ['لهذه بداية الصعداء تصرّف بتخصيص مسؤولية.', 'ونتج بأضرار وبالتحديد الدمج الأول.', 'لمّ شعار الشطر وتتحمّل.', 'وبعدما المجتمع لدحر وبدون قادة بنقطة اعلان بضرب.', 'عسكرياً الحرة جورج بعلى تكاليف إحكام وجزر وتنامت.']
        ['لإعادة ببلا نفس فشكّل.', 'سياسة نهاية الوراء.', 'كانتا إحكام وتنصيب الدول مقاومة الإتحاد.', 'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج.', 'جمعت من جديداً ومضى.']
        ['جمعت الفرنسي استراليا معاملة المشتّتون السيطرة التنازلي ميناء.', 'سياسة غضون بهناك.', 'فمرّ الأهداف الإقتصادي أما.', 'وبدون وحتّى جديداً بالمطالبة.', 'العالمية مما واتّجه وبدأت دول وقد خيار.']
        ['ب٣٠ عشوائية كان يتم بأسر الموسوعة الأخذ.', 'طوكيو وإعلان الشتاء لعدم الأرض الدنمارك مع الوراء.', 'اعلان الإحتفاظ قُدُماً أن.', 'عدد وصغار ساعة إنطلاق الأمريكي الثانية هامش.', 'بالمطالبة بالإنزال يتعلّق أم.']
        ['الجنرال ووصف لأداء.', 'الخارجية معقل وصغار أصقاع بريطانيا اقتصادية الصفحات.', 'إعلان المارق بعدم إحتار بلها.', 'اعلان يطول الجو بأضرار لعدم هو وجزر البولندي.', 'ومن إتفاقية فكان وإعلان اليها.']

        >>> 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)
        ...
        'حكومة شموليةً إجلاء.'
        'لمّ لأداء رجوعهم.'
        'كثيرة تمهيد والحزب.'
        'للحكومة الحكم بحيث.'
        'الأولى وتم بالإنزال.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(max_nb_chars=80)
        ...
        'لهذه بداية الصعداء تصرّف بتخصيص مسؤولية. ونتج بأضرار وبالتحديد الدمج الأول.'
        'وبعدما المجتمع لدحر وبدون قادة بنقطة اعلان بضرب.'
        'لإعادة ببلا نفس فشكّل. سياسة نهاية الوراء.'
        'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج. جمعت من جديداً ومضى.'
        'سياسة غضون بهناك. فمرّ الأهداف الإقتصادي أما. وبدون وحتّى جديداً بالمطالبة.'

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.text(max_nb_chars=160)
        ...
        'أمدها ومن بولندا وجزر هامش ونتج. دارت وبولندا تزامناً العمليات لمّ شعار. يطول تُصب كثيرة ساعة الإحتفاظ.'
        'وتنامت استرجاع و كلا مسارح صفحة سياسة. الشتوية النزاع والقرى الثقيلة حقول السفن.\nبقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج. جمعت من جديداً ومضى.'
        'العالمي ب٣٠ عشوائية كان يتم بأسر الموسوعة الأخذ. طوكيو وإعلان الشتاء لعدم الأرض الدنمارك مع الوراء. اعلان الإحتفاظ قُدُماً أن.'
        'شموليةً هناك إعادة إعلان المارق بعدم. تزامناً أمام اعلان يطول. الصفحات وبعض بمحاولة وبعدما حكومة.\nمسرح الإنزال الانجليزية تمهيد. رئيس بعلى التحالف بمما.'
        'للصين هاربر اتفاق ذلك قِبل الإيطالية. عرض بالرغم والمانيا حقول بحق.'

        >>> 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)
        ...
        ['أمدها ومن بولندا وجزر هامش ونتج. دارت وبولندا تزامناً العمليات لمّ شعار. يطول تُصب كثيرة ساعة الإحتفاظ.\nوبدون قادة بنقطة اعلان. المشتّتون عسكرياً الحرة جورج بعلى تكاليف.', 'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج. جمعت من جديداً ومضى.', 'العالمي ب٣٠ عشوائية كان يتم بأسر الموسوعة الأخذ. طوكيو وإعلان الشتاء لعدم الأرض الدنمارك مع الوراء. اعلان الإحتفاظ قُدُماً أن.', 'شموليةً هناك إعادة إعلان المارق بعدم. تزامناً أمام اعلان يطول. الصفحات وبعض بمحاولة وبعدما حكومة.\nمسرح الإنزال الانجليزية تمهيد. رئيس بعلى التحالف بمما.', 'للصين هاربر اتفاق ذلك قِبل الإيطالية. عرض بالرغم والمانيا حقول بحق.\nبخطوط فاتّبع أهّل بفرض الصعداء الإنزال تم. وبولندا سبتمبر أثره أما النزاع هو أوراقهم. الثانية ٣٠ عجّل اتّجة لبلجيكا يرتبط.']
        ['معقل الأراضي الشهيرة عُقر مهمّات عل الأخذ. العدّ أساسي أمدها فهرست.\nوفي وصل وتتحمّل أملاً للمجهود كانت. كلّ وبعدما عسكرياً بالثالث ثمّة الحيلولة دفّة. الأوضاع العاصمة الى.', 'الأمريكي الأراضي تحت أما الولايات قامت. وجهان ضرب بالجوي ويكيبيديا. إذ احداث للمجهود إحتار.\nبالولايات تعديل بقادة بين.', 'يتمكن الإطلاق بتصفح فهرست والنرويج تجهيز وتنصيب المواد. ٢٠٠٤ عدم والمانيا جزيرتي وسمّيت أخرى كثيرة.', 'حيث فمرّ مكثّفة. يعبأ للسيطرة وبغطاء الحكم ثم رجوعهم نقطة بولاتّساع. سقوط الساحلية والروسية أسيا وايرلندا للأراضي.\nحلّت الوراء تاريخ الصفحة نفس ماشاء بالسيطرة. إحكام عشوائية الأمم الفترة هامش أي.', 'سنغافورة بالشتاء أهّل. مدن أسيا رجوعهم الأوربيين الموسوعة كان عليها. بالسادس محاولات بينما وانتهاءً سليمان.']
        ['وكسبت وبعدما أمام الشهير. وفنلندا فرنسية حول. الساحة محاولات وايرلندا ضرب ترتيب. بداية المتحدة الأحمر بريطانيا-فرنسا حصدت وحتّى وصافرات.', 'إعادة وبحلول الحيلولة الحرة فقامت وصل. للصين الكونجرس قبضتهم وسوء.\nالثالث الأجل ان ولكسمبورغ. أعمال الحيلولة الولايات ولم.\nعدم التنازلي يكن اكتوبر دأبوا الإنذار وبدون. مكثّفة المشترك الشتاء لمّ.', 'عجّل عرض تمهيد بالجوي أخر ومحاولة. بعض بالتوقيع وقدّموا استراليا التي الأثناء.\nسقطت الإمتعاض كانت وزارة التي بدول التحالف. اليابانية تكبّد بأراضي عالمية ارتكبها لمّ اللا.', 'وبالتحديد كلا بفرض للسيطرة ايطاليا والقرى فقامت. ذلك ألمّ مشروط المتحدة اليابانية. والإتحاد وبالتحديد ليتسنّى إستيلاء والتي العمليات الأوروبية.', 'المارق للحكومة أوزار شموليةً أطراف بمما. وإقامة يتسنّى قامت.\nأخذ أمدها شموليةً ٣٠ والكوري قِبل. الأولى حول الثقيلة بضرب كُلفة.']
        ['ألمانيا عجّل والقرى بإعمار للجزر فكانت.\nالله اسبوعين والفلبين لليابان مارد واندونيسيا بحث أوسع. فرنسية عليها جمعت لغات بشرية بقيادة الشهير.', 'الشهيرة تكاليف الثقيل اتفاق والفلبين انتباه. الشمال لدحر المارق تعداد بالسيطرة. ان كلّ أمّا وشعار إعمار بلا لبلجيكا.\nيتسنّى بلا الأرض اتفاقية اعتداء ليركز.', 'كلا محاولات تطوير بلاده عدد. الساحل الأرضية مرمى اعتداء لعملة. الدمج والنفيس ٢٠٠٤ أخذ ثم.\nالأسيوي علاقة الأرض. بأضرار فقد كانتا غينيا الدول هذا السيء. المتّبعة النفط بالثالث بوابة دار الأوضاع أراضي.', 'تحرير وجزر شدّت أعلنت رئيس بينما المتّبعة ولكسمبورغ. عُقر غينيا تاريخ وقرى بوقامت المسرح وإيطالي.\nسبتمبر كانتا ميناء مسارح. وفنلندا الحيلولة المشترك للسيطرة الشرقية والديون.', 'ويتّفق بدول وبالرغم الخطّة بعد بأضرار. عليها لتقليعة مسارح بتونس.\nوبالتحديد تُصب مكثّفة يتعلّق كثيرة لهيمنة.\nبتونس بالمحور أحدث الأوضاع. و قِبل اتفاق الستار نهاية التخطيط وفي. للإتحاد هو حاول لأداء.']
        ['ماشاء حلّت الصفحة. بقيادة لإعلان بتحدّي. أوروبا العالم ٠٨٠٤ الشمل فهرست كانت وزارة.\nتعد بالشتاء هنا؟ الشطر الأراضي يتم مكثّفة. دفّة لإعلان في اوروبا وتنصيب.', 'حكومة بعلى اليميني أخرى.\nللسيطرة الثانية جنوب بدون وقد. تمهيد إحكام عسكرياً خيار. عجّل جزيرتي بالسيطرة بعد المحيط أراض مدن.\nثمّة جيوب يعبأ الثقيل مرمى. وإعلان للمجهود الإمداد فاتّبع.', 'حيث الستار كما والديون. ولاتّساع الاندونيسية وحرمان وزارة. وعلى الشمل واندونيسيا ماليزيا سليمان استدعى.\nأدنى الشطر ليتسنّى بالشتاء مايو صفحة بالعمل.\nبلمّ هامش الأمريكية كلا الهادي أضف به تكاليف.', 'بمما المسرح وأزيز وقوعها أطراف بالولايات الأمريكي. بتصفح الإتحاد الإطلاق والعتاد تصرّف.\nوبالرغم وترك كثيرة كُلفة. لدحر تغييرات نتيجة.', 'سنغافورة مما تكاليف كل وتزويده الأوروبية مارد. جزيرتي موالية اليها ممثّلة.\nبزمام اوروبا بقسوة هذه. بأيدي وأزيز عرض الأوروبيّون وحلفاؤها التكاليف الأمريكي.']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.texts(nb_texts=5, max_nb_chars=50)
        ...
        ['لهذه بداية الصعداء تصرّف بتخصيص مسؤولية.', 'لمّ شعار الشطر وتتحمّل.', 'عسكرياً الحرة جورج بعلى تكاليف إحكام وجزر وتنامت.', 'سياسة نهاية الوراء.', 'بقادة اتفاق المعاهدات تشكيل وسوء الأثناء جورج.']
        ['سياسة غضون بهناك. فمرّ الأهداف الإقتصادي أما.', 'العالمية مما واتّجه وبدأت دول وقد خيار.', 'اعلان الإحتفاظ قُدُماً أن.', 'بالمطالبة بالإنزال يتعلّق أم. الجنرال ووصف لأداء.', 'إعلان المارق بعدم إحتار بلها.']
        ['ومن إتفاقية فكان وإعلان اليها.', 'والمانيا وتنصيب عليها بالعمل غضون الإمتعاض قبل.', 'فقامت دون وبالرغم واستمرت الأوربيين.', 'الإيطالية الدولارات بقادة كلا فقامت والمانيا.', 'الباهضة إختار كانت.']
        ['أوراقهم نتيجة ويكيبيديا بحق جنوب ومضى يتسنّى.', 'أراض لمّ يتعلّق فكان سياسة.', 'بها وحتّى ضرب أصقاع.', 'العدّ أساسي أمدها فهرست.', 'كلّ وبعدما عسكرياً بالثالث ثمّة الحيلولة دفّة.']
        ['لأداء اليابان شموليةً أمدها الاندونيسية يتم.', 'المتّبعة واعتلاء لتقليعة.', 'الى معاملة مما الأمريكي الأراضي تحت أما.', 'إذ احداث للمجهود إحتار. استمرار جُل الفرنسية.', 'بشرية بأضرار إختار والديون. وبعدما بقسوة فكانت.']

        >>> 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()
        ...
        'حكومة'
        'شموليةً'
        'إجلاء'
        'بالسادس'
        'لمّ'

        >>> 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()
        ...
        ['وإعلان', 'لهذه', 'بداية']
        ['الصعداء', 'تصرّف', 'بتخصيص']
        ['مسؤولية', 'المتاخمة', 'بهناك']
        ['دارت', 'وبولندا', 'تزامناً']
        ['العمليات', 'لمّ', 'شعار']

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.words(nb=5)
        ...
        ['وإعلان', 'لهذه', 'بداية', 'الصعداء', 'تصرّف']
        ['بتخصيص', 'مسؤولية', 'المتاخمة', 'بهناك', 'دارت']
        ['وبولندا', 'تزامناً', 'العمليات', 'لمّ', 'شعار']
        ['الشطر', 'وتتحمّل', 'يتمكن', 'مليون', 'وبعدما']
        ['المجتمع', 'لدحر', 'وبدون', 'قادة', 'بنقطة']

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

  Bases: `Provider`

  first_name() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name()
        ...
        'كاظم'
        'محسن'
        'حسني'
        'عبد الباقي'
        'نبهان'

  first_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_female()
        ...
        'سلسبيل'
        'فداء'
        'أفراح'
        'جيلان'
        'ميرا'

  first_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_male()
        ...
        'كاظم'
        'محسن'
        'حسني'
        'عبد الباقي'
        'نبهان'

  first_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.first_name_nonbinary()
        ...
        'كاظم'
        'محسن'
        'حسني'
        'عبد الباقي'
        'نبهان'

  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()
        ...
        'حميضة'
        'سليم'
        'الامام'
        'بلي'
        'قحطان'

  last_name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_female()
        ...
        'حميضة'
        'سليم'
        'الامام'
        'بلي'
        'قحطان'

  last_name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_male()
        ...
        'حميضة'
        'سليم'
        'الامام'
        'بلي'
        'قحطان'

  last_name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.last_name_nonbinary()
        ...
        'حميضة'
        'سليم'
        'الامام'
        'بلي'
        'قحطان'

  name() → str
    Example:

      ‘John Doe’

    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name()
        ...
        'السيدة أفراح بلي'
        'السيدة رواء عذرة'
        'هيام النقيب'
        'السيد ساطع الدجاني'
        'ناهد العجمان'

  name_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_female()
        ...
        'السيدة أفراح بلي'
        'السيدة رواء عذرة'
        'المهندسة جميلة فراهيد'
        'دانية الشهابي'
        'جوليا لخم'

  name_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_male()
        ...
        'المهندس حسني بلي'
        'المهندس عذب عذرة'
        'الدكتور ناصيف الشهابي'
        'الدكتور رامح بكر بن وائل'
        'عزيز الدقاق'

  name_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.name_nonbinary()
        ...
        'السيدة أفراح بلي'
        'السيدة رواء عذرة'
        'هيام النقيب'
        'السيد ساطع الدجاني'
        'ناهد العجمان'

  prefix() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix()
        ...
        'السيدة'
        'السيد'
        'السيدة'
        'السيدة'
        'المهندسة'

  prefix_female() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_female()
        ...
        'السيدة'
        'السيدة'
        'الآنسة'
        'الدكتورة'
        'المهندسة'

  prefix_male() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_male()
        ...
        'المهندس'
        'المهندس'
        'الأستاذ'
        'السيد'
        'المهندس'

  prefix_nonbinary() → str
    Examples:

        >>> Faker.seed(0)
        >>> for _ in range(5):
        ...     fake.prefix_nonbinary()
        ...
        'السيدة'
        'السيد'
        'السيدة'
        'السيدة'
        'المهندسة'

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