OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
pip
/
_internal
/
commands
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/16/2024 09:01:52 PM
rwxr-xr-x
📄
__init__.py
4 KB
11/13/2023 09:31:06 PM
rw-r--r--
📁
__pycache__
-
02/16/2024 09:01:52 PM
rwxr-xr-x
📄
cache.py
5.54 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
check.py
1.64 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
completion.py
3.01 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
configuration.py
9.13 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
debug.py
7.14 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
download.py
4.8 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
freeze.py
3.37 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
hash.py
1.8 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
help.py
1.24 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
index.py
4.68 KB
03/16/2023 12:55:40 PM
rw-r--r--
📄
inspect.py
3.11 KB
03/16/2023 12:55:40 PM
rw-r--r--
📄
install.py
28.05 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
list.py
11.05 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
search.py
5.62 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
show.py
6.83 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
uninstall.py
3.23 KB
11/13/2023 09:31:06 PM
rw-r--r--
📄
wheel.py
6.27 KB
11/13/2023 09:31:06 PM
rw-r--r--
Editing: hash.py
Close
from __future__ import absolute_import import hashlib import logging import sys from pip._internal.cli.base_command import Command from pip._internal.cli.status_codes import ERROR, SUCCESS from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES from pip._internal.utils.misc import read_chunks, write_output from pip._internal.utils.typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from optparse import Values from typing import List logger = logging.getLogger(__name__) class HashCommand(Command): """ Compute a hash of a local package archive. These can be used with --hash in a requirements file to do repeatable installs. """ usage = '%prog [options] <file> ...' ignore_require_venv = True def add_options(self): # type: () -> None self.cmd_opts.add_option( '-a', '--algorithm', dest='algorithm', choices=STRONG_HASHES, action='store', default=FAVORITE_HASH, help='The hash algorithm to use: one of {}'.format( ', '.join(STRONG_HASHES))) self.parser.insert_option_group(0, self.cmd_opts) def run(self, options, args): # type: (Values, List[str]) -> int if not args: self.parser.print_usage(sys.stderr) return ERROR algorithm = options.algorithm for path in args: write_output('%s:\n--hash=%s:%s', path, algorithm, _hash_of_file(path, algorithm)) return SUCCESS def _hash_of_file(path, algorithm): # type: (str, str) -> str """Return the hash digest of a file.""" with open(path, 'rb') as archive: hash = hashlib.new(algorithm) for chunk in read_chunks(archive): hash.update(chunk) return hash.hexdigest()