Added more libs
This commit is contained in:
parent
aa815d591b
commit
06d7a294e0
11
.gitignore
vendored
11
.gitignore
vendored
@ -1,8 +1,6 @@
|
||||
# ---> Python
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
@ -92,15 +90,6 @@ celerybeat.pid
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
BIN
Python39/DLLs/_asyncio.pyd
Normal file
BIN
Python39/DLLs/_asyncio.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_asyncio_d.pyd
Normal file
BIN
Python39/DLLs/_asyncio_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_bz2.pyd
Normal file
BIN
Python39/DLLs/_bz2.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_bz2_d.pyd
Normal file
BIN
Python39/DLLs/_bz2_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ctypes.pyd
Normal file
BIN
Python39/DLLs/_ctypes.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ctypes_d.pyd
Normal file
BIN
Python39/DLLs/_ctypes_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ctypes_test.pyd
Normal file
BIN
Python39/DLLs/_ctypes_test.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ctypes_test_d.pyd
Normal file
BIN
Python39/DLLs/_ctypes_test_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_decimal.pyd
Normal file
BIN
Python39/DLLs/_decimal.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_decimal_d.pyd
Normal file
BIN
Python39/DLLs/_decimal_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_elementtree.pyd
Normal file
BIN
Python39/DLLs/_elementtree.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_elementtree_d.pyd
Normal file
BIN
Python39/DLLs/_elementtree_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_hashlib.pyd
Normal file
BIN
Python39/DLLs/_hashlib.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_hashlib_d.pyd
Normal file
BIN
Python39/DLLs/_hashlib_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_lzma.pyd
Normal file
BIN
Python39/DLLs/_lzma.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_lzma_d.pyd
Normal file
BIN
Python39/DLLs/_lzma_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_msi.pyd
Normal file
BIN
Python39/DLLs/_msi.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_msi_d.pyd
Normal file
BIN
Python39/DLLs/_msi_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_multiprocessing.pyd
Normal file
BIN
Python39/DLLs/_multiprocessing.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_multiprocessing_d.pyd
Normal file
BIN
Python39/DLLs/_multiprocessing_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_overlapped.pyd
Normal file
BIN
Python39/DLLs/_overlapped.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_overlapped_d.pyd
Normal file
BIN
Python39/DLLs/_overlapped_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_queue.pyd
Normal file
BIN
Python39/DLLs/_queue.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_queue_d.pyd
Normal file
BIN
Python39/DLLs/_queue_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_socket.pyd
Normal file
BIN
Python39/DLLs/_socket.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_socket_d.pyd
Normal file
BIN
Python39/DLLs/_socket_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_sqlite3.pyd
Normal file
BIN
Python39/DLLs/_sqlite3.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_sqlite3_d.pyd
Normal file
BIN
Python39/DLLs/_sqlite3_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ssl.pyd
Normal file
BIN
Python39/DLLs/_ssl.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_ssl_d.pyd
Normal file
BIN
Python39/DLLs/_ssl_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testbuffer.pyd
Normal file
BIN
Python39/DLLs/_testbuffer.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testbuffer_d.pyd
Normal file
BIN
Python39/DLLs/_testbuffer_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testcapi.pyd
Normal file
BIN
Python39/DLLs/_testcapi.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testcapi_d.pyd
Normal file
BIN
Python39/DLLs/_testcapi_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testconsole.pyd
Normal file
BIN
Python39/DLLs/_testconsole.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testconsole_d.pyd
Normal file
BIN
Python39/DLLs/_testconsole_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testimportmultiple.pyd
Normal file
BIN
Python39/DLLs/_testimportmultiple.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testimportmultiple_d.pyd
Normal file
BIN
Python39/DLLs/_testimportmultiple_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testinternalcapi.pyd
Normal file
BIN
Python39/DLLs/_testinternalcapi.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testinternalcapi_d.pyd
Normal file
BIN
Python39/DLLs/_testinternalcapi_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testmultiphase.pyd
Normal file
BIN
Python39/DLLs/_testmultiphase.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_testmultiphase_d.pyd
Normal file
BIN
Python39/DLLs/_testmultiphase_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_tkinter.pyd
Normal file
BIN
Python39/DLLs/_tkinter.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_tkinter_d.pyd
Normal file
BIN
Python39/DLLs/_tkinter_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_uuid.pyd
Normal file
BIN
Python39/DLLs/_uuid.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_uuid_d.pyd
Normal file
BIN
Python39/DLLs/_uuid_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_zoneinfo.pyd
Normal file
BIN
Python39/DLLs/_zoneinfo.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/_zoneinfo_d.pyd
Normal file
BIN
Python39/DLLs/_zoneinfo_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/pyexpat.pyd
Normal file
BIN
Python39/DLLs/pyexpat.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/pyexpat_d.pyd
Normal file
BIN
Python39/DLLs/pyexpat_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/select.pyd
Normal file
BIN
Python39/DLLs/select.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/select_d.pyd
Normal file
BIN
Python39/DLLs/select_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/unicodedata.pyd
Normal file
BIN
Python39/DLLs/unicodedata.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/unicodedata_d.pyd
Normal file
BIN
Python39/DLLs/unicodedata_d.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/winsound.pyd
Normal file
BIN
Python39/DLLs/winsound.pyd
Normal file
Binary file not shown.
BIN
Python39/DLLs/winsound_d.pyd
Normal file
BIN
Python39/DLLs/winsound_d.pyd
Normal file
Binary file not shown.
BIN
Python39/Lib/site-packages/yaml/_yaml.cp39-win_amd64.pyd
Normal file
BIN
Python39/Lib/site-packages/yaml/_yaml.cp39-win_amd64.pyd
Normal file
Binary file not shown.
499
Python39/Lib/venv/__init__.py
Normal file
499
Python39/Lib/venv/__init__.py
Normal file
@ -0,0 +1,499 @@
|
||||
"""
|
||||
Virtual environment (venv) package for Python. Based on PEP 405.
|
||||
|
||||
Copyright (C) 2011-2014 Vinay Sajip.
|
||||
Licensed to the PSF under a contributor agreement.
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import sysconfig
|
||||
import types
|
||||
|
||||
|
||||
CORE_VENV_DEPS = ('pip', 'setuptools')
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class EnvBuilder:
|
||||
"""
|
||||
This class exists to allow virtual environment creation to be
|
||||
customized. The constructor parameters determine the builder's
|
||||
behaviour when called upon to create a virtual environment.
|
||||
|
||||
By default, the builder makes the system (global) site-packages dir
|
||||
*un*available to the created environment.
|
||||
|
||||
If invoked using the Python -m option, the default is to use copying
|
||||
on Windows platforms but symlinks elsewhere. If instantiated some
|
||||
other way, the default is to *not* use symlinks.
|
||||
|
||||
:param system_site_packages: If True, the system (global) site-packages
|
||||
dir is available to created environments.
|
||||
:param clear: If True, delete the contents of the environment directory if
|
||||
it already exists, before environment creation.
|
||||
:param symlinks: If True, attempt to symlink rather than copy files into
|
||||
virtual environment.
|
||||
:param upgrade: If True, upgrade an existing virtual environment.
|
||||
:param with_pip: If True, ensure pip is installed in the virtual
|
||||
environment
|
||||
:param prompt: Alternative terminal prefix for the environment.
|
||||
:param upgrade_deps: Update the base venv modules to the latest on PyPI
|
||||
"""
|
||||
|
||||
def __init__(self, system_site_packages=False, clear=False,
|
||||
symlinks=False, upgrade=False, with_pip=False, prompt=None,
|
||||
upgrade_deps=False):
|
||||
self.system_site_packages = system_site_packages
|
||||
self.clear = clear
|
||||
self.symlinks = symlinks
|
||||
self.upgrade = upgrade
|
||||
self.with_pip = with_pip
|
||||
if prompt == '.': # see bpo-38901
|
||||
prompt = os.path.basename(os.getcwd())
|
||||
self.prompt = prompt
|
||||
self.upgrade_deps = upgrade_deps
|
||||
|
||||
def create(self, env_dir):
|
||||
"""
|
||||
Create a virtual environment in a directory.
|
||||
|
||||
:param env_dir: The target directory to create an environment in.
|
||||
|
||||
"""
|
||||
env_dir = os.path.abspath(env_dir)
|
||||
context = self.ensure_directories(env_dir)
|
||||
# See issue 24875. We need system_site_packages to be False
|
||||
# until after pip is installed.
|
||||
true_system_site_packages = self.system_site_packages
|
||||
self.system_site_packages = False
|
||||
self.create_configuration(context)
|
||||
self.setup_python(context)
|
||||
if self.with_pip:
|
||||
self._setup_pip(context)
|
||||
if not self.upgrade:
|
||||
self.setup_scripts(context)
|
||||
self.post_setup(context)
|
||||
if true_system_site_packages:
|
||||
# We had set it to False before, now
|
||||
# restore it and rewrite the configuration
|
||||
self.system_site_packages = True
|
||||
self.create_configuration(context)
|
||||
if self.upgrade_deps:
|
||||
self.upgrade_dependencies(context)
|
||||
|
||||
def clear_directory(self, path):
|
||||
for fn in os.listdir(path):
|
||||
fn = os.path.join(path, fn)
|
||||
if os.path.islink(fn) or os.path.isfile(fn):
|
||||
os.remove(fn)
|
||||
elif os.path.isdir(fn):
|
||||
shutil.rmtree(fn)
|
||||
|
||||
def ensure_directories(self, env_dir):
|
||||
"""
|
||||
Create the directories for the environment.
|
||||
|
||||
Returns a context object which holds paths in the environment,
|
||||
for use by subsequent logic.
|
||||
"""
|
||||
|
||||
def create_if_needed(d):
|
||||
if not os.path.exists(d):
|
||||
os.makedirs(d)
|
||||
elif os.path.islink(d) or os.path.isfile(d):
|
||||
raise ValueError('Unable to create directory %r' % d)
|
||||
|
||||
if os.path.exists(env_dir) and self.clear:
|
||||
self.clear_directory(env_dir)
|
||||
context = types.SimpleNamespace()
|
||||
context.env_dir = env_dir
|
||||
context.env_name = os.path.split(env_dir)[1]
|
||||
prompt = self.prompt if self.prompt is not None else context.env_name
|
||||
context.prompt = '(%s) ' % prompt
|
||||
create_if_needed(env_dir)
|
||||
executable = sys._base_executable
|
||||
dirname, exename = os.path.split(os.path.abspath(executable))
|
||||
context.executable = executable
|
||||
context.python_dir = dirname
|
||||
context.python_exe = exename
|
||||
if sys.platform == 'win32':
|
||||
binname = 'Scripts'
|
||||
incpath = 'Include'
|
||||
libpath = os.path.join(env_dir, 'Lib', 'site-packages')
|
||||
else:
|
||||
binname = 'bin'
|
||||
incpath = 'include'
|
||||
libpath = os.path.join(env_dir, 'lib',
|
||||
'python%d.%d' % sys.version_info[:2],
|
||||
'site-packages')
|
||||
context.inc_path = path = os.path.join(env_dir, incpath)
|
||||
create_if_needed(path)
|
||||
create_if_needed(libpath)
|
||||
# Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX
|
||||
if ((sys.maxsize > 2**32) and (os.name == 'posix') and
|
||||
(sys.platform != 'darwin')):
|
||||
link_path = os.path.join(env_dir, 'lib64')
|
||||
if not os.path.exists(link_path): # Issue #21643
|
||||
os.symlink('lib', link_path)
|
||||
context.bin_path = binpath = os.path.join(env_dir, binname)
|
||||
context.bin_name = binname
|
||||
context.env_exe = os.path.join(binpath, exename)
|
||||
create_if_needed(binpath)
|
||||
return context
|
||||
|
||||
def create_configuration(self, context):
|
||||
"""
|
||||
Create a configuration file indicating where the environment's Python
|
||||
was copied from, and whether the system site-packages should be made
|
||||
available in the environment.
|
||||
|
||||
:param context: The information for the environment creation request
|
||||
being processed.
|
||||
"""
|
||||
context.cfg_path = path = os.path.join(context.env_dir, 'pyvenv.cfg')
|
||||
with open(path, 'w', encoding='utf-8') as f:
|
||||
f.write('home = %s\n' % context.python_dir)
|
||||
if self.system_site_packages:
|
||||
incl = 'true'
|
||||
else:
|
||||
incl = 'false'
|
||||
f.write('include-system-site-packages = %s\n' % incl)
|
||||
f.write('version = %d.%d.%d\n' % sys.version_info[:3])
|
||||
if self.prompt is not None:
|
||||
f.write(f'prompt = {self.prompt!r}\n')
|
||||
|
||||
if os.name != 'nt':
|
||||
def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
|
||||
"""
|
||||
Try symlinking a file, and if that fails, fall back to copying.
|
||||
"""
|
||||
force_copy = not self.symlinks
|
||||
if not force_copy:
|
||||
try:
|
||||
if not os.path.islink(dst): # can't link to itself!
|
||||
if relative_symlinks_ok:
|
||||
assert os.path.dirname(src) == os.path.dirname(dst)
|
||||
os.symlink(os.path.basename(src), dst)
|
||||
else:
|
||||
os.symlink(src, dst)
|
||||
except Exception: # may need to use a more specific exception
|
||||
logger.warning('Unable to symlink %r to %r', src, dst)
|
||||
force_copy = True
|
||||
if force_copy:
|
||||
shutil.copyfile(src, dst)
|
||||
else:
|
||||
def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
|
||||
"""
|
||||
Try symlinking a file, and if that fails, fall back to copying.
|
||||
"""
|
||||
bad_src = os.path.lexists(src) and not os.path.exists(src)
|
||||
if self.symlinks and not bad_src and not os.path.islink(dst):
|
||||
try:
|
||||
if relative_symlinks_ok:
|
||||
assert os.path.dirname(src) == os.path.dirname(dst)
|
||||
os.symlink(os.path.basename(src), dst)
|
||||
else:
|
||||
os.symlink(src, dst)
|
||||
return
|
||||
except Exception: # may need to use a more specific exception
|
||||
logger.warning('Unable to symlink %r to %r', src, dst)
|
||||
|
||||
# On Windows, we rewrite symlinks to our base python.exe into
|
||||
# copies of venvlauncher.exe
|
||||
basename, ext = os.path.splitext(os.path.basename(src))
|
||||
srcfn = os.path.join(os.path.dirname(__file__),
|
||||
"scripts",
|
||||
"nt",
|
||||
basename + ext)
|
||||
# Builds or venv's from builds need to remap source file
|
||||
# locations, as we do not put them into Lib/venv/scripts
|
||||
if sysconfig.is_python_build(True) or not os.path.isfile(srcfn):
|
||||
if basename.endswith('_d'):
|
||||
ext = '_d' + ext
|
||||
basename = basename[:-2]
|
||||
if basename == 'python':
|
||||
basename = 'venvlauncher'
|
||||
elif basename == 'pythonw':
|
||||
basename = 'venvwlauncher'
|
||||
src = os.path.join(os.path.dirname(src), basename + ext)
|
||||
else:
|
||||
src = srcfn
|
||||
if not os.path.exists(src):
|
||||
if not bad_src:
|
||||
logger.warning('Unable to copy %r', src)
|
||||
return
|
||||
|
||||
shutil.copyfile(src, dst)
|
||||
|
||||
def setup_python(self, context):
|
||||
"""
|
||||
Set up a Python executable in the environment.
|
||||
|
||||
:param context: The information for the environment creation request
|
||||
being processed.
|
||||
"""
|
||||
binpath = context.bin_path
|
||||
path = context.env_exe
|
||||
copier = self.symlink_or_copy
|
||||
dirname = context.python_dir
|
||||
if os.name != 'nt':
|
||||
copier(context.executable, path)
|
||||
if not os.path.islink(path):
|
||||
os.chmod(path, 0o755)
|
||||
for suffix in ('python', 'python3', f'python3.{sys.version_info[1]}'):
|
||||
path = os.path.join(binpath, suffix)
|
||||
if not os.path.exists(path):
|
||||
# Issue 18807: make copies if
|
||||
# symlinks are not wanted
|
||||
copier(context.env_exe, path, relative_symlinks_ok=True)
|
||||
if not os.path.islink(path):
|
||||
os.chmod(path, 0o755)
|
||||
else:
|
||||
if self.symlinks:
|
||||
# For symlinking, we need a complete copy of the root directory
|
||||
# If symlinks fail, you'll get unnecessary copies of files, but
|
||||
# we assume that if you've opted into symlinks on Windows then
|
||||
# you know what you're doing.
|
||||
suffixes = [
|
||||
f for f in os.listdir(dirname) if
|
||||
os.path.normcase(os.path.splitext(f)[1]) in ('.exe', '.dll')
|
||||
]
|
||||
if sysconfig.is_python_build(True):
|
||||
suffixes = [
|
||||
f for f in suffixes if
|
||||
os.path.normcase(f).startswith(('python', 'vcruntime'))
|
||||
]
|
||||
else:
|
||||
suffixes = ['python.exe', 'python_d.exe', 'pythonw.exe',
|
||||
'pythonw_d.exe']
|
||||
|
||||
for suffix in suffixes:
|
||||
src = os.path.join(dirname, suffix)
|
||||
if os.path.lexists(src):
|
||||
copier(src, os.path.join(binpath, suffix))
|
||||
|
||||
if sysconfig.is_python_build(True):
|
||||
# copy init.tcl
|
||||
for root, dirs, files in os.walk(context.python_dir):
|
||||
if 'init.tcl' in files:
|
||||
tcldir = os.path.basename(root)
|
||||
tcldir = os.path.join(context.env_dir, 'Lib', tcldir)
|
||||
if not os.path.exists(tcldir):
|
||||
os.makedirs(tcldir)
|
||||
src = os.path.join(root, 'init.tcl')
|
||||
dst = os.path.join(tcldir, 'init.tcl')
|
||||
shutil.copyfile(src, dst)
|
||||
break
|
||||
|
||||
def _setup_pip(self, context):
|
||||
"""Installs or upgrades pip in a virtual environment"""
|
||||
# We run ensurepip in isolated mode to avoid side effects from
|
||||
# environment vars, the current directory and anything else
|
||||
# intended for the global Python environment
|
||||
cmd = [context.env_exe, '-Im', 'ensurepip', '--upgrade',
|
||||
'--default-pip']
|
||||
subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
||||
|
||||
def setup_scripts(self, context):
|
||||
"""
|
||||
Set up scripts into the created environment from a directory.
|
||||
|
||||
This method installs the default scripts into the environment
|
||||
being created. You can prevent the default installation by overriding
|
||||
this method if you really need to, or if you need to specify
|
||||
a different location for the scripts to install. By default, the
|
||||
'scripts' directory in the venv package is used as the source of
|
||||
scripts to install.
|
||||
"""
|
||||
path = os.path.abspath(os.path.dirname(__file__))
|
||||
path = os.path.join(path, 'scripts')
|
||||
self.install_scripts(context, path)
|
||||
|
||||
def post_setup(self, context):
|
||||
"""
|
||||
Hook for post-setup modification of the venv. Subclasses may install
|
||||
additional packages or scripts here, add activation shell scripts, etc.
|
||||
|
||||
:param context: The information for the environment creation request
|
||||
being processed.
|
||||
"""
|
||||
pass
|
||||
|
||||
def replace_variables(self, text, context):
|
||||
"""
|
||||
Replace variable placeholders in script text with context-specific
|
||||
variables.
|
||||
|
||||
Return the text passed in , but with variables replaced.
|
||||
|
||||
:param text: The text in which to replace placeholder variables.
|
||||
:param context: The information for the environment creation request
|
||||
being processed.
|
||||
"""
|
||||
text = text.replace('__VENV_DIR__', context.env_dir)
|
||||
text = text.replace('__VENV_NAME__', context.env_name)
|
||||
text = text.replace('__VENV_PROMPT__', context.prompt)
|
||||
text = text.replace('__VENV_BIN_NAME__', context.bin_name)
|
||||
text = text.replace('__VENV_PYTHON__', context.env_exe)
|
||||
return text
|
||||
|
||||
def install_scripts(self, context, path):
|
||||
"""
|
||||
Install scripts into the created environment from a directory.
|
||||
|
||||
:param context: The information for the environment creation request
|
||||
being processed.
|
||||
:param path: Absolute pathname of a directory containing script.
|
||||
Scripts in the 'common' subdirectory of this directory,
|
||||
and those in the directory named for the platform
|
||||
being run on, are installed in the created environment.
|
||||
Placeholder variables are replaced with environment-
|
||||
specific values.
|
||||
"""
|
||||
binpath = context.bin_path
|
||||
plen = len(path)
|
||||
for root, dirs, files in os.walk(path):
|
||||
if root == path: # at top-level, remove irrelevant dirs
|
||||
for d in dirs[:]:
|
||||
if d not in ('common', os.name):
|
||||
dirs.remove(d)
|
||||
continue # ignore files in top level
|
||||
for f in files:
|
||||
if (os.name == 'nt' and f.startswith('python')
|
||||
and f.endswith(('.exe', '.pdb'))):
|
||||
continue
|
||||
srcfile = os.path.join(root, f)
|
||||
suffix = root[plen:].split(os.sep)[2:]
|
||||
if not suffix:
|
||||
dstdir = binpath
|
||||
else:
|
||||
dstdir = os.path.join(binpath, *suffix)
|
||||
if not os.path.exists(dstdir):
|
||||
os.makedirs(dstdir)
|
||||
dstfile = os.path.join(dstdir, f)
|
||||
with open(srcfile, 'rb') as f:
|
||||
data = f.read()
|
||||
if not srcfile.endswith(('.exe', '.pdb')):
|
||||
try:
|
||||
data = data.decode('utf-8')
|
||||
data = self.replace_variables(data, context)
|
||||
data = data.encode('utf-8')
|
||||
except UnicodeError as e:
|
||||
data = None
|
||||
logger.warning('unable to copy script %r, '
|
||||
'may be binary: %s', srcfile, e)
|
||||
if data is not None:
|
||||
with open(dstfile, 'wb') as f:
|
||||
f.write(data)
|
||||
shutil.copymode(srcfile, dstfile)
|
||||
|
||||
def upgrade_dependencies(self, context):
|
||||
logger.debug(
|
||||
f'Upgrading {CORE_VENV_DEPS} packages in {context.bin_path}'
|
||||
)
|
||||
if sys.platform == 'win32':
|
||||
python_exe = os.path.join(context.bin_path, 'python.exe')
|
||||
else:
|
||||
python_exe = os.path.join(context.bin_path, 'python')
|
||||
cmd = [python_exe, '-m', 'pip', 'install', '--upgrade']
|
||||
cmd.extend(CORE_VENV_DEPS)
|
||||
subprocess.check_call(cmd)
|
||||
|
||||
|
||||
def create(env_dir, system_site_packages=False, clear=False,
|
||||
symlinks=False, with_pip=False, prompt=None, upgrade_deps=False):
|
||||
"""Create a virtual environment in a directory."""
|
||||
builder = EnvBuilder(system_site_packages=system_site_packages,
|
||||
clear=clear, symlinks=symlinks, with_pip=with_pip,
|
||||
prompt=prompt, upgrade_deps=upgrade_deps)
|
||||
builder.create(env_dir)
|
||||
|
||||
def main(args=None):
|
||||
compatible = True
|
||||
if sys.version_info < (3, 3):
|
||||
compatible = False
|
||||
elif not hasattr(sys, 'base_prefix'):
|
||||
compatible = False
|
||||
if not compatible:
|
||||
raise ValueError('This script is only for use with Python >= 3.3')
|
||||
else:
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(prog=__name__,
|
||||
description='Creates virtual Python '
|
||||
'environments in one or '
|
||||
'more target '
|
||||
'directories.',
|
||||
epilog='Once an environment has been '
|
||||
'created, you may wish to '
|
||||
'activate it, e.g. by '
|
||||
'sourcing an activate script '
|
||||
'in its bin directory.')
|
||||
parser.add_argument('dirs', metavar='ENV_DIR', nargs='+',
|
||||
help='A directory to create the environment in.')
|
||||
parser.add_argument('--system-site-packages', default=False,
|
||||
action='store_true', dest='system_site',
|
||||
help='Give the virtual environment access to the '
|
||||
'system site-packages dir.')
|
||||
if os.name == 'nt':
|
||||
use_symlinks = False
|
||||
else:
|
||||
use_symlinks = True
|
||||
group = parser.add_mutually_exclusive_group()
|
||||
group.add_argument('--symlinks', default=use_symlinks,
|
||||
action='store_true', dest='symlinks',
|
||||
help='Try to use symlinks rather than copies, '
|
||||
'when symlinks are not the default for '
|
||||
'the platform.')
|
||||
group.add_argument('--copies', default=not use_symlinks,
|
||||
action='store_false', dest='symlinks',
|
||||
help='Try to use copies rather than symlinks, '
|
||||
'even when symlinks are the default for '
|
||||
'the platform.')
|
||||
parser.add_argument('--clear', default=False, action='store_true',
|
||||
dest='clear', help='Delete the contents of the '
|
||||
'environment directory if it '
|
||||
'already exists, before '
|
||||
'environment creation.')
|
||||
parser.add_argument('--upgrade', default=False, action='store_true',
|
||||
dest='upgrade', help='Upgrade the environment '
|
||||
'directory to use this version '
|
||||
'of Python, assuming Python '
|
||||
'has been upgraded in-place.')
|
||||
parser.add_argument('--without-pip', dest='with_pip',
|
||||
default=True, action='store_false',
|
||||
help='Skips installing or upgrading pip in the '
|
||||
'virtual environment (pip is bootstrapped '
|
||||
'by default)')
|
||||
parser.add_argument('--prompt',
|
||||
help='Provides an alternative prompt prefix for '
|
||||
'this environment.')
|
||||
parser.add_argument('--upgrade-deps', default=False, action='store_true',
|
||||
dest='upgrade_deps',
|
||||
help='Upgrade core dependencies: {} to the latest '
|
||||
'version in PyPI'.format(
|
||||
' '.join(CORE_VENV_DEPS)))
|
||||
options = parser.parse_args(args)
|
||||
if options.upgrade and options.clear:
|
||||
raise ValueError('you cannot supply --upgrade and --clear together.')
|
||||
builder = EnvBuilder(system_site_packages=options.system_site,
|
||||
clear=options.clear,
|
||||
symlinks=options.symlinks,
|
||||
upgrade=options.upgrade,
|
||||
with_pip=options.with_pip,
|
||||
prompt=options.prompt,
|
||||
upgrade_deps=options.upgrade_deps)
|
||||
for d in options.dirs:
|
||||
builder.create(d)
|
||||
|
||||
if __name__ == '__main__':
|
||||
rc = 1
|
||||
try:
|
||||
main()
|
||||
rc = 0
|
||||
except Exception as e:
|
||||
print('Error: %s' % e, file=sys.stderr)
|
||||
sys.exit(rc)
|
10
Python39/Lib/venv/__main__.py
Normal file
10
Python39/Lib/venv/__main__.py
Normal file
@ -0,0 +1,10 @@
|
||||
import sys
|
||||
from . import main
|
||||
|
||||
rc = 1
|
||||
try:
|
||||
main()
|
||||
rc = 0
|
||||
except Exception as e:
|
||||
print('Error: %s' % e, file=sys.stderr)
|
||||
sys.exit(rc)
|
399
Python39/Lib/venv/scripts/common/Activate.ps1
Normal file
399
Python39/Lib/venv/scripts/common/Activate.ps1
Normal file
@ -0,0 +1,399 @@
|
||||
<#
|
||||
.Synopsis
|
||||
Activate a Python virtual environment for the current PowerShell session.
|
||||
|
||||
.Description
|
||||
Pushes the python executable for a virtual environment to the front of the
|
||||
$Env:PATH environment variable and sets the prompt to signify that you are
|
||||
in a Python virtual environment. Makes use of the command line switches as
|
||||
well as the `pyvenv.cfg` file values present in the virtual environment.
|
||||
|
||||
.Parameter VenvDir
|
||||
Path to the directory that contains the virtual environment to activate. The
|
||||
default value for this is the parent of the directory that the Activate.ps1
|
||||
script is located within.
|
||||
|
||||
.Parameter Prompt
|
||||
The prompt prefix to display when this virtual environment is activated. By
|
||||
default, this prompt is the name of the virtual environment folder (VenvDir)
|
||||
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
||||
|
||||
.Example
|
||||
Activate.ps1
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -Verbose
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||
and shows extra information about the activation as it executes.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
||||
Activates the Python virtual environment located in the specified location.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -Prompt "MyPython"
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||
and prefixes the current prompt with the specified string (surrounded in
|
||||
parentheses) while the virtual environment is active.
|
||||
|
||||
.Notes
|
||||
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
||||
execution policy for the user. You can do this by issuing the following PowerShell
|
||||
command:
|
||||
|
||||
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
For more information on Execution Policies:
|
||||
https://go.microsoft.com/fwlink/?LinkID=135170
|
||||
|
||||
#>
|
||||
Param(
|
||||
[Parameter(Mandatory = $false)]
|
||||
[String]
|
||||
$VenvDir,
|
||||
[Parameter(Mandatory = $false)]
|
||||
[String]
|
||||
$Prompt
|
||||
)
|
||||
|
||||
<# Function declarations --------------------------------------------------- #>
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Remove all shell session elements added by the Activate script, including the
|
||||
addition of the virtual environment's Python executable from the beginning of
|
||||
the PATH variable.
|
||||
|
||||
.Parameter NonDestructive
|
||||
If present, do not remove this function from the global namespace for the
|
||||
session.
|
||||
|
||||
#>
|
||||
function global:deactivate ([switch]$NonDestructive) {
|
||||
# Revert to original values
|
||||
|
||||
# The prior prompt:
|
||||
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
||||
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
||||
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
||||
}
|
||||
|
||||
# The prior PYTHONHOME:
|
||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
||||
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
||||
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
||||
}
|
||||
|
||||
# The prior PATH:
|
||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
||||
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
||||
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
||||
}
|
||||
|
||||
# Just remove the VIRTUAL_ENV altogether:
|
||||
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
||||
Remove-Item -Path env:VIRTUAL_ENV
|
||||
}
|
||||
|
||||
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
||||
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
||||
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
||||
}
|
||||
|
||||
# Leave deactivate function in the global namespace if requested:
|
||||
if (-not $NonDestructive) {
|
||||
Remove-Item -Path function:deactivate
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Description
|
||||
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
||||
given folder, and returns them in a map.
|
||||
|
||||
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
||||
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
||||
then it is considered a `key = value` line. The left hand string is the key,
|
||||
the right hand is the value.
|
||||
|
||||
If the value starts with a `'` or a `"` then the first and last character is
|
||||
stripped from the value before being captured.
|
||||
|
||||
.Parameter ConfigDir
|
||||
Path to the directory that contains the `pyvenv.cfg` file.
|
||||
#>
|
||||
function Get-PyVenvConfig(
|
||||
[String]
|
||||
$ConfigDir
|
||||
) {
|
||||
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
||||
|
||||
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
||||
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
||||
|
||||
# An empty map will be returned if no config file is found.
|
||||
$pyvenvConfig = @{ }
|
||||
|
||||
if ($pyvenvConfigPath) {
|
||||
|
||||
Write-Verbose "File exists, parse `key = value` lines"
|
||||
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
||||
|
||||
$pyvenvConfigContent | ForEach-Object {
|
||||
$keyval = $PSItem -split "\s*=\s*", 2
|
||||
if ($keyval[0] -and $keyval[1]) {
|
||||
$val = $keyval[1]
|
||||
|
||||
# Remove extraneous quotations around a string value.
|
||||
if ("'""".Contains($val.Substring(0, 1))) {
|
||||
$val = $val.Substring(1, $val.Length - 2)
|
||||
}
|
||||
|
||||
$pyvenvConfig[$keyval[0]] = $val
|
||||
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
||||
}
|
||||
}
|
||||
}
|
||||
return $pyvenvConfig
|
||||
}
|
||||
|
||||
|
||||
<# Begin Activate script --------------------------------------------------- #>
|
||||
|
||||
# Determine the containing directory of this script
|
||||
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||
$VenvExecDir = Get-Item -Path $VenvExecPath
|
||||
|
||||
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
||||
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
||||
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
||||
|
||||
# Set values required in priority: CmdLine, ConfigFile, Default
|
||||
# First, get the location of the virtual environment, it might not be
|
||||
# VenvExecDir if specified on the command line.
|
||||
if ($VenvDir) {
|
||||
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
||||
}
|
||||
else {
|
||||
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
||||
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
||||
Write-Verbose "VenvDir=$VenvDir"
|
||||
}
|
||||
|
||||
# Next, read the `pyvenv.cfg` file to determine any required value such
|
||||
# as `prompt`.
|
||||
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
||||
|
||||
# Next, set the prompt from the command line, or the config file, or
|
||||
# just use the name of the virtual environment folder.
|
||||
if ($Prompt) {
|
||||
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
||||
}
|
||||
else {
|
||||
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
||||
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
||||
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
||||
$Prompt = $pyvenvCfg['prompt'];
|
||||
}
|
||||
else {
|
||||
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
|
||||
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
||||
$Prompt = Split-Path -Path $venvDir -Leaf
|
||||
}
|
||||
}
|
||||
|
||||
Write-Verbose "Prompt = '$Prompt'"
|
||||
Write-Verbose "VenvDir='$VenvDir'"
|
||||
|
||||
# Deactivate any currently active virtual environment, but leave the
|
||||
# deactivate function in place.
|
||||
deactivate -nondestructive
|
||||
|
||||
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
||||
# that there is an activated venv.
|
||||
$env:VIRTUAL_ENV = $VenvDir
|
||||
|
||||
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
||||
|
||||
Write-Verbose "Setting prompt to '$Prompt'"
|
||||
|
||||
# Set the prompt to include the env name
|
||||
# Make sure _OLD_VIRTUAL_PROMPT is global
|
||||
function global:_OLD_VIRTUAL_PROMPT { "" }
|
||||
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
||||
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
||||
|
||||
function global:prompt {
|
||||
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
||||
_OLD_VIRTUAL_PROMPT
|
||||
}
|
||||
}
|
||||
|
||||
# Clear PYTHONHOME
|
||||
if (Test-Path -Path Env:PYTHONHOME) {
|
||||
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
||||
Remove-Item -Path Env:PYTHONHOME
|
||||
}
|
||||
|
||||
# Add the venv to the PATH
|
||||
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
||||
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIc9wYJKoZIhvcNAQcCoIIc6DCCHOQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAwnDYwEHaCQq0n
|
||||
# 8NAvsN7H7BO7/48rXCNwrg891FS5vaCCC38wggUwMIIEGKADAgECAhAECRgbX9W7
|
||||
# ZnVTQ7VvlVAIMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
|
||||
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
|
||||
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xMzEwMjIxMjAwMDBa
|
||||
# Fw0yODEwMjIxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
|
||||
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lD
|
||||
# ZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3
|
||||
# DQEBAQUAA4IBDwAwggEKAoIBAQD407Mcfw4Rr2d3B9MLMUkZz9D7RZmxOttE9X/l
|
||||
# qJ3bMtdx6nadBS63j/qSQ8Cl+YnUNxnXtqrwnIal2CWsDnkoOn7p0WfTxvspJ8fT
|
||||
# eyOU5JEjlpB3gvmhhCNmElQzUHSxKCa7JGnCwlLyFGeKiUXULaGj6YgsIJWuHEqH
|
||||
# CN8M9eJNYBi+qsSyrnAxZjNxPqxwoqvOf+l8y5Kh5TsxHM/q8grkV7tKtel05iv+
|
||||
# bMt+dDk2DZDv5LVOpKnqagqrhPOsZ061xPeM0SAlI+sIZD5SlsHyDxL0xY4PwaLo
|
||||
# LFH3c7y9hbFig3NBggfkOItqcyDQD2RzPJ6fpjOp/RnfJZPRAgMBAAGjggHNMIIB
|
||||
# yTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
|
||||
# BggrBgEFBQcDAzB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
|
||||
# Y3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGln
|
||||
# aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0fBHow
|
||||
# eDA6oDigNoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl
|
||||
# ZElEUm9vdENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp
|
||||
# Z2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDBPBgNVHSAESDBGMDgGCmCGSAGG/WwA
|
||||
# AgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAK
|
||||
# BghghkgBhv1sAzAdBgNVHQ4EFgQUWsS5eyoKo6XqcQPAYPkt9mV1DlgwHwYDVR0j
|
||||
# BBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQELBQADggEBAD7s
|
||||
# DVoks/Mi0RXILHwlKXaoHV0cLToaxO8wYdd+C2D9wz0PxK+L/e8q3yBVN7Dh9tGS
|
||||
# dQ9RtG6ljlriXiSBThCk7j9xjmMOE0ut119EefM2FAaK95xGTlz/kLEbBw6RFfu6
|
||||
# r7VRwo0kriTGxycqoSkoGjpxKAI8LpGjwCUR4pwUR6F6aGivm6dcIFzZcbEMj7uo
|
||||
# +MUSaJ/PQMtARKUT8OZkDCUIQjKyNookAv4vcn4c10lFluhZHen6dGRrsutmQ9qz
|
||||
# sIzV6Q3d9gEgzpkxYz0IGhizgZtPxpMQBvwHgfqL2vmCSfdibqFT+hKUGIUukpHq
|
||||
# aGxEMrJmoecYpJpkUe8wggZHMIIFL6ADAgECAhADPtXtoGXRuMkd/PkqbJvYMA0G
|
||||
# CSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
|
||||
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0
|
||||
# IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTgxMjE4MDAwMDAw
|
||||
# WhcNMjExMjIyMTIwMDAwWjCBgzELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU5ldyBI
|
||||
# YW1wc2hpcmUxEjAQBgNVBAcTCVdvbGZlYm9ybzEjMCEGA1UEChMaUHl0aG9uIFNv
|
||||
# ZnR3YXJlIEZvdW5kYXRpb24xIzAhBgNVBAMTGlB5dGhvbiBTb2Z0d2FyZSBGb3Vu
|
||||
# ZGF0aW9uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqr2kS7J1uW7o
|
||||
# JRxlsdrETAjKarfoH5TI8PWST6Yb2xPooP7vHT4iaVXyL5Lze1f53Jw67Sp+u524
|
||||
# fJXf30qHViEWxumy2RWG0nciU2d+mMqzjlaAWSZNF0u4RcvyDJokEV0RUOqI5CG5
|
||||
# zPI3W9uQ6LiUk3HCYW6kpH177A5T3pw/Po8O8KErJGn1anaqtIICq99ySxrMad/2
|
||||
# hPMBRf6Ndah7f7HPn1gkSSTAoejyuqF5h+B0qI4+JK5+VLvz659VTbAWJsYakkxZ
|
||||
# xVWYpFv4KeQSSwoo0DzMvmERsTzNvVBMWhu9OriJNg+QfFmf96zVTu93cZ+r7xMp
|
||||
# bXyfIOGKhHMaRuZ8ihuWIx3gI9WHDFX6fBKR8+HlhdkaiBEWIsXRoy+EQUyK7zUs
|
||||
# +FqOo2sRYttbs8MTF9YDKFZwyPjn9Wn+gLGd5NUEVyNvD9QVGBEtN7vx87bduJUB
|
||||
# 8F4DylEsMtZTfjw/au6AmOnmneK5UcqSJuwRyZaGNk7y3qj06utx+HTTqHgi975U
|
||||
# pxfyrwAqkovoZEWBVSpvku8PVhkBXcLmNe6MEHlFiaMoiADAeKmX5RFRkN+VrmYG
|
||||
# Tg4zajxfdHeIY8TvLf48tTfmnQJd98geJQv/01NUy/FxuwqAuTkaez5Nl1LxP0Cp
|
||||
# THhghzO4FRD4itT2wqTh4jpojw9QZnsCAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaA
|
||||
# FFrEuXsqCqOl6nEDwGD5LfZldQ5YMB0GA1UdDgQWBBT8Kr9+1L6s84KcpM97IgE7
|
||||
# uI8H8jAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0f
|
||||
# BHAwbjA1oDOgMYYvaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJl
|
||||
# ZC1jcy1nMS5jcmwwNaAzoDGGL2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEy
|
||||
# LWFzc3VyZWQtY3MtZzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYI
|
||||
# KwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQB
|
||||
# MIGEBggrBgEFBQcBAQR4MHYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
|
||||
# ZXJ0LmNvbTBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
|
||||
# L0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB
|
||||
# /wQCMAAwDQYJKoZIhvcNAQELBQADggEBAEt1oS21X0axiafPjyY+vlYqjWKuUu/Y
|
||||
# FuYWIEq6iRRaFabNDhj9RBFQF/aJiE5msrQEOfAD6/6gVSH91lZWBqg6NEeG9T9S
|
||||
# XbiAPvJ9CEWFsdkXUrjbWhvCnuZ7kqUuU5BAumI1QRbpYgZL3UA+iZXkmjbGh1ln
|
||||
# 8rUhWIxbBYL4Sg2nqpB44p7CUFYkPj/MbwU2gvBV2pXjj5WaskoZtsACMv5g42BN
|
||||
# oVLoRAi+ev6s07POt+JtHRIm87lTyuc8wh0swTPUwksKbLU1Zdj9CpqtzXnuVE0w
|
||||
# 50exJvRSK3Vt4g+0vigpI3qPmDdpkf9+4Mvy0XMNcqrthw20R+PkIlMxghDOMIIQ
|
||||
# ygIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
|
||||
# FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEy
|
||||
# IEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhADPtXtoGXRuMkd/PkqbJvYMA0G
|
||||
# CWCGSAFlAwQCAQUAoIGYMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
|
||||
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCwGCisGAQQBgjcCAQwxHjAcoBqAGABQ
|
||||
# AHkAdABoAG8AbgAgADMALgA5AC4ANzAvBgkqhkiG9w0BCQQxIgQgBrni4mcRv7sM
|
||||
# JHsxpROjRopOz2wuQVrJnn+lD7X7y+gwDQYJKoZIhvcNAQEBBQAEggIAlpjGHgZ7
|
||||
# CPnoJRAJIxIBpQAvUTGheJi/uP1gtaPWRvcxP8tQvtvdTd9aMrsZnNy0gdaa5WL3
|
||||
# yYMzA0Ytzwfh0fsGuQjdx1ht/J8U++D/Lfl/w+rdbZ4mXhjnbqmTAJknEDW4NEWa
|
||||
# mwyhp+5zzADBp2VkryFpB3B7K04u8CyxXpRG6no86ROHkmsOk4j2mZUP9g/Hx4tv
|
||||
# eWjakNMPkdXZ7tWtkGNWbwOYDosvSt1aCDld5TE2o2CHOJJpi06rHRI4o4X2gNRO
|
||||
# rk8+6pH0XTS0//OMfHZRcDtRgJ7ohU/v2CDRuDw/b5NH1S1kwbdLpOoVw1bTrjsx
|
||||
# jOotJbVUuPO3ES0ZzidPbEejPz1/D/z6Yl01KfbQJ9DanTzPhQw/hCezsUUsKZBR
|
||||
# iZ1WWqZmZaT3faO/VwumIeQEa4XlGMcviEuyRye09nx3E+d9Gu8eCwm3RLD8rRDb
|
||||
# J1+GIZDkBi+Qebo3hao16666J+dezjV6HO50NkXeY/1I43A/P2nXtwqsAuaO+h/X
|
||||
# +3enzdtZx4HZa7E7wQ2F3daOV69IOliB6PCUfzPB4bqoms7c85YKEb3ZDYPX+Igf
|
||||
# EPDOQd+U3pvXLvzaJj8RL+g+s2/xaPm4KrzpKXr4SO4Voje6p0Keso/6/pErSfAf
|
||||
# OFWx+zhUKELWbCZLzdDZ76IuT0V8arqtTK+hgg19MIINeQYKKwYBBAGCNwMDATGC
|
||||
# DWkwgg1lBgkqhkiG9w0BBwKggg1WMIINUgIBAzEPMA0GCWCGSAFlAwQCAQUAMHcG
|
||||
# CyqGSIb3DQEJEAEEoGgEZjBkAgEBBglghkgBhv1sBwEwMTANBglghkgBZQMEAgEF
|
||||
# AAQgOSCrDv+oDMEj/ophQEUCc8G75r8sYGG8KKaH7Fm+WY0CEFzwQrsuwLerUKVb
|
||||
# vYKnHYEYDzIwMjEwODMwMjAzMjQwWqCCCjcwggT+MIID5qADAgECAhANQkrgvjqI
|
||||
# /2BAIc4UAPDdMA0GCSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
|
||||
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNV
|
||||
# BAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0EwHhcN
|
||||
# MjEwMTAxMDAwMDAwWhcNMzEwMTA2MDAwMDAwWjBIMQswCQYDVQQGEwJVUzEXMBUG
|
||||
# A1UEChMORGlnaUNlcnQsIEluYy4xIDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFt
|
||||
# cCAyMDIxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwuZhhGfFivUN
|
||||
# CKRFymNrUdc6EUK9CnV1TZS0DFC1JhD+HchvkWsMlucaXEjvROW/m2HNFZFiWrj/
|
||||
# ZwucY/02aoH6KfjdK3CF3gIY83htvH35x20JPb5qdofpir34hF0edsnkxnZ2OlPR
|
||||
# 0dNaNo/Go+EvGzq3YdZz7E5tM4p8XUUtS7FQ5kE6N1aG3JMjjfdQJehk5t3Tjy9X
|
||||
# tYcg6w6OLNUj2vRNeEbjA4MxKUpcDDGKSoyIxfcwWvkUrxVfbENJCf0mI1P2jWPo
|
||||
# GqtbsR0wwptpgrTb/FZUvB+hh6u+elsKIC9LCcmVp42y+tZji06lchzun3oBc/gZ
|
||||
# 1v4NSYS9AQIDAQABo4IBuDCCAbQwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQC
|
||||
# MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwQQYDVR0gBDowODA2BglghkgBhv1s
|
||||
# BwEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB8G
|
||||
# A1UdIwQYMBaAFPS24SAd/imu0uRhpbKiJbLIFzVuMB0GA1UdDgQWBBQ2RIaOpLqw
|
||||
# Zr68KC0dRDbd42p6vDBxBgNVHR8EajBoMDKgMKAuhixodHRwOi8vY3JsMy5kaWdp
|
||||
# Y2VydC5jb20vc2hhMi1hc3N1cmVkLXRzLmNybDAyoDCgLoYsaHR0cDovL2NybDQu
|
||||
# ZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC10cy5jcmwwgYUGCCsGAQUFBwEBBHkw
|
||||
# dzAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME8GCCsGAQUF
|
||||
# BzAChkNodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNz
|
||||
# dXJlZElEVGltZXN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBIHNy1
|
||||
# 6ZojvOca5yAOjmdG/UJyUXQKI0ejq5LSJcRwWb4UoOUngaVNFBUZB3nw0QTDhtk7
|
||||
# vf5EAmZN7WmkD/a4cM9i6PVRSnh5Nnont/PnUp+Tp+1DnnvntN1BIon7h6JGA078
|
||||
# 9P63ZHdjXyNSaYOC+hpT7ZDMjaEXcw3082U5cEvznNZ6e9oMvD0y0BvL9WH8dQgA
|
||||
# dryBDvjA4VzPxBFy5xtkSdgimnUVQvUtMjiB2vRgorq0Uvtc4GEkJU+y38kpqHND
|
||||
# Udq9Y9YfW5v3LhtPEx33Sg1xfpe39D+E68Hjo0mh+s6nv1bPull2YYlffqe0jmd4
|
||||
# +TaY4cso2luHpoovMIIFMTCCBBmgAwIBAgIQCqEl1tYyG35B5AXaNpfCFTANBgkq
|
||||
# hkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
|
||||
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB
|
||||
# c3N1cmVkIElEIFJvb3QgQ0EwHhcNMTYwMTA3MTIwMDAwWhcNMzEwMTA3MTIwMDAw
|
||||
# WjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
||||
# ExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3Vy
|
||||
# ZWQgSUQgVGltZXN0YW1waW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
# CgKCAQEAvdAy7kvNj3/dqbqCmcU5VChXtiNKxA4HRTNREH3Q+X1NaH7ntqD0jbOI
|
||||
# 5Je/YyGQmL8TvFfTw+F+CNZqFAA49y4eO+7MpvYyWf5fZT/gm+vjRkcGGlV+Cyd+
|
||||
# wKL1oODeIj8O/36V+/OjuiI+GKwR5PCZA207hXwJ0+5dyJoLVOOoCXFr4M8iEA91
|
||||
# z3FyTgqt30A6XLdR4aF5FMZNJCMwXbzsPGBqrC8HzP3w6kfZiFBe/WZuVmEnKYmE
|
||||
# UeaC50ZQ/ZQqLKfkdT66mA+Ef58xFNat1fJky3seBdCEGXIX8RcG7z3N1k3vBkL9
|
||||
# olMqT4UdxB08r8/arBD13ays6Vb/kwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFPS2
|
||||
# 4SAd/imu0uRhpbKiJbLIFzVuMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3z
|
||||
# bcgPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM
|
||||
# MAoGCCsGAQUFBwMIMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDov
|
||||
# L29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5k
|
||||
# aWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8E
|
||||
# ejB4MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
|
||||
# cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20v
|
||||
# RGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMFAGA1UdIARJMEcwOAYKYIZIAYb9
|
||||
# bAACBDAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
|
||||
# MAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAQEAcZUS6VGHVmnN793afKpj
|
||||
# erN4zwY3QITvS4S/ys8DAv3Fp8MOIEIsr3fzKx8MIVoqtwU0HWqumfgnoma/Capg
|
||||
# 33akOpMP+LLR2HwZYuhegiUexLoceywh4tZbLBQ1QwRostt1AuByx5jWPGTlH0gQ
|
||||
# GF+JOGFNYkYkh2OMkVIsrymJ5Xgf1gsUpYDXEkdws3XVk4WTfraSZ/tTYYmo9WuW
|
||||
# wPRYaQ18yAGxuSh1t5ljhSKMYcp5lH5Z/IwP42+1ASa2bKXuh1Eh5Fhgm7oMLStt
|
||||
# osR+u8QlK0cCCHxJrhO24XxCQijGGFbPQTS2Zl22dHv1VjMiLyI2skuiSpXY9aaO
|
||||
# UjGCAoYwggKCAgEBMIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
|
||||
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lD
|
||||
# ZXJ0IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0ECEA1CSuC+Ooj/YEAh
|
||||
# zhQA8N0wDQYJYIZIAWUDBAIBBQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJ
|
||||
# EAEEMBwGCSqGSIb3DQEJBTEPFw0yMTA4MzAyMDMyNDBaMCsGCyqGSIb3DQEJEAIM
|
||||
# MRwwGjAYMBYEFOHXgqjhkb7va8oWkbWqtJSmJJvzMC8GCSqGSIb3DQEJBDEiBCBI
|
||||
# G7lS/r0RCENJotqNy8WPsrW/fmVFip107NYjeJ0Q0TA3BgsqhkiG9w0BCRACLzEo
|
||||
# MCYwJDAiBCCzEJAGvArZgweRVyngRANBXIPjKSthTyaWTI01cez1qTANBgkqhkiG
|
||||
# 9w0BAQEFAASCAQBLFNmzEWXnvby6UBfPXhcIQetEVjem6zU9lbSj5MXY7ZJDCtV/
|
||||
# cdI6SWEsz1uZyzNlHvBvctGK03lZcWcwa0PrGokLG2v3zuU1MAj2MJVuunQ5GjaI
|
||||
# UoWDeROFwEBtqKnR+hTB2GV/pOb1nEHR6xm4KvMao0WcnkQhVL3LXVVawDSJIrA8
|
||||
# 8I5XyqZx3q6jRFVAuIlM6HLrQiaLRpP9j25/1Pin8zLd0e65jaAufHQW6V7vG3GI
|
||||
# C9d89LkmDN7uftGjXS5LKiC4EYMYKK8L3/ikBW70mATlDXZfLBoEdAv1rUoIXnf2
|
||||
# 7AxXiMi4hXF2JsMk/J2h9lfvENROxXGIStD1
|
||||
# SIG # End signature block
|
66
Python39/Lib/venv/scripts/common/activate
Normal file
66
Python39/Lib/venv/scripts/common/activate
Normal file
@ -0,0 +1,66 @@
|
||||
# This file must be used with "source bin/activate" *from bash*
|
||||
# you cannot run it directly
|
||||
|
||||
deactivate () {
|
||||
# reset old environment variables
|
||||
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
||||
PATH="${_OLD_VIRTUAL_PATH:-}"
|
||||
export PATH
|
||||
unset _OLD_VIRTUAL_PATH
|
||||
fi
|
||||
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
||||
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
||||
export PYTHONHOME
|
||||
unset _OLD_VIRTUAL_PYTHONHOME
|
||||
fi
|
||||
|
||||
# This should detect bash and zsh, which have a hash command that must
|
||||
# be called to get it to forget past commands. Without forgetting
|
||||
# past commands the $PATH changes we made may not be respected
|
||||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
||||
hash -r 2> /dev/null
|
||||
fi
|
||||
|
||||
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
||||
PS1="${_OLD_VIRTUAL_PS1:-}"
|
||||
export PS1
|
||||
unset _OLD_VIRTUAL_PS1
|
||||
fi
|
||||
|
||||
unset VIRTUAL_ENV
|
||||
if [ ! "${1:-}" = "nondestructive" ] ; then
|
||||
# Self destruct!
|
||||
unset -f deactivate
|
||||
fi
|
||||
}
|
||||
|
||||
# unset irrelevant variables
|
||||
deactivate nondestructive
|
||||
|
||||
VIRTUAL_ENV="__VENV_DIR__"
|
||||
export VIRTUAL_ENV
|
||||
|
||||
_OLD_VIRTUAL_PATH="$PATH"
|
||||
PATH="$VIRTUAL_ENV/__VENV_BIN_NAME__:$PATH"
|
||||
export PATH
|
||||
|
||||
# unset PYTHONHOME if set
|
||||
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
||||
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
||||
if [ -n "${PYTHONHOME:-}" ] ; then
|
||||
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
||||
unset PYTHONHOME
|
||||
fi
|
||||
|
||||
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
||||
_OLD_VIRTUAL_PS1="${PS1:-}"
|
||||
PS1="__VENV_PROMPT__${PS1:-}"
|
||||
export PS1
|
||||
fi
|
||||
|
||||
# This should detect bash and zsh, which have a hash command that must
|
||||
# be called to get it to forget past commands. Without forgetting
|
||||
# past commands the $PATH changes we made may not be respected
|
||||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
||||
hash -r 2> /dev/null
|
||||
fi
|
33
Python39/Lib/venv/scripts/nt/activate.bat
Normal file
33
Python39/Lib/venv/scripts/nt/activate.bat
Normal file
@ -0,0 +1,33 @@
|
||||
@echo off
|
||||
|
||||
rem This file is UTF-8 encoded, so we need to update the current code page while executing it
|
||||
for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do (
|
||||
set _OLD_CODEPAGE=%%a
|
||||
)
|
||||
if defined _OLD_CODEPAGE (
|
||||
"%SystemRoot%\System32\chcp.com" 65001 > nul
|
||||
)
|
||||
|
||||
set VIRTUAL_ENV=__VENV_DIR__
|
||||
|
||||
if not defined PROMPT set PROMPT=$P$G
|
||||
|
||||
if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT%
|
||||
if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%
|
||||
|
||||
set _OLD_VIRTUAL_PROMPT=%PROMPT%
|
||||
set PROMPT=__VENV_PROMPT__%PROMPT%
|
||||
|
||||
if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%
|
||||
set PYTHONHOME=
|
||||
|
||||
if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH%
|
||||
if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH%
|
||||
|
||||
set PATH=%VIRTUAL_ENV%\__VENV_BIN_NAME__;%PATH%
|
||||
|
||||
:END
|
||||
if defined _OLD_CODEPAGE (
|
||||
"%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul
|
||||
set _OLD_CODEPAGE=
|
||||
)
|
21
Python39/Lib/venv/scripts/nt/deactivate.bat
Normal file
21
Python39/Lib/venv/scripts/nt/deactivate.bat
Normal file
@ -0,0 +1,21 @@
|
||||
@echo off
|
||||
|
||||
if defined _OLD_VIRTUAL_PROMPT (
|
||||
set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
|
||||
)
|
||||
set _OLD_VIRTUAL_PROMPT=
|
||||
|
||||
if defined _OLD_VIRTUAL_PYTHONHOME (
|
||||
set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%"
|
||||
set _OLD_VIRTUAL_PYTHONHOME=
|
||||
)
|
||||
|
||||
if defined _OLD_VIRTUAL_PATH (
|
||||
set "PATH=%_OLD_VIRTUAL_PATH%"
|
||||
)
|
||||
|
||||
set _OLD_VIRTUAL_PATH=
|
||||
|
||||
set VIRTUAL_ENV=
|
||||
|
||||
:END
|
BIN
Python39/Lib/venv/scripts/nt/python.exe
Normal file
BIN
Python39/Lib/venv/scripts/nt/python.exe
Normal file
Binary file not shown.
BIN
Python39/Lib/venv/scripts/nt/python.pdb
Normal file
BIN
Python39/Lib/venv/scripts/nt/python.pdb
Normal file
Binary file not shown.
BIN
Python39/Lib/venv/scripts/nt/python_d.exe
Normal file
BIN
Python39/Lib/venv/scripts/nt/python_d.exe
Normal file
Binary file not shown.
BIN
Python39/Lib/venv/scripts/nt/pythonw.exe
Normal file
BIN
Python39/Lib/venv/scripts/nt/pythonw.exe
Normal file
Binary file not shown.
BIN
Python39/Lib/venv/scripts/nt/pythonw.pdb
Normal file
BIN
Python39/Lib/venv/scripts/nt/pythonw.pdb
Normal file
Binary file not shown.
BIN
Python39/Lib/venv/scripts/nt/pythonw_d.exe
Normal file
BIN
Python39/Lib/venv/scripts/nt/pythonw_d.exe
Normal file
Binary file not shown.
25
Python39/Lib/venv/scripts/posix/activate.csh
Normal file
25
Python39/Lib/venv/scripts/posix/activate.csh
Normal file
@ -0,0 +1,25 @@
|
||||
# This file must be used with "source bin/activate.csh" *from csh*.
|
||||
# You cannot run it directly.
|
||||
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
||||
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
||||
|
||||
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
setenv VIRTUAL_ENV "__VENV_DIR__"
|
||||
|
||||
set _OLD_VIRTUAL_PATH="$PATH"
|
||||
setenv PATH "$VIRTUAL_ENV/__VENV_BIN_NAME__:$PATH"
|
||||
|
||||
|
||||
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||
|
||||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||
set prompt = "__VENV_PROMPT__$prompt"
|
||||
endif
|
||||
|
||||
alias pydoc python -m pydoc
|
||||
|
||||
rehash
|
64
Python39/Lib/venv/scripts/posix/activate.fish
Normal file
64
Python39/Lib/venv/scripts/posix/activate.fish
Normal file
@ -0,0 +1,64 @@
|
||||
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
||||
# (https://fishshell.com/); you cannot run it directly.
|
||||
|
||||
function deactivate -d "Exit virtual environment and return to normal shell environment"
|
||||
# reset old environment variables
|
||||
if test -n "$_OLD_VIRTUAL_PATH"
|
||||
set -gx PATH $_OLD_VIRTUAL_PATH
|
||||
set -e _OLD_VIRTUAL_PATH
|
||||
end
|
||||
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
||||
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
||||
set -e _OLD_VIRTUAL_PYTHONHOME
|
||||
end
|
||||
|
||||
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
||||
functions -e fish_prompt
|
||||
set -e _OLD_FISH_PROMPT_OVERRIDE
|
||||
functions -c _old_fish_prompt fish_prompt
|
||||
functions -e _old_fish_prompt
|
||||
end
|
||||
|
||||
set -e VIRTUAL_ENV
|
||||
if test "$argv[1]" != "nondestructive"
|
||||
# Self-destruct!
|
||||
functions -e deactivate
|
||||
end
|
||||
end
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
set -gx VIRTUAL_ENV "__VENV_DIR__"
|
||||
|
||||
set -gx _OLD_VIRTUAL_PATH $PATH
|
||||
set -gx PATH "$VIRTUAL_ENV/__VENV_BIN_NAME__" $PATH
|
||||
|
||||
# Unset PYTHONHOME if set.
|
||||
if set -q PYTHONHOME
|
||||
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
||||
set -e PYTHONHOME
|
||||
end
|
||||
|
||||
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
||||
# fish uses a function instead of an env var to generate the prompt.
|
||||
|
||||
# Save the current fish_prompt function as the function _old_fish_prompt.
|
||||
functions -c fish_prompt _old_fish_prompt
|
||||
|
||||
# With the original prompt function renamed, we can override with our own.
|
||||
function fish_prompt
|
||||
# Save the return status of the last command.
|
||||
set -l old_status $status
|
||||
|
||||
# Output the venv prompt; color taken from the blue of the Python logo.
|
||||
printf "%s%s%s" (set_color 4B8BBE) "__VENV_PROMPT__" (set_color normal)
|
||||
|
||||
# Restore the return status of the previous command.
|
||||
echo "exit $old_status" | .
|
||||
# Output the original/"old" prompt.
|
||||
_old_fish_prompt
|
||||
end
|
||||
|
||||
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user