Python SDK: UrlTools: адреса и параметры
ctx.url() собирает и разбирает адреса локально. Сетевого обращения здесь нет.
Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.
Методы
absolutize
ctx.url().absolutize(base, relative) -> str
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
base |
str |
Да | Исходный полный URL. |
relative |
str |
Да | Относительный или полный адрес для разрешения. |
Результат: str.
Достроить относительную ссылку по известному адресу страницы.
result = ctx.url().absolutize('https://example.com/catalog', '/product')
param
ctx.url().param(url, name) -> str | None
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
url |
str |
Да | Разрешённый HTTP(S)-адрес источника. |
name |
str |
Да | Имя поля, заголовка, файла, секрета или метрики по назначению метода. |
Результат: str | None.
Прочитать строковый query-параметр адреса.
result = ctx.url().param('https://example.com/catalog?page=2', 'page')
with_param
ctx.url().with_param(url, name, value) -> str
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
url |
str |
Да | Разрешённый HTTP(S)-адрес источника. |
name |
str |
Да | Имя поля, заголовка, файла, секрета или метрики по назначению метода. |
value |
Any |
Да | Значение по назначению метода; см. описание результата. |
Результат: str.
Добавить или заменить один query-параметр.
result = ctx.url().with_param('https://example.com/catalog', 'page', 2)
page
ctx.url().page(template, page) -> str
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
template |
str |
Да | URL-шаблон с {page}. |
page |
int |
Да | Номер страницы в разрешённой глубине. |
Результат: str.
Подставить номер вместо {page} в шаблоне.
result = ctx.url().page('https://example.com/catalog?page={page}', 2)
Ошибки и контекст выполнения
Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.