22 changed files with 696 additions and 0 deletions
-
162.circleci/config.yml
-
5Dockerfile
-
406venv/Scripts/Activate.ps1
-
66venv/Scripts/activate
-
33venv/Scripts/activate.bat
-
BINvenv/Scripts/alembic.exe
-
21venv/Scripts/deactivate.bat
-
BINvenv/Scripts/easy_install-3.9.exe
-
BINvenv/Scripts/easy_install.exe
-
BINvenv/Scripts/flask.exe
-
BINvenv/Scripts/gunicorn.exe
-
BINvenv/Scripts/mako-render.exe
-
BINvenv/Scripts/pip.exe
-
BINvenv/Scripts/pip3.9.exe
-
BINvenv/Scripts/pip3.exe
-
BINvenv/Scripts/pyjwt.exe
-
BINvenv/Scripts/python.exe
-
BINvenv/Scripts/python_d.exe
-
BINvenv/Scripts/pythonw.exe
-
BINvenv/Scripts/pythonw_d.exe
-
BINvenv/Scripts/unidecode.exe
-
3venv/pyvenv.cfg
@ -0,0 +1,162 @@ |
|||||
|
# Python CircleCI 2.0 configuration file |
||||
|
# |
||||
|
# Check https://circleci.com/docs/2.0/language-python/ for more details |
||||
|
# |
||||
|
version: 2 |
||||
|
jobs: |
||||
|
build: |
||||
|
docker: |
||||
|
# specify the version you desire here |
||||
|
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` |
||||
|
- image: circleci/python:3.6.4 |
||||
|
|
||||
|
# Specify service dependencies here if necessary |
||||
|
# CircleCI maintains a library of pre-built images |
||||
|
# documented at https://circleci.com/docs/2.0/circleci-images/ |
||||
|
# - image: circleci/postgres:9.4 |
||||
|
|
||||
|
working_directory: ~/repo |
||||
|
|
||||
|
steps: |
||||
|
- checkout |
||||
|
|
||||
|
# Download and cache dependencies |
||||
|
- restore_cache: |
||||
|
keys: |
||||
|
- v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
||||
|
- v3-dependencies- |
||||
|
# fallback to using the latest cache if no exact match is found |
||||
|
|
||||
|
- run: |
||||
|
name: install dependencies |
||||
|
command: | |
||||
|
python3 -m venv venv |
||||
|
. venv/bin/activate |
||||
|
pip install -r requirements/dev.txt |
||||
|
environment: |
||||
|
CONDUIT_SECRET: 'something-really-secret' |
||||
|
FLASK_APP: /home/circleci/repo/autoapp.py |
||||
|
FLASK_DEBUG: 1 |
||||
|
|
||||
|
- save_cache: |
||||
|
paths: |
||||
|
- venv |
||||
|
key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
||||
|
|
||||
|
|
||||
|
|
||||
|
test: |
||||
|
docker: |
||||
|
# specify the version you desire here |
||||
|
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` |
||||
|
- image: circleci/python:3.6.4 |
||||
|
# Specify service dependencies here if necessary |
||||
|
# CircleCI maintains a library of pre-built images |
||||
|
# documented at https://circleci.com/docs/2.0/circleci-images/ |
||||
|
- image: postgres:9.6.2-alpine |
||||
|
environment: |
||||
|
POSTGRES_USER: myUsr |
||||
|
POSTGRES_PASSOWRD: somePwd |
||||
|
POSTGRES_DB: myUsr |
||||
|
|
||||
|
working_directory: ~/repo |
||||
|
|
||||
|
steps: |
||||
|
- checkout |
||||
|
|
||||
|
# Download and cache dependencies |
||||
|
- restore_cache: |
||||
|
keys: |
||||
|
- v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
||||
|
- v3-dependencies- |
||||
|
# fallback to using the latest cache if no exact match is found |
||||
|
|
||||
|
- run: |
||||
|
name: bd upgrade |
||||
|
command: | |
||||
|
. venv/bin/activate |
||||
|
sleep 1 |
||||
|
flask db upgrade |
||||
|
environment: |
||||
|
CONDUIT_SECRET: 'something-really-secret' |
||||
|
FLASK_APP: /home/circleci/repo/autoapp.py |
||||
|
DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr |
||||
|
FLASK_DEBUG: 1 |
||||
|
POSTGRES_USER: postgres |
||||
|
POSTGRES_DB: bdtest |
||||
|
POSTGRES_PASSWORD: somePwd |
||||
|
POSTGRES_PORT: 5432 |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
# run tests! |
||||
|
# this example uses Django's built-in test-runner |
||||
|
# other common Python testing frameworks include pytest and nose |
||||
|
# https://pytest.org |
||||
|
# https://nose.readthedocs.io |
||||
|
- run: |
||||
|
name: run tests |
||||
|
command: | |
||||
|
. venv/bin/activate |
||||
|
flask db migrate |
||||
|
flask test |
||||
|
environment: |
||||
|
CONDUIT_SECRET: 'something-really-secret' |
||||
|
FLASK_APP: /home/circleci/repo/autoapp.py |
||||
|
DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr |
||||
|
FLASK_DEBUG: 1 |
||||
|
POSTGRES_USER: postgres |
||||
|
POSTGRES_DB: bdtest |
||||
|
POSTGRES_PASSWORD: somePwd |
||||
|
POSTGRES_PORT: 5432 |
||||
|
|
||||
|
- save_cache: |
||||
|
paths: |
||||
|
- venv |
||||
|
key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
||||
|
|
||||
|
back-deploy-heroku: |
||||
|
docker: |
||||
|
- image: buildpack-deps:trusty |
||||
|
steps: |
||||
|
- checkout |
||||
|
|
||||
|
- run: |
||||
|
name: Heroku Deploy |
||||
|
command: git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git main |
||||
|
docker-build-and-push: |
||||
|
working_directory: /dockerapp |
||||
|
docker: |
||||
|
- image: docker:17.05.0-ce-git |
||||
|
steps: |
||||
|
- checkout |
||||
|
- setup_remote_docker |
||||
|
- run: |
||||
|
name: build app for docker |
||||
|
command: | |
||||
|
docker build --cache-from=app -t app . |
||||
|
- deploy: |
||||
|
name: we publish the app on my docker hub |
||||
|
environment: |
||||
|
CIRCLE_BUILD_NUM: 1 |
||||
|
command: | |
||||
|
docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PWD |
||||
|
docker tag app $DOCKER_HUB_USER_ID/backend_final:$CIRCLE_BUILD_NUM |
||||
|
docker tag app $DOCKER_HUB_USER_ID/backend_final:latest |
||||
|
docker push $DOCKER_HUB_USER_ID/backend_final:$CIRCLE_BUILD_NUM |
||||
|
docker push $DOCKER_HUB_USER_ID/backend_final:latest |
||||
|
workflows: |
||||
|
version: 2 |
||||
|
build-back-deploy: |
||||
|
jobs: |
||||
|
- build |
||||
|
- test: |
||||
|
requires: |
||||
|
- build |
||||
|
- back-deploy-heroku: |
||||
|
requires: |
||||
|
- build |
||||
|
- docker-build-and-push: |
||||
|
requires: |
||||
|
- back-deploy-heroku |
||||
@ -0,0 +1,5 @@ |
|||||
|
FROM node:dubnium |
||||
|
WORKDIR /nest-server |
||||
|
COPY . . |
||||
|
RUN yarn install |
||||
|
CMD ["yarn", "start"] |
||||
@ -0,0 +1,406 @@ |
|||||
|
<# |
||||
|
.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 |
||||
|
# MIIeQwYJKoZIhvcNAQcCoIIeNDCCHjACAQExDzANBglghkgBZQMEAgEFADB5Bgor |
||||
|
# 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+PkIlMxghIaMIIS |
||||
|
# FgIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw |
||||
|
# FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEy |
||||
|
# IEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhADPtXtoGXRuMkd/PkqbJvYMA0G |
||||
|
# CWCGSAFlAwQCAQUAoIGYMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG |
||||
|
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCwGCisGAQQBgjcCAQwxHjAcoBqAGABQ |
||||
|
# AHkAdABoAG8AbgAgADMALgA5AC4AMTAvBgkqhkiG9w0BCQQxIgQgBrni4mcRv7sM |
||||
|
# JHsxpROjRopOz2wuQVrJnn+lD7X7y+gwDQYJKoZIhvcNAQEBBQAEggIAM32+x1dw |
||||
|
# tO6ykKrJxRCyfp4ouh7VPshhZ/1rXZ0Z8Sjc5T1R6h5l28c0p1MhStEqSiARIjy5 |
||||
|
# 2YtXtEnDX103fOppDABHiAwgFMvfKFxMY15r0L4oUidDn/JeRgF0UrJrPutzQV86 |
||||
|
# HM0BaUShvotkwnu2/X/+U+tDTC7uMcn2u8zOZn1znUPwgnWSVCCNjNxEYJ40nBrG |
||||
|
# WWJSpNivxOzD34GH/a8oz0jxCrB/dHIomvIHO9dcbjSAVes+/wtoH5LgYfxpCSYr |
||||
|
# Z96d/aY5UrYoYfQZS5l1/F7JykxuaWsEgdqenPqhZz+hLkgYVY1ztQVZKbjFze7m |
||||
|
# RULcIz1oY8BIdHLpEblBZeBT3jk4Q094/Q2px+Ek0r8PAEohIP5C/ncqs6RTvtTN |
||||
|
# t5XqcyF1xUIa+wnfYQmW9IgZ9+8A7FY/ceIGHNUoYWTNxOWmS3vPnasw3cQodKVj |
||||
|
# AKQSRMfEVQMYefE3d9eSN1Z+SgKY8nntFDxNCbbeVMlHXdnm3NH7CUeYQN0DJJaP |
||||
|
# WUvEtFGSc6hMQLWj8b/t2VlJmYOpL6JMSliKlLi0qXATcECQXLx4A7ygjzY0pSNy |
||||
|
# qLaxk2Bs9dv/g25UdLpM3xCp5wKBTrpnoX12Cui1bBbZD3CgAdpMIHBgsmFGKsP9 |
||||
|
# BhoLugbmvXL2WuQqq7/8K1iVfyDUVVYiXtGhgg7JMIIOxQYKKwYBBAGCNwMDATGC |
||||
|
# DrUwgg6xBgkqhkiG9w0BBwKggg6iMIIOngIBAzEPMA0GCWCGSAFlAwQCAQUAMHgG |
||||
|
# CyqGSIb3DQEJEAEEoGkEZzBlAgEBBglghkgBhv1sBwEwMTANBglghkgBZQMEAgEF |
||||
|
# AAQgemZEDHA6eHgBHqL4tWVkxclxYQ3GEks64BxhscvVZzICEQDJDzhhmY3bUf1P |
||||
|
# SpZJGQnvGA8yMDIwMTIwNzE3MjQxNVqgggu7MIIGgjCCBWqgAwIBAgIQBM0/hWiu |
||||
|
# dsYbsP5xYMynbTANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UE |
||||
|
# ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYD |
||||
|
# VQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgVGltZXN0YW1waW5nIENBMB4X |
||||
|
# DTE5MTAwMTAwMDAwMFoXDTMwMTAxNzAwMDAwMFowTDELMAkGA1UEBhMCVVMxFzAV |
||||
|
# BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSQwIgYDVQQDExtUSU1FU1RBTVAtU0hBMjU2 |
||||
|
# LTIwMTktMTAtMTUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpZDWc |
||||
|
# +qmYZWQb5BfcuCk2zGcJWIVNMODJ/+U7PBEoUK8HMeJdCRjC9omMaQgEI+B3LZ0V |
||||
|
# 5bjooWqO/9Su0noW7/hBtR05dcHPL6esRX6UbawDAZk8Yj5+ev1FlzG0+rfZQj6n |
||||
|
# VZvfWk9YAqgyaSITvouCLcaYq2ubtMnyZREMdA2y8AiWdMToskiioRSl+PrhiXBE |
||||
|
# O43v+6T0w7m9FCzrDCgnJYCrEEsWEmALaSKMTs3G1bJlWSHgfCwSjXAOj4rK4NPX |
||||
|
# szl3UNBCLC56zpxnejh3VED/T5UEINTryM6HFAj+HYDd0OcreOq/H3DG7kIWUzZF |
||||
|
# m1MZSWKdegKblRSjAgMBAAGjggM4MIIDNDAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0T |
||||
|
# AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDCCAb8GA1UdIASCAbYwggGy |
||||
|
# MIIBoQYJYIZIAYb9bAcBMIIBkjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGln |
||||
|
# aWNlcnQuY29tL0NQUzCCAWQGCCsGAQUFBwICMIIBVh6CAVIAQQBuAHkAIAB1AHMA |
||||
|
# ZQAgAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAIABjAG8A |
||||
|
# bgBzAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4AYwBlACAAbwBmACAA |
||||
|
# dABoAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAAUwAgAGEAbgBkACAA |
||||
|
# dABoAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAAQQBnAHIAZQBlAG0A |
||||
|
# ZQBuAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkAYQBiAGkAbABpAHQA |
||||
|
# eQAgAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGgA |
||||
|
# ZQByAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUALjALBglghkgBhv1s |
||||
|
# AxUwHwYDVR0jBBgwFoAU9LbhIB3+Ka7S5GGlsqIlssgXNW4wHQYDVR0OBBYEFFZT |
||||
|
# D8HGB6dN19huV3KAUEzk7J7BMHEGA1UdHwRqMGgwMqAwoC6GLGh0dHA6Ly9jcmwz |
||||
|
# LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtdHMuY3JsMDKgMKAuhixodHRwOi8v |
||||
|
# Y3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLXRzLmNybDCBhQYIKwYBBQUH |
||||
|
# AQEEeTB3MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTwYI |
||||
|
# KwYBBQUHMAKGQ2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNI |
||||
|
# QTJBc3N1cmVkSURUaW1lc3RhbXBpbmdDQS5jcnQwDQYJKoZIhvcNAQELBQADggEB |
||||
|
# AC6DoUQFSgTjuTJS+tmB8Bq7+AmNI7k92JKh5kYcSi9uejxjbjcXoxq/WCOyQ5yU |
||||
|
# g045CbAs6Mfh4szty3lrzt4jAUftlVSB4IB7ErGvAoapOnNq/vifwY3RIYzkKYLD |
||||
|
# igtgAAKdH0fEn7QKaFN/WhCm+CLm+FOSMV/YgoMtbRNCroPBEE6kJPRHnN4PInJ3 |
||||
|
# XH9P6TmYK1eSRNfvbpPZQ8cEM2NRN1aeRwQRw6NYVCHY4o5W10k/V/wKnyNee/SU |
||||
|
# jd2dGrvfeiqm0kWmVQyP9kyK8pbPiUbcMbKRkKNfMzBgVfX8azCsoe3kR04znmdq |
||||
|
# KLVNwu1bl4L4y6kIbFMJtPcwggUxMIIEGaADAgECAhAKoSXW1jIbfkHkBdo2l8IV |
||||
|
# MA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy |
||||
|
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lD |
||||
|
# ZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xNjAxMDcxMjAwMDBaFw0zMTAxMDcx |
||||
|
# MjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAX |
||||
|
# BgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIg |
||||
|
# QXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB |
||||
|
# DwAwggEKAoIBAQC90DLuS82Pf92puoKZxTlUKFe2I0rEDgdFM1EQfdD5fU1ofue2 |
||||
|
# oPSNs4jkl79jIZCYvxO8V9PD4X4I1moUADj3Lh477sym9jJZ/l9lP+Cb6+NGRwYa |
||||
|
# VX4LJ37AovWg4N4iPw7/fpX786O6Ij4YrBHk8JkDbTuFfAnT7l3ImgtU46gJcWvg |
||||
|
# zyIQD3XPcXJOCq3fQDpct1HhoXkUxk0kIzBdvOw8YGqsLwfM/fDqR9mIUF79Zm5W |
||||
|
# YScpiYRR5oLnRlD9lCosp+R1PrqYD4R/nzEU1q3V8mTLex4F0IQZchfxFwbvPc3W |
||||
|
# Te8GQv2iUypPhR3EHTyvz9qsEPXdrKzpVv+TAgMBAAGjggHOMIIByjAdBgNVHQ4E |
||||
|
# FgQU9LbhIB3+Ka7S5GGlsqIlssgXNW4wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGL |
||||
|
# p6chnfNtyA8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYD |
||||
|
# VR0lBAwwCgYIKwYBBQUHAwgweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhho |
||||
|
# dHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNl |
||||
|
# cnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEG |
||||
|
# A1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy |
||||
|
# dEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 |
||||
|
# LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwUAYDVR0gBEkwRzA4Bgpg |
||||
|
# hkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNv |
||||
|
# bS9DUFMwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4IBAQBxlRLpUYdWac3v |
||||
|
# 3dp8qmN6s3jPBjdAhO9LhL/KzwMC/cWnww4gQiyvd/MrHwwhWiq3BTQdaq6Z+Cei |
||||
|
# Zr8JqmDfdqQ6kw/4stHYfBli6F6CJR7Euhx7LCHi1lssFDVDBGiy23UC4HLHmNY8 |
||||
|
# ZOUfSBAYX4k4YU1iRiSHY4yRUiyvKYnleB/WCxSlgNcSR3CzddWThZN+tpJn+1Nh |
||||
|
# iaj1a5bA9FhpDXzIAbG5KHW3mWOFIoxhynmUfln8jA/jb7UBJrZspe6HUSHkWGCb |
||||
|
# ugwtK22ixH67xCUrRwIIfEmuE7bhfEJCKMYYVs9BNLZmXbZ0e/VWMyIvIjayS6JK |
||||
|
# ldj1po5SMYICTTCCAkkCAQEwgYYwcjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERp |
||||
|
# Z2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UEAxMo |
||||
|
# RGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIFRpbWVzdGFtcGluZyBDQQIQBM0/hWiu |
||||
|
# dsYbsP5xYMynbTANBglghkgBZQMEAgEFAKCBmDAaBgkqhkiG9w0BCQMxDQYLKoZI |
||||
|
# hvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIwMTIwNzE3MjQxNVowKwYLKoZIhvcN |
||||
|
# AQkQAgwxHDAaMBgwFgQUAyW9UF7aljAtwi9PoB5MKL4oNMUwLwYJKoZIhvcNAQkE |
||||
|
# MSIEIKNuBKbQIa9EYaGw5LbsZcoiHQWB5IL4wN2WFMAjd14oMA0GCSqGSIb3DQEB |
||||
|
# AQUABIIBAEQMyJNcIG5djYU95wCLiDHXQ1BCjgdm1JLO7ks9t1qGOkeJKs/M3d8q |
||||
|
# hc4AE+yq7mKksuV5kznm90G4pwj38tCvl/htKX5qWFHScKX+h+rFvlg9fS6mdNY1 |
||||
|
# h/qP8agpJA3lWhK9YcJIvmeWEWJFBuduU4xH/KAelE3K3PrgcsLomLNRhMVuRDX2 |
||||
|
# W+EB/yZVf760CI2O2ek8pUsz5COIOYRH9oD3TRk656on09K/omqw0J42myeGJ9mj |
||||
|
# VVWD0FPlE5Yg+T2QAAPBatOSGAxSuM145ykWOZ/ToOOS31XES2qYwe0b0ce0vQdx |
||||
|
# TnnSx8JkNd8Q6A73Z9U7LTLK9wtfn9A= |
||||
|
# SIG # End signature block |
||||
@ -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="C:\Users\pc\PycharmProjects\Tp_final_DevOps_Back\venv" |
||||
|
export VIRTUAL_ENV |
||||
|
|
||||
|
_OLD_VIRTUAL_PATH="$PATH" |
||||
|
PATH="$VIRTUAL_ENV/Scripts:$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) ${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 |
||||
@ -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=C:\Users\pc\PycharmProjects\Tp_final_DevOps_Back\venv |
||||
|
|
||||
|
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% |
||||
|
|
||||
|
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%\Scripts;%PATH% |
||||
|
|
||||
|
:END |
||||
|
if defined _OLD_CODEPAGE ( |
||||
|
"%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul |
||||
|
set _OLD_CODEPAGE= |
||||
|
) |
||||
@ -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 |
||||
@ -0,0 +1,3 @@ |
|||||
|
home = C:\Program Files\Python39 |
||||
|
include-system-site-packages = false |
||||
|
version = 3.9.1 |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue