README.md
This commit is contained in:
parent
abd7769c14
commit
cf5ccaacfb
11
README.md
11
README.md
@ -45,3 +45,14 @@ make html
|
||||
Open file://wsl.localhost/Ubuntu/home/zefirka/advanced-python-homework-2023/doc/build/html/index.html
|
||||
|
||||
***Tadam***
|
||||
|
||||
## 3. Function running time for different interpreters
|
||||
|
||||
| | CPython3.9 | CPython3.11| PyPy7.3 |
|
||||
|-----------|------------|------------|-----------|
|
||||
| without TH| 0.395806057| 0.23031235 |0.099493876|
|
||||
| with TH | 0.398283844| 0.223160335|0.109582296|
|
||||
| with numpy| 0.69133805 | 0.473824731|5.184651649|
|
||||
| user+sys | 1.689+0.308| 1.066+0.319|6.215+0.350|
|
||||
|
||||
PyPy 5.7 didn't download due to error: '...libffi.so.6: cannot open shared object file: No such file or directory'. It's too hard than requied: I did my homework in WSL.
|
||||
|
247
time_execution/3_11_cpython/bin/Activate.ps1
Normal file
247
time_execution/3_11_cpython/bin/Activate.ps1
Normal file
@ -0,0 +1,247 @@
|
||||
<#
|
||||
.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 VIRTUAL_ENV_PROMPT altogether.
|
||||
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
||||
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
||||
}
|
||||
|
||||
# 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 virtual 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
|
||||
}
|
||||
$env:VIRTUAL_ENV_PROMPT = $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"
|
69
time_execution/3_11_cpython/bin/activate
Normal file
69
time_execution/3_11_cpython/bin/activate
Normal file
@ -0,0 +1,69 @@
|
||||
# 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
|
||||
unset VIRTUAL_ENV_PROMPT
|
||||
if [ ! "${1:-}" = "nondestructive" ] ; then
|
||||
# Self destruct!
|
||||
unset -f deactivate
|
||||
fi
|
||||
}
|
||||
|
||||
# unset irrelevant variables
|
||||
deactivate nondestructive
|
||||
|
||||
VIRTUAL_ENV="/home/zefirka/advanced-python-homework/time_execution/3_11_cpython"
|
||||
export VIRTUAL_ENV
|
||||
|
||||
_OLD_VIRTUAL_PATH="$PATH"
|
||||
PATH="$VIRTUAL_ENV/bin:$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="(3_11_cpython) ${PS1:-}"
|
||||
export PS1
|
||||
VIRTUAL_ENV_PROMPT="(3_11_cpython) "
|
||||
export VIRTUAL_ENV_PROMPT
|
||||
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
|
26
time_execution/3_11_cpython/bin/activate.csh
Normal file
26
time_execution/3_11_cpython/bin/activate.csh
Normal file
@ -0,0 +1,26 @@
|
||||
# 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; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
setenv VIRTUAL_ENV "/home/zefirka/advanced-python-homework/time_execution/3_11_cpython"
|
||||
|
||||
set _OLD_VIRTUAL_PATH="$PATH"
|
||||
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
||||
|
||||
|
||||
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||
|
||||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||
set prompt = "(3_11_cpython) $prompt"
|
||||
setenv VIRTUAL_ENV_PROMPT "(3_11_cpython) "
|
||||
endif
|
||||
|
||||
alias pydoc python -m pydoc
|
||||
|
||||
rehash
|
69
time_execution/3_11_cpython/bin/activate.fish
Normal file
69
time_execution/3_11_cpython/bin/activate.fish
Normal file
@ -0,0 +1,69 @@
|
||||
# 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"
|
||||
set -e _OLD_FISH_PROMPT_OVERRIDE
|
||||
# prevents error when using nested fish instances (Issue #93858)
|
||||
if functions -q _old_fish_prompt
|
||||
functions -e fish_prompt
|
||||
functions -c _old_fish_prompt fish_prompt
|
||||
functions -e _old_fish_prompt
|
||||
end
|
||||
end
|
||||
|
||||
set -e VIRTUAL_ENV
|
||||
set -e VIRTUAL_ENV_PROMPT
|
||||
if test "$argv[1]" != "nondestructive"
|
||||
# Self-destruct!
|
||||
functions -e deactivate
|
||||
end
|
||||
end
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
set -gx VIRTUAL_ENV "/home/zefirka/advanced-python-homework/time_execution/3_11_cpython"
|
||||
|
||||
set -gx _OLD_VIRTUAL_PATH $PATH
|
||||
set -gx PATH "$VIRTUAL_ENV/bin" $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) "(3_11_cpython) " (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"
|
||||
set -gx VIRTUAL_ENV_PROMPT "(3_11_cpython) "
|
||||
end
|
8
time_execution/3_11_cpython/bin/f2py
Executable file
8
time_execution/3_11_cpython/bin/f2py
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_11_cpython/bin/python3.11
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from numpy.f2py.f2py2e import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_11_cpython/bin/pip
Executable file
8
time_execution/3_11_cpython/bin/pip
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_11_cpython/bin/python3.11
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_11_cpython/bin/pip3
Executable file
8
time_execution/3_11_cpython/bin/pip3
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_11_cpython/bin/python3.11
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_11_cpython/bin/pip3.11
Executable file
8
time_execution/3_11_cpython/bin/pip3.11
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_11_cpython/bin/python3.11
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
1
time_execution/3_11_cpython/bin/python
Symbolic link
1
time_execution/3_11_cpython/bin/python
Symbolic link
@ -0,0 +1 @@
|
||||
python3.11
|
1
time_execution/3_11_cpython/bin/python3
Symbolic link
1
time_execution/3_11_cpython/bin/python3
Symbolic link
@ -0,0 +1 @@
|
||||
python3.11
|
1
time_execution/3_11_cpython/bin/python3.11
Symbolic link
1
time_execution/3_11_cpython/bin/python3.11
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/bin/python3.11
|
1
time_execution/3_11_cpython/lib64
Symbolic link
1
time_execution/3_11_cpython/lib64
Symbolic link
@ -0,0 +1 @@
|
||||
lib
|
5
time_execution/3_11_cpython/pyvenv.cfg
Normal file
5
time_execution/3_11_cpython/pyvenv.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
home = /usr/bin
|
||||
include-system-site-packages = false
|
||||
version = 3.11.5
|
||||
executable = /usr/bin/python3.11
|
||||
command = /usr/bin/python3.11 -m venv /home/zefirka/advanced-python-homework/time_execution/3_11_cpython
|
241
time_execution/3_9_cpython/bin/Activate.ps1
Normal file
241
time_execution/3_9_cpython/bin/Activate.ps1
Normal file
@ -0,0 +1,241 @@
|
||||
<#
|
||||
.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 virtual 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"
|
66
time_execution/3_9_cpython/bin/activate
Normal file
66
time_execution/3_9_cpython/bin/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="/home/zefirka/advanced-python-homework/time_execution/3_9_cpython"
|
||||
export VIRTUAL_ENV
|
||||
|
||||
_OLD_VIRTUAL_PATH="$PATH"
|
||||
PATH="$VIRTUAL_ENV/bin:$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="(3_9_cpython) ${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
|
25
time_execution/3_9_cpython/bin/activate.csh
Normal file
25
time_execution/3_9_cpython/bin/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 "/home/zefirka/advanced-python-homework/time_execution/3_9_cpython"
|
||||
|
||||
set _OLD_VIRTUAL_PATH="$PATH"
|
||||
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
||||
|
||||
|
||||
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||
|
||||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||
set prompt = "(3_9_cpython) $prompt"
|
||||
endif
|
||||
|
||||
alias pydoc python -m pydoc
|
||||
|
||||
rehash
|
64
time_execution/3_9_cpython/bin/activate.fish
Normal file
64
time_execution/3_9_cpython/bin/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 "/home/zefirka/advanced-python-homework/time_execution/3_9_cpython"
|
||||
|
||||
set -gx _OLD_VIRTUAL_PATH $PATH
|
||||
set -gx PATH "$VIRTUAL_ENV/bin" $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) "(3_9_cpython) " (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
|
8
time_execution/3_9_cpython/bin/f2py
Executable file
8
time_execution/3_9_cpython/bin/f2py
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_9_cpython/bin/python3.9
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from numpy.f2py.f2py2e import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_9_cpython/bin/pip
Executable file
8
time_execution/3_9_cpython/bin/pip
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_9_cpython/bin/python3.9
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_9_cpython/bin/pip3
Executable file
8
time_execution/3_9_cpython/bin/pip3
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_9_cpython/bin/python3.9
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
8
time_execution/3_9_cpython/bin/pip3.9
Executable file
8
time_execution/3_9_cpython/bin/pip3.9
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/zefirka/advanced-python-homework/time_execution/3_9_cpython/bin/python3.9
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
1
time_execution/3_9_cpython/bin/python
Symbolic link
1
time_execution/3_9_cpython/bin/python
Symbolic link
@ -0,0 +1 @@
|
||||
python3.9
|
1
time_execution/3_9_cpython/bin/python3
Symbolic link
1
time_execution/3_9_cpython/bin/python3
Symbolic link
@ -0,0 +1 @@
|
||||
python3.9
|
1
time_execution/3_9_cpython/bin/python3.9
Symbolic link
1
time_execution/3_9_cpython/bin/python3.9
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/bin/python3.9
|
1
time_execution/3_9_cpython/lib64
Symbolic link
1
time_execution/3_9_cpython/lib64
Symbolic link
@ -0,0 +1 @@
|
||||
lib
|
3
time_execution/3_9_cpython/pyvenv.cfg
Normal file
3
time_execution/3_9_cpython/pyvenv.cfg
Normal file
@ -0,0 +1,3 @@
|
||||
home = /usr/bin
|
||||
include-system-site-packages = false
|
||||
version = 3.9.18
|
81
time_execution/mandelbrot.py
Normal file
81
time_execution/mandelbrot.py
Normal file
@ -0,0 +1,81 @@
|
||||
def linspace(start, stop, n):
|
||||
if n == 1:
|
||||
yield stop
|
||||
return
|
||||
h = (stop - start) / (n - 1)
|
||||
for i in range(n):
|
||||
yield start + h * i
|
||||
|
||||
def mandelbrot_1(pmin = -2.5, pmax= 1.5, qmin = -2, qmax= 2,
|
||||
ppoints = 200, qpoints = 200, max_iterations = 300, infinity_border = 100):
|
||||
image = [[0 for i in range(qpoints)] for j in range(ppoints)]
|
||||
for ip, p in enumerate(linspace(pmin, pmax, ppoints)):
|
||||
for iq, q in enumerate(linspace(qmin, qmax, qpoints)):
|
||||
c = p + 1j * q
|
||||
z = 0
|
||||
for k in range(max_iterations):
|
||||
z = z ** 2 + c
|
||||
if abs(z) > infinity_border:
|
||||
image[ip][iq] = 1
|
||||
break
|
||||
return image
|
||||
|
||||
def linspace(start, stop, n):
|
||||
if n == 1:
|
||||
yield stop
|
||||
return
|
||||
h = (stop - start) / (n - 1)
|
||||
for i in range(n):
|
||||
yield start + h * i
|
||||
|
||||
def mandelbrot_2(pmin: float = -2.5, pmax: float = 1.5, qmin: float = -2, qmax: float = 2,
|
||||
ppoints: int = 200, qpoints: int = 200, max_iterations: int = 300, infinity_border: float = 100) -> list[list[int]]:
|
||||
|
||||
image: list[list[int]] = [[0 for i in range(qpoints)] for j in range(ppoints)]
|
||||
for ip, p in enumerate(linspace(pmin, pmax, ppoints)):
|
||||
for iq, q in enumerate(linspace(qmin, qmax, qpoints)):
|
||||
c: complex = p + 1j * q
|
||||
z: complex = 0
|
||||
for k in range(max_iterations):
|
||||
z = z ** 2 + c
|
||||
if abs(z) > infinity_border:
|
||||
image[ip][iq] = 1
|
||||
break
|
||||
return image
|
||||
|
||||
import numpy as np
|
||||
|
||||
def mandelbrot_3(pmin = -2.5, pmax = 1.5, qmin = -2, qmax = 2,
|
||||
ppoints = 200, qpoints = 200, max_iterations = 300, infinity_border= 100):
|
||||
|
||||
image = np.zeros((ppoints, qpoints))
|
||||
|
||||
for ip, p in enumerate(np.linspace(pmin, pmax, ppoints)):
|
||||
for iq, q in enumerate(np.linspace(qmin, qmax, qpoints)):
|
||||
c = p + 1j * q
|
||||
z = 0
|
||||
for k in range(max_iterations):
|
||||
z = z ** 2 + c
|
||||
if abs(z) > infinity_border:
|
||||
|
||||
image[ip, iq] = 1
|
||||
break
|
||||
return image
|
||||
|
||||
|
||||
import time
|
||||
if __name__ == '__main__':
|
||||
tic = time.perf_counter_ns()
|
||||
image = mandelbrot_1()
|
||||
toc = time.perf_counter_ns()
|
||||
print((toc - tic)/1_000_000_000, "s - checked_1")
|
||||
|
||||
tic = time.perf_counter_ns()
|
||||
image = mandelbrot_2()
|
||||
toc = time.perf_counter_ns()
|
||||
print((toc - tic)/1_000_000_000, "s - checked_2")
|
||||
|
||||
tic = time.perf_counter_ns()
|
||||
image = mandelbrot_3()
|
||||
toc = time.perf_counter_ns()
|
||||
print((toc - tic)/1_000_000_000, "s - checked_3")
|
BIN
time_execution/pypy3.9-v7.3.13-linux64.tar.bz2
Normal file
BIN
time_execution/pypy3.9-v7.3.13-linux64.tar.bz2
Normal file
Binary file not shown.
608
time_execution/pypy3.9-v7.3.13-linux64/LICENSE
Normal file
608
time_execution/pypy3.9-v7.3.13-linux64/LICENSE
Normal file
@ -0,0 +1,608 @@
|
||||
#encoding utf-8
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Except when otherwise stated (look for LICENSE files in directories
|
||||
or information at the beginning of each file) all software and
|
||||
documentation in the 'rpython', 'pypy', 'ctype_configure', 'dotviewer',
|
||||
'demo', 'extra_tests', 'include', 'lib_pypy', 'py', and '_pytest'
|
||||
directories is licensed as follows:
|
||||
|
||||
The MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
PyPy Copyright holders 2003-2023
|
||||
--------------------------------
|
||||
|
||||
Except when otherwise stated (look for LICENSE files or information at
|
||||
the beginning of each file) the files in the 'pypy' directory are each
|
||||
copyrighted by one or more of the following people and organizations:
|
||||
|
||||
Armin Rigo
|
||||
Maciej Fijałkowski
|
||||
Matti Picus
|
||||
Carl Friedrich Bolz-Tereick
|
||||
Antonio Cuni
|
||||
Amaury Forgeot d'Arc
|
||||
Ronan Lamy
|
||||
Samuele Pedroni
|
||||
Alex Gaynor
|
||||
Philip Jenvey
|
||||
Richard Plangger
|
||||
Brian Kearns
|
||||
Manuel Jacob
|
||||
Michael Hudson-Doyle
|
||||
David Schneider
|
||||
Holger Krekel
|
||||
Christian Tismer
|
||||
Håkan Ardö
|
||||
Benjamin Peterson
|
||||
Wim Lavrijsen
|
||||
Anders Chrigstrom
|
||||
Eric van Riet Paap
|
||||
Dan Villiom Podlaski Christiansen
|
||||
Remi Meier
|
||||
Richard Emslie
|
||||
Alexander Schremmer
|
||||
Lukas Diekmann
|
||||
Sven Hager
|
||||
Anders Lehmann
|
||||
Edd Barrett
|
||||
Aurelien Campeas
|
||||
Niklaus Haldimann
|
||||
Camillo Bruni
|
||||
Laura Creighton
|
||||
Toon Verwaest
|
||||
Leonardo Santagada
|
||||
Seo Sanghyeon
|
||||
Romain Guillebert
|
||||
Ronny Pfannschmidt
|
||||
Yusuke Izawa
|
||||
Justin Peel
|
||||
Raffael Tfirst
|
||||
David Edelsohn
|
||||
Anders Hammarquist
|
||||
Jakub Gustak
|
||||
Gregor Wegberg
|
||||
Guido Wesdorp
|
||||
Lawrence Oluyede
|
||||
Stefano Rivera
|
||||
Bartosz Skowron
|
||||
Daniel Roberts
|
||||
Adrien Di Mascio
|
||||
Niko Matsakis
|
||||
Batuhan Taskaya
|
||||
Alexander Hesse
|
||||
Ludovic Aubry
|
||||
stian
|
||||
Jacob Hallen
|
||||
Jason Creighton
|
||||
Mark Young
|
||||
Andrew Lawrence
|
||||
Ondrej Baranovič
|
||||
Alex Martelli
|
||||
Spenser Bauman
|
||||
Michal Bendowski
|
||||
Jan de Mooij
|
||||
Stefan Beyer
|
||||
Tyler Wade
|
||||
Vincent Legoll
|
||||
Simon Cross
|
||||
Michael Foord
|
||||
muke101
|
||||
Stephan Diehl
|
||||
Jean-Paul Calderone
|
||||
Stefan Schwarzer
|
||||
Tomek Meka
|
||||
Valentino Volonghi
|
||||
Patrick Maupin
|
||||
Devin Jeanpierre
|
||||
Bob Ippolito
|
||||
Bruno Gola
|
||||
David Malcolm
|
||||
Yannick Jadoul
|
||||
Squeaky
|
||||
Timo Paulssen
|
||||
Marius Gedminas
|
||||
Laurence Tratt
|
||||
Alexandre Fayolle
|
||||
Nicolas Truessel
|
||||
Simon Burton
|
||||
Martin Matusiak
|
||||
Konstantin Lopuhin
|
||||
Wenzhu Man
|
||||
John Witulski
|
||||
Julian Berman
|
||||
Jeremy Thurgood
|
||||
Adrian Kuhn
|
||||
Dario Bertini
|
||||
Greg Price
|
||||
Ivan Sichmann Freitas
|
||||
Mark Pearse
|
||||
Tobias Pape
|
||||
Andreas Stührk
|
||||
Jean-Philippe St. Pierre
|
||||
Stian Andreassen
|
||||
Guido van Rossum
|
||||
Pavel Vinogradov
|
||||
William Leslie
|
||||
Paweł Piotr Przeradowski
|
||||
Michał Górny
|
||||
Paul deGrandis
|
||||
Ilya Osadchiy
|
||||
Tobias Oberstein
|
||||
marky1991
|
||||
Boris Feigin
|
||||
tav
|
||||
Taavi Burns
|
||||
Joannah Nanjekye
|
||||
Georg Brandl
|
||||
quejebo
|
||||
Tadeu Zagallo
|
||||
Vanessa Freudenberg
|
||||
Gerald Klix
|
||||
Wanja Saatkamp
|
||||
Mike Blume
|
||||
olliemath
|
||||
Oscar Nierstrasz
|
||||
Rami Chowdhury
|
||||
Stefan H. Muller
|
||||
Dodan Mihai
|
||||
Tim Felgentreff
|
||||
Eugene Oden
|
||||
Colin Valliant
|
||||
Henry Mason
|
||||
Jeff Terrace
|
||||
David Ripton
|
||||
Preston Timmons
|
||||
Vasily Kuznetsov
|
||||
Pieter Zieschang
|
||||
Lukas Renggli
|
||||
Dusty Phillips
|
||||
Guenter Jantzen
|
||||
Nils Müller
|
||||
Amit Regmi
|
||||
Ned Batchelder
|
||||
Jasper Schulz
|
||||
Anton Gulenko
|
||||
Ben Young
|
||||
Nicolas Chauvat
|
||||
Andrew Durdin
|
||||
Andrew Chambers
|
||||
Sergey Matyunin
|
||||
Łukasz Langa
|
||||
Nicholas Riley
|
||||
Michael Schneider
|
||||
Yusuke Tsutsumi
|
||||
Rocco Moretti
|
||||
Gintautas Miliauskas
|
||||
Michael Twomey
|
||||
Igor Trindade Oliveira
|
||||
Jason Chu
|
||||
Yichao Yu
|
||||
Lucian Branescu Mihaila
|
||||
anatoly techtonik
|
||||
Mariano Anaya
|
||||
Olivier Dormond
|
||||
Jared Grubb
|
||||
Karl Bartel
|
||||
Gabriel Lavoie
|
||||
Wouter van Heyst
|
||||
Alecsandru Patrascu
|
||||
Lin Cheng
|
||||
Brian Dorsey
|
||||
Victor Stinner
|
||||
Andrews Medina
|
||||
Sebastian Pawluś
|
||||
Stuart Williams
|
||||
Toby Watson
|
||||
Antoine Pitrou
|
||||
Aaron Iles
|
||||
Christian Hudon
|
||||
Daniel Patrick
|
||||
Justas Sadzevicius
|
||||
Gasper Zejn
|
||||
Neil Shepperd
|
||||
Mikael Schönenberg
|
||||
Michael Cheng
|
||||
Stanislaw Halik
|
||||
Berkin Ilbeyi
|
||||
Mihnea Saracin
|
||||
Matt Jackson
|
||||
Ricky Zhou
|
||||
Jonathan David Riehl
|
||||
Anders Qvist
|
||||
Beatrice During
|
||||
Elmo Mäntynen
|
||||
Corbin Simpson
|
||||
Chirag Jadwani
|
||||
Faye Zhao
|
||||
Pauli Virtanen
|
||||
Mike Pavone
|
||||
Alan McIntyre
|
||||
Alexander Sedov
|
||||
Alex Perry
|
||||
Floris Bruynooghe
|
||||
Christopher Pope
|
||||
Attila Gobi
|
||||
Vaibhav Sood
|
||||
Reuben Cummings
|
||||
Robert Zaremba
|
||||
David C Ellis
|
||||
cptpcrd
|
||||
Felix C. Stegerman
|
||||
Jens-Uwe Mager
|
||||
Dan Stromberg
|
||||
Carl Meyer
|
||||
Stefano Parmesan
|
||||
Alexis Daboville
|
||||
Christian Tismer
|
||||
Marc Abramowitz
|
||||
Arjun Naik
|
||||
Valentina Mukhamedzhanova
|
||||
Florin Papa
|
||||
Aaron Gallagher
|
||||
touilleMan
|
||||
Tristan Arthur
|
||||
Anthony Sottile
|
||||
Arianna Avanzini
|
||||
Matt Billenstein
|
||||
Sebastian Berg
|
||||
Tim Matussek
|
||||
Jacek Generowicz
|
||||
Sylvain Thenault
|
||||
Alejandro J. Cura
|
||||
Roberto De Ioris
|
||||
Andrew Dalke
|
||||
Gabriel
|
||||
Nathan Taylor
|
||||
Karl Ramm
|
||||
Vladimir Kryachko
|
||||
Lukas Vacek
|
||||
Jakub Stasiak
|
||||
Omer Katz
|
||||
Kunal Grover
|
||||
Mark Williams
|
||||
Thomas Hisch
|
||||
Barry Hart
|
||||
Tomasz Dziopa
|
||||
Wenzel Jakob
|
||||
Lutz Paelike
|
||||
Ignas Mikalajunas
|
||||
Martin Blais
|
||||
Jacob Oscarson
|
||||
Lene Wagner
|
||||
Lucio Torre
|
||||
Henrik Vendelbo
|
||||
Artur Lisiecki
|
||||
Travis Francis Athougies
|
||||
Miguel de Val Borro
|
||||
Kristjan Valur Jonsson
|
||||
Christoph Gerum
|
||||
Yasir Suhail
|
||||
Tomo Cocoa
|
||||
Neil Blakey-Milner
|
||||
Dan Buch
|
||||
Lars Wassermann
|
||||
Sergey Kishchenko
|
||||
Ryan Gonzalez
|
||||
Ian Foote
|
||||
David Lievens
|
||||
Richard Lancaster
|
||||
Philipp Rustemeuer
|
||||
Logan Chien
|
||||
Catalin Gabriel Manciu
|
||||
Miro Hrončok
|
||||
Antoine Dupre
|
||||
Bernd Schoeller
|
||||
Catalin Fierut
|
||||
Chris Burr
|
||||
nimaje
|
||||
Pierre-Yves DAVID
|
||||
Alessandro Ogier
|
||||
Gustavo Niemeyer
|
||||
Andrew Thompson
|
||||
Joshua Gilbert
|
||||
Yusei Tahara
|
||||
Christopher Armstrong
|
||||
Anders Sigfridsson
|
||||
Stephan Busemann
|
||||
Godefroid Chappelle
|
||||
Dan Colish
|
||||
Akira Li
|
||||
Bobby Impollonia
|
||||
timo
|
||||
Anna Katrina Dominguez
|
||||
Juan Francisco Cantero Hurtado
|
||||
Ben Darnell
|
||||
Rafał Gałczyński
|
||||
Yury V. Zaytsev
|
||||
Laurens Van Houtven
|
||||
rafalgalczynski@gmail.com
|
||||
Jason Michalski
|
||||
Toni Mattis
|
||||
Lucas Stadler
|
||||
Jeong YunWon
|
||||
Ruochen Huang
|
||||
Markus Holtermann
|
||||
Kim Jin Su
|
||||
Matt Bogosian
|
||||
Aaron Tubbs
|
||||
Amber Brown
|
||||
Nikolay Zinov
|
||||
florinpapa
|
||||
Vasantha Ganesh K
|
||||
Fabio Niephaus
|
||||
Nate Bragg
|
||||
afteryu
|
||||
Andrew Stepanov
|
||||
Radu Ciorba
|
||||
Carl Bordum Hansen
|
||||
Paul Ganssle
|
||||
Michal Kuffa
|
||||
joachim-ballmann@bitbucket.org
|
||||
Vincent Michel
|
||||
Ram Rachum
|
||||
Bystroushaak
|
||||
Ryan Hileman
|
||||
joserubiovidales@gmail.com
|
||||
dakarpov@gmail.com
|
||||
Sreepathi Pai
|
||||
Georges Racinet
|
||||
ashwinahuja
|
||||
Bolutife Ogunsola
|
||||
cjmcdonald@google.com
|
||||
Alex Orange
|
||||
alexprengere
|
||||
Dennis Sweeney
|
||||
Kevin Lee
|
||||
h-vertini
|
||||
Maxwell Bernstein
|
||||
Renaud Blanch
|
||||
Anna Ravencroft
|
||||
Dinu Gherman
|
||||
Michael Chermside
|
||||
Jim Baker
|
||||
Zooko Wilcox-O Hearn
|
||||
Daniel Neuhäuser
|
||||
Konrad Delong
|
||||
Rodrigo Araújo
|
||||
Armin Ronacher
|
||||
Jim Hunziker
|
||||
Christian Muirhead
|
||||
Brett Cannon
|
||||
Chris Lambacher
|
||||
Dan Loewenherz
|
||||
coolbutuseless@gmail.com
|
||||
Christopher Groskopf
|
||||
Buck Golemon
|
||||
soareschen
|
||||
Even Wiik Thomassen
|
||||
Antony Lee
|
||||
James Lan
|
||||
yrttyr
|
||||
Kristoffer Kleine
|
||||
Julien Phalip
|
||||
shoma hosaka
|
||||
Tomer Chachamu
|
||||
Flavio Percoco
|
||||
Markus Unterwaditzer
|
||||
Mike Bayer
|
||||
OlivierBlanvillain
|
||||
jiaaro
|
||||
James Robert
|
||||
aliceinwire
|
||||
Kurt Griffiths
|
||||
Matthew Miller
|
||||
Asmo Soinio
|
||||
Stefan Marr
|
||||
Boglarka Vezer
|
||||
Mads Kiilerich
|
||||
Dan Crosta
|
||||
Dan Sanders
|
||||
Ben Mather
|
||||
Chris Pressey
|
||||
halgari
|
||||
Berker Peksag
|
||||
Roman Podoliaka
|
||||
Nikolaos-Digenis Karagiannis
|
||||
Donald Stufft
|
||||
Volodymyr Vladymyrov
|
||||
Andrey Churin
|
||||
Niclas Olofsson
|
||||
Yaroslav Fedevych
|
||||
Zearin
|
||||
Tobias Diaz
|
||||
Jason Madden
|
||||
Jonas Pfannschmidt
|
||||
werat
|
||||
JohnDoe
|
||||
Diana Popa
|
||||
Eli Stevens
|
||||
pizi
|
||||
remarkablerocket
|
||||
reubano@gmail.com
|
||||
Daniil Yarancev
|
||||
PavloKapyshin
|
||||
Graham Markall
|
||||
Stanisław Halik
|
||||
Iraklis D.
|
||||
Petre Vijiac
|
||||
Min RK
|
||||
Caleb Hattingh
|
||||
Steve Papanik
|
||||
m@funkyhat.org
|
||||
Tomáš Pružina
|
||||
gabrielg@ec2-54-146-239-158.compute-1.amazonaws.com
|
||||
Filip Salomonsson
|
||||
Johan Forsberg
|
||||
Evgenii Gorinov
|
||||
John Aldis
|
||||
Hervé Beraud
|
||||
Paul Graydon
|
||||
whitequark
|
||||
DeVerne Jones
|
||||
Zsolt Cserna
|
||||
Yasen Kiprov
|
||||
mkuffa
|
||||
Ivan
|
||||
Jesdi
|
||||
paugier
|
||||
bernd.schoeller@inf.ethz.ch
|
||||
Sam Edwards
|
||||
Joannah Nanjekye nanjekyejoannah@gmail.com
|
||||
Alex Kashirin
|
||||
Ihar Shabes
|
||||
kotus9
|
||||
Mike Kaplinskiy
|
||||
Henri Tuhola
|
||||
mark doerr
|
||||
Tomas Hrnciar
|
||||
shaolo1
|
||||
Chris AtLee
|
||||
Christoph Reiter
|
||||
Brad Kish
|
||||
Michael Cho
|
||||
Ian Clester
|
||||
David Hewitt
|
||||
h-vetinari
|
||||
Isuru Fernando
|
||||
|
||||
Heinrich-Heine University, Germany
|
||||
Open End AB (formerly AB Strakt), Sweden
|
||||
merlinux GmbH, Germany
|
||||
tismerysoft GmbH, Germany
|
||||
Logilab Paris, France
|
||||
DFKI GmbH, Germany
|
||||
Impara, Germany
|
||||
Change Maker, Sweden
|
||||