tis-pyscripter 3.4.1-15

  • package : tis-pyscripter
  • version : 3.4.1-15
  • description : Python IDE editor 32 bits with threads debugging for Wapt.
  • maintainer : TIS <technique@tranquil-it-systems.fr>
  • date : 2018-05-12 12:12:11

setup.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------
#    This file is part of WAPT
#    Copyright (C) 2013  Tranquil IT Systems http://www.tranquil.it
#    WAPT aims to help Windows systems administrators to deploy
#    setup and update applications on users PC.
#
#    WAPT is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    WAPT is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with WAPT.  If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------
from setuphelpers import *
import codecs
from iniparse import RawConfigParser

uninstallkey=[]

def install():
    install_exe_if_needed('PyScripter-v3.4.1-Setup.exe','/VERYSILENT',key='PyScripter_is1',min_version='3.4.1',killbefore=['PyScripter'])

    import common
    if get_current_user().lower() != 'system':
        session_setup()

def session_setup():
    # Check if ini is UTF8 with BOM...
    pyinifn = makepath(application_data(),'pyscripter','pyscripter.ini')
    if isfile(pyinifn):
        inibytes = open(pyinifn,'rb').read()
    else:
        inibytes = ''

    ini = RawConfigParser()
    if inibytes.startswith(codecs.BOM_UTF8):
        inifp = codecs.open(pyinifn,encoding='utf-8-sig')
    else:
        inifp = codecs.open(pyinifn,encoding='utf-8')
    ini.readfp(inifp,pyinifn)
    inifp.close()

    ini.set('IDE Options','AutoCompleteBrackets','FALSE')
    ini.set('IDE Options','NewFileEncoding','sf_UTF8_NoBOM')
    ini.set('IDE Options','PythonEngineType','peRemote')
    ini.set('Other Settings','Style Name','Windows10')
    ini.set(r'Editor Options\Font','Name','Courier New')
    ini.set(r'Interpreter Editor Options\Font','Name','Courier New')
    #
    with open(pyinifn,'w') as inifp:
        inifp.write(('\n'.join(unicode(ini.data).splitlines())).encode('utf-8'))

    print('Pyscripter Ini written')



    

Changelog

3.4.1 Beta - 05/05/2018
New features
- Switch Python Engines without exiting PyScripter
- Faster loading times
- Initial support for running Jupyter notebooks inside PyScripter
- Syntax highlighting for JSON files
- New IDE option "Style Main Window Border"
- Find in Files and ToDo folders can include parameters (#828)
Issues addressed:
- #627, #852, #858, #862, #868, #872


Version 3.3.2
This hotfix release resolves a problem that may occur when running/debugging GUI scripts and a few minor other minor issues

Version 3.3.1
    This is a hotfix release. It fixed an error in Tools, Options, IDE Options.

Version 3.3.0
    New features:
        Thread debugging (#455)
        Much faster python output redirection
        Form Layout and placement stored in PyScripter.local.ini

    Issues addressed:
        #659, #827, #848, #849

Version 3.2.2
    This is a hotfix release. It restores compatibility with Python 3.7a, which was broken due to some changes to the C API

Version 3.2.1 released
    This is a hotfix release. It addresses a regression due to which, in some situations, Unix line breaks were converted to Windows line breaks upon saving files.
    It also includes optimizations that significantly reduce the memory footprint of PyScripter

Version 3.2.0 released
    The major change in this version, is that now PyScripter is DPI Aware.
    For those of you working with high DPI screens, such as those found in modern laptops, this means that text in the PyScripter editor will now be much crisper and easier to the eyes.
    Here follows a list of issues addressed

    New features:
        Dpi awareness (#769)
    Issues addressed:
        #705, #711, #717, #748

Version 3.1 (31/12/2017)
    New features:
        Code folding
        Indentation lines
        New IDE option "Compact line numbers"
        pip tool added
        Internal Interpreter is hidden by default
        Kabyle language added
    Issues addressed:
        python logging now works when using remote interpreter !
        #16, #685, #690, #718, #721, #765, #814, #836

Version 2.6 (March 20, 2015)
    New features:
    Python 3.4 support added

Version 2.5 (March 19, 2012)
    New features:
    This is the first joint 32-bit and 64-bit version release
    Python 3.3 support added
    Recent Projects menu item added
    Expandable lists and tuples in the Variables window ( Issue 583 )
    Expandable watches as in the Variables window ( Issue 523 )
    Basic support for Cython files added ( Issue 542 )
    New interpreter action Paste & Execute ( Issue 500 ) Replaces Paste with Prompt
    New PyIDE option "Display package names in editor tabs" default True ( Issue 115 )
    New search option "Auto Case Sensitive" (case insensitive when search text is lower case)
    The Abort command raises a KeyboardInterrupt at the Remote Engine ( Issue 618 )
    Incremental search in the Project Explorer matches any part of a filename (Issue 623)
    New IDE option "File line limit for syntax check as you type" default 1000
    Issues addressed:
     Issue 516 ,  Issue 348 ,  Issue 549 ,  Issue 563 ,  Issue 564 ,  Issue 568 ,  Issue 576 ,  Issue 587 ,  Issue 591 ,  Issue 592 ,  Issue 594 ,  Issue 597 ,  Issue 598 ,  Issue 599 ,  Issue 612 ,  Issue 613 ,  Issue 615
    

manifest.sha256

[["WAPT/icon.png", "83092815859a13c15223c22ab138ffc9c8b48685bfe3f13b58bedbdcb65cfe31"], ["WAPT/certificate.crt", "13fb474c5c23c135a77aba592eb8821b9ecbcc463f5b7312312b87b20eac6779"], ["WAPT/wapt.psproj", "79adab7ad1d3821b05c9d018c5c1a8949b4400aa9ddb54bfb62d829484739d1a"], ["PyScripter-v3.4.1-Setup.exe", "16a479297d0acd0c3dc4bc4f7655d6bd316185c1f8e82884be2bb8f75466ab1e"], ["setup.py", "73e5e838975583b78823b0298719e67e6f13a7588341e9929997907c49896a75"], ["WAPT/control", "c63dbd356eba7254a7e99be4983c11ba038998031f9ebe2445845badd37584ed"], ["WAPT/changelog.txt", "b87b6eeb86088f46489d3f32caedd82d2a1c39e1e88af66bbd450bfeb5efc32b"]]
    

Forum feed

WAPT Packages / Paquets WAPT • Re: Le principe de MAJ de paquet ?
Bonsoir,
Lorsque j'importe un paquet depuis le store de WAPT https://store.wapt.fr/ avec le bouton "Importer depuis Internet", je reçois ce paquet dans mon dépôt privé. Jusque là c'est ok. Mais s'il y a une nouvelle version du logiciel sur leur site officiel, le paquet ne va pas se mettre à jour automatiquement

Est-ce que le fait d'avoir importé le paquet depuis le store de WAPT va mettre à jour les paquets qui sont dans mon dépôt privé ? Si oui, est-on dépendant de la personne qui gère le paquet sur le store ? Si non, doit-on attendre de voir une nouvelle version sur le store pour le ré-importer sur notre dépôt privé ?
Lorsque nous mettons à jour un logiciel, il faut effectivement que vous l'importiez sur votre serveur WAPT. Vous pouvez faire un script qui va vérifier que vos paquets sont à jour en comparant les deux dépôts. C'est ce que nous faisons chez nos clients info-gérés.


Autre question liée aux mises à jour de paquet

Je constate que la version de OwnCloud sur le store n'est pas à jour. J'ai donc créé le paquet en y ajoutant une fonction update_package() qui va mettre à jour la source s'il ne l'est pas dans le paquet. Pour ceux qui utilisent ownCloud voici la fonction qui récupère la dernière version du logiciel sur le site officiel https://owncloud.org/download/ :
[...]

Cela marche bien sur PyScripter, en faisant clic droit sur update-package-source et Exécuter, il me met bien à jour le logiciel dans le dossier ainsi que la version dans le fichier control. Il faut donc ensuite build-upload et le tour est joué. Le soucis c'est qu'on ne peut pas faire cela directement sur la console. Peut-être que je n'ai pas trouvé comment faire, corrigez-moi si je me trompe.
Effectivement la console ne met pas à jour les paquets.

Pour une alternative un peu "moche", je peux inclure la mise à jour du paquet au début de la fonction install() après avoir vérifié si la version sur le net est supérieure à celle de mon paquet, je n'ai pas encore essayé mais cela ne m'a l'air pas très adapté.
C'est surtout une alternative pas du tout préconisé et à l'encontre du fonctionnement de WAPT.
En effet, si vous déployez le paquet avec la fonction "update-package" dans l'install, cela veut dire que chaque machine ira télécharger l'exécutable sur Internet. Deux problèmes à cela :
  • 1. La bande passante qui sera fortement sollicitée
  • 2. Le non contrôle de ce qui est installé sur le poste. Imaginez un problème d'intégrité du fichier téléchargé (corrompu ou virus).
De plus, dans ce cas, entre le moment où vous aurez importé le paquet dans votre dépôt privé et le moment où l'exécutable sera téléchargé, il peut y avoir une différence de version... La remontée d'inventaire des paquets sera alors faussée !

La fonction 'update-package" permet de gagner du temps lorsque vous mettez à jour le paquet.

Bonne soirée

Statistiques: Posté par kguerineau — 18 juillet 2018, 21:58