tis-anaconda3
2021.5-23
Anaconda est une distribution libre des langages de programmation Python et R appliqué au développement d'applications dédiées à la science des données
9996 téléchargements
Description
- package : tis-anaconda3
- name : Anaconda Distribution (Python 3.x)
- version : 2021.5-23
- categories : Development,Education
- maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ
- installed_size : 5373984768
- editor : Anaconda, Inc.
- licence : New BSD License
- signature_date : 2021-08-17T10:47:39.250893
- size : 425.74 Mo
- locale :
- target_os : windows
- impacted_process : _conda,pythonw
- architecture : x86
- Page d'accueil : https://www.anaconda.com/
control
package : tis-anaconda3
version : 2021.5-23
architecture : x86
section : base
priority : optional
name : Anaconda Distribution (Python 3.x)
categories : Development,Education
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ
description : Anaconda is a free and open-source distribution of the Python and R programming languages for scientific computing
depends :
conflicts :
maturity : PROD
locale :
target_os : windows
min_wapt_version : 1.7
sources : https://www.anaconda.com/products/individual
installed_size : 5373984768
impacted_process : _conda,pythonw
description_fr : Anaconda est une distribution libre des langages de programmation Python et R appliqué au développement d'applications dédiées à la science des données
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor : Anaconda, Inc.
keywords : anaconda,programming,scientific,computing,python,r,distribution
licence : New BSD License
homepage : https://www.anaconda.com/
package_uuid : 1c9d3540-7573-42cd-99b9-ff83e2543cda
valid_from :
valid_until :
forced_install_on :
changelog : https://docs.anaconda.com/anaconda/reference/release-notes/
min_os_version : 6.1
max_os_version :
icon_sha256sum : b55165d2364b2eeb9de5a1a3dce776d46560302228154d603878c4f0a6c47fd5
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : rGl0QhFoAghOb2QCfeDMX4FRHUAdboJQMZcQwtEs/f6o6yWXYu025nOyNdx8+z570yjr4x3OkSOSXD3IIE3nE8+qQshsY7RgjPRmUsF41PJde8okfmkFUYpSS7HnApbCz5141KA1DY47DVNwUANsyAWiWc4QICqPlHeQzE1K8i/efHOyADdSPblHZD4GRZJXD4SNrei27ZkZYLBk/DfYOkuE+JNDEaKofNJV4kVv+hQj0vLF34nf40/dp+vasTEWCXsDfMx9nRmhqPT31WHqNS17Tcv8IGMMb8heEE0bVW3fCSRHJEV0j7ONvyWgUczR+yGWFVJ0T9wGKlYecUI57A==
signature_date : 2021-08-17T10:47:39.250893
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import time
import platform
#Anaconda3 2020.07 (Python 3.8.3 32-bit) Anaconda3 2020.07 (Python 3.8.3 32-bit) 2020.07 "C:\ProgramData\Anaconda3\Uninstall-Anaconda3.exe"
# Installation procedure: https://docs.anaconda.com/anaconda/install/silent-mode/
uninstallkey = []
# Defining variables
bin_name_string = 'Anaconda3-%s-Windows-x86.exe'
app_dir = makepath(programfiles, 'Anaconda3')
conda_path = makepath(app_dir, 'Scripts', 'conda.exe')
conda_python = makepath(app_dir, 'python.exe')
#silent_args = '/S /InstallationType=AllUsers /AddToPath=1 /RegisterPython=0'
silent_args = '/S /InstallationType=AllUsers /AddToPath=1 /RegisterPython=0 /D=%s' % app_dir
app_uninstallkey_string = 'Anaconda3 %s (Python %s %s-bit)'
def install():
# Initializing variables
bin_name = glob.glob('%s*.exe' % bin_name_string.split('%s')[0])[0]
package_version = bin_name.split('-')[1]
if control.architecture == 'x64':
arch = '64'
else:
arch = '32'
# Uninstalling versions not located to the defined directory
for uninstall in installed_softwares(name='Anaconda3'):
if not uninstall['uninstall_string'].startswith('"%s' % app_dir):
print('Uninstalling: %s' % uninstall['name'])
run(uninstall_cmd(uninstall['key']))
time.sleep(300)
# Avoiding uninstall entry of older version to remain (uninstall before install is not necessary)
for uninstall in installed_softwares(name='Anaconda3'):
if Version(uninstall['version']) < Version(package_version):
print('Removing uninstall entry: %s' % uninstall['key'])
unregister_uninstall(uninstall['key'], win64app=False)
unregister_uninstall(uninstall['key'], win64app=True)
# Installing the package
def conda_python_version():
return get_version_from_binary(conda_python)
# Checking manually if the application is installed
if need_install(key=app_uninstallkey_string % (package_version, conda_python_version(), arch), min_version=package_version):
print('Installing: %s' % bin_name)
run('"%s" %s' % (makepath(basedir, bin_name), silent_args), timeout=1800)
# Adding manually the uninstallkey
uninstallkey.append(app_uninstallkey_string % (package_version, conda_python_version(), control.architecture.replace('x','')))
else:
print('%s is already installed' % app_uninstallkey_string % (package_version, conda_python_version(), control.architecture.replace('x','')))
# Prevent interaction with waptpython (please make sure that the following code require the defined path)
if "PYTHONHOME" in os.environ.keys():
del os.environ["PYTHONHOME"]
if "PYTHONPATH" in os.environ.keys():
del os.environ["PYTHONPATH"]
os.environ["PYTHONPATH"] = app_dir
os.environ["PYTHONHOME"] = app_dir
# Preinstalling Anaconda dependencies (procedure: https://docs.conda.io/projects/conda/en/latest/commands/install.html)
print("Preinstalling Anaconda dependencies")
print(run('"%s" install qt --quiet --offline --use-local --yes --prefix "%s"' % (conda_path, app_dir)))
# Debugging information for Anaconda
print("If you're experencing issues with Anaconda you may need to execute in cmd the following command:")
print('"%s"' % makepath(app_dir,'Scripts','activate.bat'))
# Rolling back WAPT Python Pathes (will ensure that WAPT install complete correctly)
if "PYTHONHOME" in os.environ.keys():
del os.environ["PYTHONHOME"]
if "PYTHONPATH" in os.environ.keys():
del os.environ["PYTHONPATH"]
os.environ["PYTHONHOME"] = makepath(WAPT.wapt_base_dir)
os.environ["PYTHONPATH"] = makepath(WAPT.wapt_base_dir)
def session_setup():
print("Configuring: base options")
# Initializing variables
#C:\Users\username\.anaconda\navigator\anaconda-navigator.ini
#C:\Users\jpadmin\AppData\Roaming\.anaconda\navigator\.anaconda\navigator\anaconda-navigator.ini
#user_conf_dir = makepath(systemdrive,'Users', get_current_user(), '.anaconda', 'navigator')
user_conf_dir = makepath(user_appdata,'.anaconda','navigator','.anaconda','navigator') # Path look glitchy but he's correct (at least in version 2020.11)
user_conf_file = makepath(user_conf_dir, 'anaconda-navigator.ini')
# Configuring options
if not isdir(user_conf_dir):
mkdirs(user_conf_dir)
inifile_writestring(user_conf_file, 'main', 'first_time_offline', 'False')
inifile_writestring(user_conf_file, 'main', 'offline_mode', 'True')
inifile_writestring(user_conf_file, 'main', 'hide_offline_dialog', 'True')
inifile_writestring(user_conf_file, 'main', 'first_run', 'False')
inifile_writestring(user_conf_file, 'main', 'hide_update_dialog', 'True')
inifile_writestring(user_conf_file, 'main', 'provide_analytics', 'False')
inifile_writestring(user_conf_file, 'main', 'show_startup', 'False')
inifile_writestring(user_conf_file, 'main', 'hide_quit_dialog', 'True')
inifile_writestring(user_conf_file, 'main', 'hide_update_dialog', 'True')
def update_package():
# Initializing variables
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
app_name = control.name
url = 'https://www.anaconda.com/products/individual'
if control.architecture == 'x64':
arch = '64'
else:
arch = '32'
# Getting latest version from official website
print('URL used is: %s' % url)
url_dl = bs_find(url, 'a', 'data-name', '%s-Bit Graphical Installer' % arch, proxies=proxies)['href']
latest_bin = url_dl.split('/')[-1]
version = latest_bin.split('-')[1]
print("Latest %s version is: %s" % (app_name, version))
print("Download url is: %s" % url_dl)
# Downloading latest binaries
if not isfile(latest_bin):
print('Downloading: %s' % latest_bin)
wget(url_dl, latest_bin, proxies=proxies)
# Changing version of the package
control.version = '%s-%s' % (version, control.version.split('-', 1)[-1])
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
# Deleting outdated binaries
remove_outdated_binaries(version)
def get_proxies():
if platform.python_version_tuple()[0] == '3':
from urllib.request import getproxies
else:
from urllib import getproxies
return getproxies()
def get_proxies_from_wapt_console():
proxies = {}
if platform.system() == 'Windows':
waptconsole_ini_path = makepath(user_local_appdata(), 'waptconsole', 'waptconsole.ini')
else:
waptconsole_ini_path = makepath(user_home_directory(), '.config', 'waptconsole', 'waptconsole.ini')
if isfile(waptconsole_ini_path):
proxy_wapt = inifile_readstring(waptconsole_ini_path, 'global', 'http_proxy')
if proxy_wapt:
proxies = {'http': proxy_wapt, 'https': proxy_wapt}
return proxies
def get_version_from_binary(filename):
if filename.endswith('.msi'):
return get_msi_properties(filename)['ProductVersion']
else:
return get_file_properties(filename)['ProductVersion']
def remove_outdated_binaries(version, list_extensions=['exe','msi','deb','rpm','dmg','pkg'], list_filename_contain=None):
if type(list_extensions) != list:
list_extensions = [list_extensions]
if list_filename_contain:
if type(list_filename_contain) != list:
list_filename_contain = [list_filename_contain]
list_extensions = ['.' + ext for ext in list_extensions if ext[0] != '.']
for file_ext in list_extensions:
for bin_in_dir in glob.glob('*%s' % file_ext):
if not version in bin_in_dir:
remove_file(bin_in_dir)
if list_filename_contain:
for filename_contain in list_filename_contain:
if not filename_contain in bin_in_dir:
remove_file(bin_in_dir)
def bs_find(url, element, attribute=None, value=None, headers=None, proxies=None, features='html.parser', **kwargs):
""""You may need to use a header for some websites. For example: headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'}
"""
import requests
page = requests.get(url, proxies=proxies, headers=headers, **kwargs).text
try:
import bs4 as BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(page, features=features)
except:
import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(page)
if value:
return soup.find(element,{attribute:value})
else:
return soup.find(element)
b95b6ada0a54fe1df06f6cde84f8fa586501ac86eeb86f760106cf87b87168e2 : Anaconda3-2021.05-Windows-x86.exe
4460cbbd0606e140c792f757be0a2c98f9b71673c4f16530fc56857c384292b8 : setup.py
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
b55165d2364b2eeb9de5a1a3dce776d46560302228154d603878c4f0a6c47fd5 : WAPT/icon.png
f3d9faffcf5465377d2bc6a15d67523dbdb480910531772f4b661d3a5fa1f574 : WAPT/control