tis-sweethome3d
6.4.2-3
Sweet Home 3D is an open source interior design software that helps you draw a plan of your home, place your furniture and visit the result in 3D.
9131 downloads

Description
- package : tis-sweethome3d
- version : 6.4.2-3
- architecture : all
- categories : Utilities
- maintainer : Simon FONTENEAU, Tranquil IT, Bertrand LEMOIGNE
- description : Sweet Home 3D is an open source interior design software that helps you draw a plan of your home, place your furniture and visit the result in 3D.
- locale : all
- target_os : windows
- min_wapt_version :
- sources : https://sourceforge.net/projects/sweethome3d/
- installed_size : 372772864
- impacted_process : sweethome3d.exe
- description_fr : Sweet Home 3D est un logiciel libre d'aménagement d'intérieur qui vous aide à dessiner le plan de votre maison, y placer vos meubles et visiter le résultat en 3D.
- description_pl : Sweet Home 3D to oprogramowanie open source do projektowania wnętrz, które pomoże Ci narysować plan domu, umieścić meble i zobaczyć wynik w 3D.
- description_de : Sweet Home 3D ist eine Open-Source-Innenarchitektursoftware, die Ihnen hilft, einen Plan Ihres Hauses zu zeichnen, Ihre Möbel zu platzieren und das Ergebnis in 3D zu besuchen.
- description_es : Sweet Home 3D es un software de diseño de interiores de código abierto que le ayuda a dibujar un plano de su hogar, colocar sus muebles y visitar el resultado en 3D.
- description_pt :
- description_it :
- description_nl :
- description_ru :
- editor : Emmanuel Puybaret
- licence : GPL
- signature_date : 2021-01-13T12:39:21.324210
- Homepage : http://sweethome3d.com/fr/
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import platform
import json
uninstallkey = []
def install():
versionpaquet = control['version'].split('-',1)[0]
def verssweet(key):
return get_file_properties(makepath(key['install_location'],'SweetHome3D.exe'))['ProductVersion']
install_exe_if_needed('SweetHome3D-%s-windows.exe' % versionpaquet ,silentflags='/sp /verysilent',key='Sweet Home 3D_is1',min_version=versionpaquet,get_version=verssweet)
def update_package():
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
data = json.loads(ensure_unicode(wgets('https://sourceforge.net/projects/sweethome3d/best_release.json',proxies=proxies)))['platform_releases']['windows']
dstexe = 'https://netix.dl.sourceforge.net/project/sweethome3d/%s' % data['filename']
filename = data['filename'].split('/')[-1]
version = filename.split('-')[1]
print ("Latest Version : " + version)
exes = glob.glob('*.exe')
for fn in exes:
if fn != filename:
remove_file(fn)
if not isfile(filename):
print('Downloading %s from %s'%(filename,dstexe))
wget(dstexe,filename,proxies=proxies,download_timeout=900)
else:
print('Already up to date, skipped')
# Changing version of the package
control.version = '%s-%s'%(version,int(control.version.split('-')[-1])+1)
control.save_control_to_wapt()
print('Changing package 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)