calendar.md
1> **Источник:** https://python-all.ru/3.11/library/calendar.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`calendar`](https://python-all.ru/3.11/library/calendar.html#module-calendar) – Общие функции работы с календарём89**Исходный код:** [Lib/calendar.py](https://python-all.ru/src/3.11/Lib/calendar.py)1011---1213Этот модуль позволяет выводить календари, как программа Unix **cal**, и предоставляет дополнительные полезные функции, связанные с календарём. По умолчанию в этих календарях первый день недели – понедельник, а последний – воскресенье (европейская конвенция). Используйте [`setfirstweekday()`](https://python-all.ru/3.11/library/calendar.html#calendar.setfirstweekday), чтобы установить первый день недели на воскресенье (6) или любой другой день недели. Параметры, задающие даты, передаются в виде целых чисел. За дополнительными возможностями обращайтесь также к модулям [`datetime`](https://python-all.ru/3.11/library/datetime.html#module-datetime) и [`time`](https://python-all.ru/3.11/library/time.html#module-time).1415Функции и классы, определённые в этом модуле, используют идеализированный календарь – текущий григорианский календарь, неограниченно расширенный в обоих направлениях. Это соответствует определению «пролептического григорианского» календаря из книги Дершовица и Рейнгольда «Calendrical Calculations», где он является базовым для всех вычислений. Нулевые и отрицательные годы интерпретируются в соответствии со стандартом ISO 8601. Год 0 соответствует 1 году до н.э., год -1 – 2 году до н.э. и так далее.1617#### `class calendar.Calendar(firstweekday=0)`1819Создаёт объект [`Calendar`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar). *firstweekday* – целое число, задающее первый день недели. [`MONDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.MONDAY) равно `0` (по умолчанию), [`SUNDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.SUNDAY) – `6`.2021Объект [`Calendar`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar) предоставляет несколько методов, которые можно использовать для подготовки данных календаря к форматированию. Этот класс сам не выполняет форматирование – это задача подклассов.2223Экземпляры [`Calendar`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar) имеют следующие методы:2425#### `iterweekdays()`2627Возвращает итератор по номерам дней недели, которые будут использоваться в течение одной недели. Первое значение из итератора будет совпадать со значением свойства [`firstweekday`](https://python-all.ru/3.11/library/calendar.html#calendar.firstweekday).2829#### `itermonthdates(year, month)`3031Возвращает итератор для месяца *month* (1–12) года *year*. Этот итератор вернёт все дни (в виде объектов [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date)) за месяц, а также все дни до начала месяца или после его окончания, необходимые для получения полной недели.3233#### `itermonthdays(year, month)`3435Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date). Возвращаемые дни – просто номера дней месяца. Для дней за пределами указанного месяца номер дня равен `0`.3637#### `itermonthdays2(year, month)`3839Возвращает итератор для месяца *month* года *year*, аналогичный [`itermonthdates()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.itermonthdates), но не ограниченный [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date) диапазоном. Возвращаемые дни – кортежи, состоящие из номера дня в месяце и номера дня недели.4041#### `itermonthdays3(year, month)`4243Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date). Возвращаемые дни будут кортежами из года, месяца и номера дня месяца.4445Добавлено в версии 3.7.4647#### `itermonthdays4(year, month)`4849Возвращает итератор для месяца *month* года *year*, аналогично [`itermonthdates()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.itermonthdates), но без ограничения по диапазону [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date). Возвращаемые дни будут кортежами из года, месяца, номера дня месяца и номера дня недели.5051Добавлено в версии 3.7.5253#### `monthdatescalendar(year, month)`5455Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – список из семи объектов [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date).5657#### `monthdays2calendar(year, month)`5859Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – это список из семи кортежей с номером дня и номером дня недели.6061#### `monthdayscalendar(year, month)`6263Возвращает список недель в месяце *month* года *year* в виде полных недель. Каждая неделя – это список из семи номеров дней.6465#### `yeardatescalendar(year, width=3)`6667Возвращает данные для указанного года, готовые к форматированию. Возвращаемое значение – это список строк месяцев. Каждая строка месяца содержит до *width* месяцев (по умолчанию 3). Каждый месяц содержит от 4 до 6 недель, а каждая неделя – от 1 до 7 дней. Дни представлены объектами [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date).6869#### `yeardays2calendar(year, width=3)`7071Возвращает данные для указанного года, готовые к форматированию (аналогично [`yeardatescalendar()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.yeardatescalendar)). Записи в списках недель – это кортежи из номера дня и номера дня недели. Номера дней за пределами этого месяца равны нулю.7273#### `yeardayscalendar(year, width=3)`7475Возвращает данные для указанного года, готовые к форматированию (аналогично [`yeardatescalendar()`](https://python-all.ru/3.11/library/calendar.html#calendar.Calendar.yeardatescalendar)). Записи в списках недель – это номера дней. Номера дней за пределами этого месяца равны нулю.7677#### `class calendar.TextCalendar(firstweekday=0)`7879Этот класс можно использовать для создания текстовых календарей.8081Экземпляры [`TextCalendar`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar) имеют следующие методы:8283#### `formatmonth(theyear, themonth, w=0, l=0)`8485Возвращает календарь месяца в виде многострочной строки. Если указан параметр *w*, он задаёт ширину столбцов с датами, которые центрируются. Если указан параметр *l*, он задаёт количество строк, которое будет занимать каждая неделя. Зависит от первого дня недели, указанного в конструкторе или заданного методом [`setfirstweekday()`](https://python-all.ru/3.11/library/calendar.html#calendar.setfirstweekday).8687#### `prmonth(theyear, themonth, w=0, l=0)`8889Печатает календарь месяца, возвращаемый функцией [`formatmonth()`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar.formatmonth).9091#### `formatyear(theyear, w=2, l=1, c=6, m=3)`9293Возвращает календарь на весь год с *m* столбцами в виде многострочной строки. Необязательные параметры *w*, *l* и *c* задают ширину столбца даты, количество строк на неделю и количество пробелов между столбцами месяцев соответственно. Зависит от первого дня недели, указанного в конструкторе или заданного методом [`setfirstweekday()`](https://python-all.ru/3.11/library/calendar.html#calendar.setfirstweekday). Самый ранний год, для которого можно сгенерировать календарь, зависит от платформы.9495#### `pryear(theyear, w=2, l=1, c=6, m=3)`9697Печатает календарь на весь год, возвращаемый функцией [`formatyear()`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar.formatyear).9899#### `class calendar.HTMLCalendar(firstweekday=0)`100101Этот класс можно использовать для создания HTML-календарей.102103Экземпляры `HTMLCalendar` имеют следующие методы:104105#### `formatmonth(theyear, themonth, withyear=True)`106107Возвращает календарь месяца в виде HTML-таблицы. Если *withyear* равен true, год будет включен в заголовок, иначе будет использовано только название месяца.108109#### `formatyear(theyear, width=3)`110111Возвращает календарь года в виде HTML-таблицы. *width* (по умолчанию 3) задает количество месяцев в строке.112113#### `formatyearpage(theyear, width=3, css='calendar.css', encoding=None)`114115Возвращает календарь года в виде полной HTML-страницы. *width* (по умолчанию 3) задает количество месяцев в строке. *css* – это имя используемой каскадной таблицы стилей. [`None`](https://python-all.ru/3.11/library/constants.html#None) можно передать, если таблица стилей не нужна. *encoding* задает кодировку для вывода (по умолчанию используется системная кодировка).116117#### `formatmonthname(theyear, themonth, withyear=True)`118119Возвращает название месяца в виде строки HTML-таблицы. Если *withyear* равен true, год будет включен в строку, иначе будет использовано только название месяца.120121`HTMLCalendar` имеет следующие атрибуты, которые можно переопределить для настройки CSS-классов, используемых календарем:122123#### `cssclasses`124125Список CSS-классов, используемых для каждого дня недели. Список классов по умолчанию:126127```python128cssclasses = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]129```130131для каждого дня можно добавить больше стилей:132133```python134cssclasses = ["mon text-bold", "tue", "wed", "thu", "fri", "sat", "sun red"]135```136137Обратите внимание, что длина этого списка должна быть равна семи элементам.138139#### `cssclass_noday`140141CSS-класс для дня недели, приходящегося на предыдущий или следующий месяц.142143Добавлено в версии 3.7.144145#### `cssclasses_weekday_head`146147Список CSS-классов, используемых для названий дней недели в строке заголовка. По умолчанию такой же, как [`cssclasses`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar.cssclasses).148149Добавлено в версии 3.7.150151#### `cssclass_month_head`152153CSS-класс заголовка месяца (используется [`formatmonthname()`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar.formatmonthname)). Значение по умолчанию – `"month"`.154155Добавлено в версии 3.7.156157#### `cssclass_month`158159CSS-класс для таблицы целого месяца (используется [`formatmonth()`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar.formatmonth)). Значение по умолчанию – `"month"`.160161Добавлено в версии 3.7.162163#### `cssclass_year`164165CSS-класс для таблицы таблиц всего года (используется [`formatyear()`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar.formatyear)). Значение по умолчанию – `"year"`.166167Добавлено в версии 3.7.168169#### `cssclass_year_head`170171CSS-класс для заголовка таблицы всего года (используется [`formatyear()`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar.formatyear)). Значение по умолчанию – `"year"`.172173Добавлено в версии 3.7.174175Обратите внимание, что, хотя названия описанных выше атрибутов классов стоят в единственном числе (например, `cssclass_month` `cssclass_noday`), можно заменить одиночный CSS-класс на список CSS-классов, разделенных пробелами, например:176177```python178"text-bold text-red"179```180181Вот пример того, как можно настроить `HTMLCalendar`:182183```python184class CustomHTMLCal(calendar.HTMLCalendar):185 cssclasses = [style + " text-nowrap" for style in186 calendar.HTMLCalendar.cssclasses]187 cssclass_month_head = "text-center month-head"188 cssclass_month = "text-center month"189 cssclass_year = "text-italic lead"190```191192#### `class calendar.LocaleTextCalendar(firstweekday=0, locale=None)`193194Этот подкласс [`TextCalendar`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar) может принимать название локали в конструкторе и будет возвращать названия месяцев и дней недели в указанной локали.195196#### `class calendar.LocaleHTMLCalendar(firstweekday=0, locale=None)`197198Этот подкласс [`HTMLCalendar`](https://python-all.ru/3.11/library/calendar.html#calendar.HTMLCalendar) может принимать название локали в конструкторе и будет возвращать названия месяцев и дней недели в указанной локали.199200> **Примечание**201>202> Конструктор, методы `formatweekday()` и `formatmonthname()` этих двух классов временно изменяют локаль `LC_TIME` на заданную *locale*. Поскольку текущая локаль – это настройка всего процесса, они не потокобезопасны.203204Для простых текстовых календарей этот модуль предоставляет следующие функции.205206#### `calendar.setfirstweekday(weekday)`207208Устанавливает день недели (`0` – понедельник, `6` – воскресенье), с которого начинается каждая неделя. Для удобства предоставлены значения [`MONDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.MONDAY), [`TUESDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.TUESDAY), [`WEDNESDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.WEDNESDAY), [`THURSDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.THURSDAY), [`FRIDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.FRIDAY), [`SATURDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.SATURDAY) и [`SUNDAY`](https://python-all.ru/3.11/library/calendar.html#calendar.SUNDAY). Например, чтобы первым днём недели было воскресенье:209210```python211import calendar212calendar.setfirstweekday(calendar.SUNDAY)213```214215#### `calendar.firstweekday()`216217Возвращает текущую настройку дня недели, с которого начинается каждая неделя.218219#### `calendar.isleap(year)`220221Возвращает [`True`](https://python-all.ru/3.11/library/constants.html#True), если *year* – високосный год, иначе [`False`](https://python-all.ru/3.11/library/constants.html#False).222223#### `calendar.leapdays(y1, y2)`224225Возвращает количество високосных лет в диапазоне от *y1* до *y2* (не включая), где *y1* и *y2* – это годы.226227Эта функция работает для диапазонов, охватывающих смену столетий.228229#### `calendar.weekday(year, month, day)`230231Возвращает день недели (`0` – понедельник) для *year* (`1970`–…), *month* (`1`–`12`), *day* (`1`–`31`).232233#### `calendar.weekheader(n)`234235Возвращает заголовок, содержащий сокращённые названия дней недели. *n* задаёт ширину в символах для одного дня недели.236237#### `calendar.monthrange(year, month)`238239Возвращает день недели первого дня месяца и количество дней в месяце для указанных *year* и *month*.240241#### `calendar.monthcalendar(year, month)`242243Возвращает матрицу, представляющую календарь на месяц. Каждая строка представляет неделю; дни вне месяца представлены нулями. Каждая неделя начинается с понедельника, если не задано иное через [`setfirstweekday()`](https://python-all.ru/3.11/library/calendar.html#calendar.setfirstweekday).244245#### `calendar.prmonth(theyear, themonth, w=0, l=0)`246247Выводит календарь на месяц, возвращаемый функцией [`month()`](https://python-all.ru/3.11/library/calendar.html#calendar.month).248249#### `calendar.month(theyear, themonth, w=0, l=0)`250251Возвращает календарь на месяц в виде многострочной строки с помощью [`formatmonth()`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar.formatmonth) класса [`TextCalendar`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar).252253#### `calendar.prcal(year, w=0, l=0, c=6, m=3)`254255Выводит календарь на целый год, возвращаемый функцией [`calendar()`](https://python-all.ru/3.11/library/calendar.html#module-calendar).256257#### `calendar.calendar(year, w=2, l=1, c=6, m=3)`258259Возвращает календарь на целый год в три колонки в виде многострочной строки с помощью [`formatyear()`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar.formatyear) класса [`TextCalendar`](https://python-all.ru/3.11/library/calendar.html#calendar.TextCalendar).260261#### `calendar.timegm(tuple)`262263Не связанная напрямую, но удобная функция, которая принимает кортеж времени, например возвращаемый функцией [`gmtime()`](https://python-all.ru/3.11/library/time.html#time.gmtime) из модуля [`time`](https://python-all.ru/3.11/library/time.html#module-time), и возвращает соответствующее значение метки времени Unix, предполагая эпоху 1970 года и кодировку POSIX. На самом деле, [`time.gmtime()`](https://python-all.ru/3.11/library/time.html#time.gmtime) и [`timegm()`](https://python-all.ru/3.11/library/calendar.html#calendar.timegm) являются обратными друг другу.264265Модуль [`calendar`](https://python-all.ru/3.11/library/calendar.html#module-calendar) экспортирует следующие атрибуты данных:266267#### `calendar.day_name`268269Массив, представляющий дни недели в текущей локали.270271#### `calendar.day_abbr`272273Массив, представляющий сокращённые названия дней недели в текущей локали.274275#### `calendar.month_name`276277Массив, представляющий месяцы года в текущей локали. Это соответствует общепринятому соглашению, по которому январь – месяц номер 1, поэтому длина массива равна 13, а `month_name[0]` – пустая строка.278279#### `calendar.month_abbr`280281Массив, представляющий сокращённые названия месяцев года в текущей локали. По общепринятому соглашению январь – месяц номер 1, поэтому он имеет длину 13, а `month_abbr[0]` – пустая строка.282283#### `calendar.MONDAY`284285#### `calendar.TUESDAY`286287#### `calendar.WEDNESDAY`288289#### `calendar.THURSDAY`290291#### `calendar.FRIDAY`292293#### `calendar.SATURDAY`294295#### `calendar.SUNDAY`296297Псевдонимы для номеров дней недели, где `MONDAY` – это `0`, а `SUNDAY` – это `6`.298299Модуль [`calendar`](https://python-all.ru/3.11/library/calendar.html#module-calendar) определяет следующие исключения:300301#### `exception calendar.IllegalMonthError(month)`302303Подкласс [`ValueError`](https://python-all.ru/3.11/library/exceptions.html#ValueError), возбуждается, когда номер месяца выходит за пределы диапазона 1–12 (включительно).304305#### `month`306307Неверный номер месяца.308309#### `exception calendar.IllegalWeekdayError(weekday)`310311Подкласс [`ValueError`](https://python-all.ru/3.11/library/exceptions.html#ValueError), возбуждается, когда указанный номер дня недели выходит за пределы диапазона 0–6 (включительно).312313#### `weekday`314315Неверный номер дня недели.316317> **См. также**318>319> **Модуль [`datetime`](https://python-all.ru/3.11/library/datetime.html#module-datetime)**320>321> Объектно-ориентированный интерфейс для работы с датами и временем, предоставляющий функциональность, аналогичную модулю [`time`](https://python-all.ru/3.11/library/time.html#module-time).322>323> **Модуль [`time`](https://python-all.ru/3.11/library/time.html#module-time)**324>325> Низкоуровневые функции для работы со временем.326327## Использование командной строки328329Новое в версии 2.5.330331Модуль [`calendar`](https://python-all.ru/3.11/library/calendar.html#module-calendar) можно запустить как скрипт из командной строки для интерактивного вывода календаря.332333```shell334python -m calendar [-h] [-L LOCALE] [-e ENCODING] [-t {text,html}]335 [-w WIDTH] [-l LINES] [-s SPACING] [-m MONTHS] [-c CSS]336 [year] [month]337```338339Например, чтобы вывести календарь на 2000 год:340341```console342$ python -m calendar 2000343 2000344345 January February March346Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su347 1 2 1 2 3 4 5 6 1 2 3 4 5348 3 4 5 6 7 8 9 7 8 9 10 11 12 13 6 7 8 9 10 11 1234910 11 12 13 14 15 16 14 15 16 17 18 19 20 13 14 15 16 17 18 1935017 18 19 20 21 22 23 21 22 23 24 25 26 27 20 21 22 23 24 25 2635124 25 26 27 28 29 30 28 29 27 28 29 30 3135231353354 April May June355Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su356 1 2 1 2 3 4 5 6 7 1 2 3 4357 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 1135810 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 1835917 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 2536024 25 26 27 28 29 30 29 30 31 26 27 28 29 30361362 July August September363Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su364 1 2 1 2 3 4 5 6 1 2 3365 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 1036610 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 1736717 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 2436824 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 3036931370371 October November December372Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su373 1 1 2 3 4 5 1 2 3374 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10375 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 1737616 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 2437723 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 3137830 31379```380381Принимаются следующие опции:382383#### `--help, -h`384385Показать справку и выйти.386387#### `--locale LOCALE, -L LOCALE`388389Языковой стандарт (локаль), используемый для названий месяцев и дней недели. По умолчанию – английский.390391#### `--encoding ENCODING, -e ENCODING`392393Кодировка, используемая для вывода. [`--encoding`](https://python-all.ru/3.11/library/calendar.html#cmdoption-calendar-encoding) обязательна, если задан [`--locale`](https://python-all.ru/3.11/library/calendar.html#cmdoption-calendar-locale).394395#### `--type {text,html}, -t {text,html}`396397Вывод календаря в терминал в виде текста или HTML-документа.398399#### `year`400401Год для вывода календаря. Должен быть числом от 1 до 9999. По умолчанию – текущий год.402403#### `month`404405Месяц указанного [`year`](https://python-all.ru/3.11/library/calendar.html#cmdoption-calendar-arg-year), для которого выводится календарь. Должен быть числом от 1 до 12 и может использоваться только в текстовом режиме. По умолчанию выводится календарь на весь год.406407*Опции текстового режима:*408409#### `--width WIDTH, -w WIDTH`410411Ширина столбца с датой в символах терминала. Дата выводится по центру столбца. Любое значение меньше 2 игнорируется. По умолчанию – 2.412413#### `--lines LINES, -l LINES`414415Количество строк для каждой недели в рядах терминала. Дата выводится с выравниванием по верхнему краю. Любое значение меньше 1 игнорируется. По умолчанию – 1.416417#### `--spacing SPACING, -s SPACING`418419Расстояние между месяцами в столбцах. Любое значение меньше 2 игнорируется. По умолчанию: 6.420421#### `--months MONTHS, -m MONTHS`422423Количество месяцев, выводимых в одной строке. По умолчанию: 3.424425*Параметры режима HTML:*426427#### `--css CSS, -c CSS`428429Путь к CSS-таблице стилей, используемой для календаря. Путь должен быть либо относительным по отношению к генерируемому HTML, либо абсолютным HTTP- или `file:///` URL.430