installer.destinations - installer

Caution

This API is not finalised, and may change in a patch version.

# `installer.destinations`

Handles all file writing and post-installation processing.

class `installer.destinations.` `WheelDestination`

  Represents the location for wheel installation.

  Subclasses are expected to handle script generation and rewriting of the RECORD file after installation.

  `write_script`(name, module, attr, section)

    Write a script in the correct location to invoke given entry point.

    The stream should be closed by the caller.

    Example usage/behaviour:

        >>> dest.write_script("pip", "pip._internal.cli", "main", "console")

    Parameters

      - name (Text) –

      - module (Text) –

      - attr (Text) –

      - section (ScriptSection) –

    Return type

      RecordEntry

  `write_file`(scheme, path, stream)

    Write a file to correct `path` within the `scheme`.

    The stream would be closed by the caller, after this call.

    Example usage/behaviour:

        >>> with open("__init__.py") as stream:
        ...     dest.write_file("purelib", "pkg/__init__.py", stream)

    Parameters

      - scheme (Scheme) –

      - path (FSPath) –

      - stream (BinaryIO) –

    Return type

      RecordEntry

  `finalize_installation`(scheme, record_file_path, records)

    Finalize installation, after all the files are written.

    This method is required to (re)write the RECORD file such that it includes all given `records` as well as any additional generated content (eg: scripts).

    Example usage/behaviour:

        >>> dest.finalize_installation("purelib")

    Parameters

      - scheme (Scheme) –

      - record_file_path (FSPath) –

      - records (Iterable[RecordEntry]) –

    Return type

      None

class `installer.destinations.` `SchemeDictionaryDestination`

  Destination, based on a mapping of {scheme: file-system-path}.

  `__init__`(scheme_dict, interpreter, script_kind, hash_algorithm='sha256')

    Construct a `SchemeDictionaryDestination` object.

    Parameters

      - scheme_dict (Dict[str, str]) – a mapping of {scheme: file-system-path}

      - interpreter (str) – the interpreter to use for generating scripts

      - script_kind (LauncherKind) – the “kind” of launcher script to use

      - hash_algorithm (str) – the hashing algorithm to use, which is a member of `hashlib.algorithms_available` (ideally from `hashlib.algorithms_guaranteed`).

    Return type

      None

  `write_file`(scheme, path, stream)

    Write a file to correct `path` within the `scheme`.

    Parameters

      - scheme (Scheme) –

      - path (FSPath) –

      - stream (BinaryIO) –

    Return type

      RecordEntry

  `write_script`(name, module, attr, section)

    Write a script in the correct location to invoke given entry point.

    Parameters

      - name (Text) –

      - module (Text) –

      - attr (Text) –

      - section (ScriptSection) –

    Return type

      RecordEntry

  `finalize_installation`(scheme, record_file_path, records)

    Finalize installation, after all the files are written.

    This will write the RECORD file, based on the provided `record_file_path`.

    Parameters

      - scheme (Scheme) –

      - record_file_path (FSPath) –

      - records (Iterable[RecordEntry]) –

    Return type

      None