Caution
This API is not finalised, and may change in a patch version.
installer.sources
¶
Source of information about a wheel file.
- class installer.sources.WheelFile¶
Implements WheelSource, for an existing file from the filesystem.
Example usage:
>>> with WheelFile.open("sampleproject-2.0.0-py3-none-any.whl") as source: ... installer.install(source, destination)
- validation_error¶
alias of
_WheelFileValidationError
- __init__(f)¶
Initialize a WheelFile object.
- Parameters:
f (ZipFile) – An open zipfile, which will stay open as long as this object is used.
- Return type:
None
- classmethod open(path)¶
Create a wheelfile from a given path.
- Parameters:
path (os.PathLike[str])
- Return type:
- read_dist_info(filename)¶
Get contents, from
filename
in the dist-info directory.
- validate_record(*, validate_contents=True)¶
Validate
RECORD
of the wheel.This method should be called before
install
if validation is required.File names will always be validated against
RECORD
.If
validate_contents
is true, sizes and hashes of files will also be validated againstRECORD
.- Parameters:
validate_contents (bool) – Whether to validate content integrity.
- Return type:
None
- get_contents()¶
Sequential access to all contents of the wheel (including dist-info files).
This implementation requires that every file that is a part of the wheel archive has a corresponding entry in RECORD. If they are not, an
AssertionError
will be raised.
- class installer.sources.WheelSource¶
Represents an installable wheel.
This is an abstract class, whose methods have to be implemented by subclasses.
- validation_error¶
Added in version 0.7.0.
Exception to be raised by
validate_record()
when validation fails. This is expected to be a subclass ofValueError
.alias of
ValueError
- __init__(distribution, version)¶
Initialize a WheelSource object.
- property dist_info_filenames: list[str]¶
Get names of all files in the dist-info directory.
Sample usage/behaviour:
>>> wheel_source.dist_info_filenames ['METADATA', 'WHEEL']
- read_dist_info(filename)¶
Get contents, from
filename
in the dist-info directory.Sample usage/behaviour:
>>> wheel_source.read_dist_info("METADATA") ...
- validate_record()¶
Validate
RECORD
of the wheel.Added in version 0.7.0.
This method should be called before
install
if validation is required.- Return type:
None
- get_contents()¶
Sequential access to all contents of the wheel (including dist-info files).
This method should return an iterable. Each value from the iterable must be a tuple containing 3 elements:
record: 3-value tuple, to pass to
RecordEntry.from_elements
.stream: An
io.BufferedReader
object, providing the contents of the file at the location provided by the first element (path).is_executable: A boolean, representing whether the item has an executable bit.
All paths must be relative to the root of the wheel.
Sample usage/behaviour:
>>> iterable = wheel_source.get_contents() >>> next(iterable) (('pkg/__init__.py', '', '0'), <...>, False)
This method may be called multiple times. Each iterable returned must provide the same content upon reading from a specific file’s stream.