Spec-Zone.ru › Homebrew

Модуль: Language::Python::Shebang Приватный

Расширяется модулем:
T::Helpers
Определён в:
language/python.rb

Обзор

Этот модуль является частью приватного API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Модуль-примесь для Formula, добавляющий функции переписывания шебанга.

Краткое описание констант свернуть

PYTHON_SHEBANG_REGEX =

Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

Регулярное выражение для поиска возможных вариантов шебанга.

%r{\A#! ?(?:/usr/bin/(?:env )?)?python(?:[23](?:\.\d{1,2})?)?( |$)}
PYTHON_SHEBANG_MAX_LENGTH =

Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

Длина самого длинного шебанга, соответствующего SHEBANG_REGEX.

T.let("#! /usr/bin/env pythonx.yyy ".length, Integer)

Краткое описание методов класса свернуть

  • .detected_python_shebang(formula = T.cast(self, Formula), use_python_from_path: false) ⇒ Utils::Shebang::RewriteInfo приватный

Подробное описание методов класса

.detected_python_shebang(formula = T.cast(self, Formula), use_python_from_path: false) ⇒ Utils::Shebang::RewriteInfo

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • formula (Formula) (по умолчанию: T.cast(self, Formula))
  • use_python_from_path (Boolean) (по умолчанию: false)

Возвращает:

  • (Utils::Shebang::RewriteInfo)


116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'language/python.rb', line 116

def detected_python_shebang(formula = T.cast(self, Formula), use_python_from_path: false)
  python_path = if use_python_from_path
    "/usr/bin/env python3"
  else
    python_deps = formula.deps.select(&:required?).map(&:name).grep(/^python(@.+)?$/)
    raise ShebangDetectionError.new("Python", "formula does not depend on Python") if python_deps.empty?
    if python_deps.length > 1
      raise ShebangDetectionError.new("Python", "formula has multiple Python dependencies")
    end

    python_dep = python_deps.first
    Utils::Path.formula_opt_bin(python_dep)/python_dep.sub("@", "")
  end

  python_shebang_rewrite_info(python_path)
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Language/Python/Shebang.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API