MakeMake The Dwarf Planet is a feed agregator.

Probleme wxformbuilder, wxpython et print()

by Musclor13 from AFPy discuss

Bonjour.
J’ai pas l’habitude de poster sur des forums car en général y a tout ce qu’il faut sur internet mais la…
Je me suis amusé a créé une simple fenêtre et un bouton avec wxformbuilder que j’ai convertis ensuite en code wxpython. J’ai créé un 2eme script pour ouvrir la fenêtre que j’ai créé. Comme j’avais indiqué dans Event une class a OnButtonClic mon fichier wx généré contenais a la fin:

    # Virtual event handlers, override them in your derived class
    def clicsurlebouton( self, event ):
        event.Skip()

J’ai copié/collé dans mon fichier qui sert a ouvrir la fenêtre et j’ai mis un print() a la place du event.Skip().
Voici la totalité de mon code “a la main”

# -*- coding: utf-8 -*-
import wx
import wx.xrc

import genwx


app = wx.App()
genwx.Fenetre(None).Show()


def clicsurlebouton( self, event ):
    print("Clic sur bouton")
    return

print("avant MainLoop")

app.MainLoop()

print("apres MainLoop")

Quand je lance ce script la console affiche bien

avant MainLoop

mais plus rien ensuite et le bouton n’affiche rien…
Avez-vous une idée?
Je débute en wxpython mais j’aipas mal essayé des petits trucs avec l’IDLE et python en général.
J’ajoute que plus tard j’aimerais utiliser des scripts créés avant en remplaçant certaines variable par ce que l’utilisateur définis dans l’interface graphique puis en affichant le résultat dans la fenêtre et/ou dans print (ou en faisant l’action de lire ou d’écrire dans un fichier/variables par exemple)…
Bonne soirée.

12 messages - 2 participant(e)s

Lire le sujet en entier

Lire la suite…

SVP arrêtez d'utiliser Python pour vos logiciels en GUI.

by totof2000 from Linuxfr.org

Je n'irai pas jusque dire "arrêtez d'utiliser python" tout court mais je le pense fortement.

Je veux tester un outil appelé glogic.

Je l'installe via apt puis je tente de l'exécuter :

/usr/lib/python3/dist-packages/glogic/MainFrame.py:4: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '4.0') before import to ensure that the right version gets loaded.
from gi.repository import Gtk, Gdk, GdkPixbuf
Traceback (most recent call last):
File "/usr/bin/glogic", line 20, in
from glogic.MainFrame import MainFrame
File "/usr/lib/python3/dist-packages/glogic/MainFrame.py", line 18, in
themed_icons = Gtk.IconTheme.get_default()
AttributeError: type object 'IconTheme' has no attribute 'get_default'
totof@superbipbip:~$ glogic

Ca donne vraiment pas envie …

Alors oui on me dira certainement que c'est pas un problème python mais un problème GTK, qu'avec un autre langage ce serait la même chose mais je suis quasi certain que dans ce cas de figure le problème vient surtout de la façon dont Python gère ses dépendances.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Dernières nouvelles et fonctionnalités de Canaille

by Brunélie Lauret <brunelie@yaal.coop> from Yaal

Nos dernières nouvelles

L'année 2024 s'est terminée avec de nombreux nouveaux développements sur Canaille, financés par NLNet ! Vous pouvez en lire plus à ce sujet sur l'article de blog dédié à ces développements. Nous avons poursuivi ces développements, toujours grâce au même financement. Lisez la suite pour en savoir plus !

Audit de sécurité et correctifs

Un audit de sécurité a été conduit par Radically Open Security courant février, avec pour objectif la découverte de potentielles failles dans notre produit, et l'implémentation de correctifs avant la fin mars.

Amélioration de la sécurité de la réinitialisation du mot de passe

L'ajout de la variable de configuration de flask TRUSTED_HOSTS (documentation ici) évite à nos liens magiques d'inscription et de réinitialisation de mot de passe d'être falsifiés par des hôtes malveillants.

Nous avons également amélioré la façon dont ces liens sont générés pour les rendre plus sécurisés et leur implémenter une durée de validité définie.

Vulnérabilité de récupération de logo

Nous avons corrigé une vulnérabilité qui aurait pu théoriquement permettre la falsification de requêtes serveur (SSRF) au moment de récupérer le logo de l'application.

Meilleure validation d'URL

La validation de l'adresse de site internet d'utilisateur a été améliorée, elle est mainteant plus restrictive.

Implémentation de la Content Security Policy

Content Security Policy (CSP) a été implémentée dans Canaille via Flask-Talisman. CSP rend notre application plus robuste, notamment face aux attaques "cross-site scripting" (XSS).

Certification OIDC

Le processus de certification OpenID a été beaucoup plus complexe que prévu pour notre équipe. Nous avons fait de nombreux progrès et implémenté de nombreuses fonctionnalités liées à OpenID, dans le but d'obtenir la certification et d'en faire passer les tests automatisés. Dans ce cadre, nous avons contribué et soulevé des issues chez Authlib, pour un meilleur support de la spécification OpenID en amont.

Nous avons notamment :

  • Implémenté la spécification sur la validation d'URIs de redirection
  • Mis à jour nos modèles pour implémenter les attribus requis par OIDC.
  • Affiché les liens vers les conditions d'utilisation et les politiques de confidentialité lorsque le client demandant l'autorisation nous les fournit.
  • Affiché la plupart des erreurs de requête en format JSON.
  • Implémenté les réponses au format JSON Web Token lorsque le client le requiert.
  • Amélioré la gestion des JWT et des JWKS de Canaille.

Paquets : Image Docker

Canaille peut être testé plus facilement grâce à la création d'une image docker, hébergée sur un répertoire public. Les utilisateurs peuvent découvrir Canaille avec un profil administrateur.

La création de cette image docker a été rendue possible par la construction d'un paquet nix.

Audit d'accessibilité et améliorations

Canaille a bénéficié d'un audit d'accessibilité conduit par HAN accessibility lab. Les résultats ont souligné plusieurs problèmes de contrastes ainsi qu'un manque de différenciation entre les liens et le texte non interactif, et quelques soucis de navigation au clavier.

Améliorations d'accessibilité

  • La plupart des soucis de contraste ont été corrigés.
  • La plupart des soucis de différentiation des liens et des éléments interactifs ont été corrigés.
  • Un lien d'évitement a été ajouté en haut de chaque page.

Approvisionnement SCIM

Canaille fournissait déjà une implémentation de serveur SCIM depuis notre dernière mise à jour de sécurité. Maintenant, l'application dispose également des fonctionnalités de client SCIM, permettant à une instance Canaille de propager automatiquement les changements d'utilisateurs et de groupes aux applications client. Cette fonctionnalité devrait rendre plus simple le maintien de la synchronisation entre toutes les applications sans plus d'intervention utilisateur.


Merci de nous avoir lu ! Nous vous tiendrons au courant de nos prochaines avancées, et vous pouvez dès maintenant lire nos autres contributions au logiciel libre dans nos articles de contributions saisonnières.

Lire la suite…

New features and latest news on Canaille

by Brunélie Lauret <brunelie@yaal.coop> from Yaal

Our latest news

2024 ended with a lot of new developments on Canaille, funded by NLNet. You can read it all on our dedicated blog post. We went through another round of developments, still under the same fund. You can read it all on this page!

Security audit and improvements

Canaille started 2025 with a security audit, conducted by Radically Open Security. Our main objectives were to know the weaknesses of our product and implement fixes before the end of march.

Better password reset security

The implementation of the flask TRUSTED_HOSTS (see documentation here) configuration variable prevents our "magic links" at user registration and password reset to be falsified and hijacked by a malicious host.

We also improved the way these links are generated to make them more secure and introduce a time limit in their validity.

Logo retrieval vulnerability

We removed a vulnerability that could theoretically permit a server-side request forgery (SSRF) when retrieving the logo of the application.

Better user URL validation

We improved the validation of the user website's URL to make it more restrictive.

Implementation of Content Security Policy

Content Security Policy (CSP) has been implemented on Canaille via Flask-Talisman. CSP makes it harder to disrupt our application, for example with cross-site scripting (XSS) attacks.

OIDC Certification

The OpenID Certification process was expected to be much less trouble than it was. We made a lot of progress on making the certification tests pass but still have a lot to do in order to be certified. We implemented features and fixes as well as raised issues and contributed to Authlib to get better support of the OpenID Specification.

Part of the progress done was:

  • Match OIDC specification on redirect URIs validation.
  • Update our models to implement attributes required by OIDC.
  • Displaying Terms of Service and Privacy policy links if the client requesting authorization issues them.
  • Displaying most request errors as JSON error pages.
  • Responding with JSON web tokens when requested by the client.
  • Improvement on Canaille's handling of JWTs and JWKS.

Packaging: Docker image

Canaille can be tested more easily thanks to a docker image hosted on a public hub docker repository. Users can discover Canaille via an administrator profile.

The creation of this docker image was made possible by building a nix package.

Accessibility audit and improvements

Canaille benefited from an Accessibility audit as well, conducted by HAN accessibility lab. The results provided underlined several contrast issues and lack of differentiation of links from regular text, and a few keyboard navigation issues.

Accessibility improvements

  • Most color contrast issues have been fixed.
  • Most link differentiation and visual changes on focus and hover have been fixed.
  • A skip link has been added at the top of every page.

SCIM Provisioning

Canaille already provided a SCIM server implementation since our last security update. It now also supports SCIM client features, allowing a Canaille instance to automatically broadcast changes on users and groups to client applications. This should make it easier for all applications to remain synchronized without needing additional user intervention.


Thanks for reading, we will keep you updated on our next progress, and you can still read about our other free software contributions on our *seasonal contributions* blog posts.

Lire la suite…

Typage python avec des tableaux numpy ou autre

by François from Linuxfr.org

Bonjour,

Je code une librairie python en utilisant les annotations de type. Elle manipule des tableaux numériques de type Numpy, PyTorch, …

Donc j'ai des fonctions qui peuvent prendre n'importe qu'elle type de tableau et je comprends pas comment faire les annotations. Pour le moment, je fais ça

Array = TypeVar("Array")

def is_array(x) -> TypeGuard[Array]:
    """A TypeGuard for array-like objects."""
    return array_api_compat.is_array_api_obj(x)

def func(inarray: Array) -> Array:
   ...

mais pyright me dit

warning: TypeVar "Array" appears only once in generic function signature. Use "object" instead (reportInvalidTypeVarUse)

Par ailleurs, j'utilise is_array dans mes fonctions

if not is_array(inarray):
    raise ValueError(
        "`inarray` must be a compatible with Array API Standard (eg. numpy, pytorch, ...)"
    )

des_choses_avec_inarray

mais mypy me dit que inarray est de type Never (mais pas pyright)…

Bref, je suis un peu perdu, il semble que l'on rentre dans des subtilités hors de ma portée. Si vous pouvez m'aidez merci !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Comment OpenDocument enregistre-t-il les cellules des tableurs (`odfpy`)

by yoan from AFPy discuss

Salut,

Je tente de modifier des tableurs ODS existants pour remplir des cellules avec odfpy (paquet pas mis à jour récemment, mais ça a l’air d’être le plus stable et sérieux de PyPI néanmoins ?).

Mon postulat initial était que pour accéder à une cellule, il suffisait de parcourir les éléments du XML dans l’ordre : C5 serait donc la ligne à l’indice 4 (5) puis la colonne 2 (C).

Cette théorie marche bien tant qu’il n’y a pas de cellule fusionnée dans le document. Le cas contraire, ça se complique et je ne comprends plus grand chose.

J’ai fait un test.ods et un notebook ici pour illustrer mon incompréhension. Cela montre que, après des cellules fusionnées (en ligne ou en colonne), les autres cellules subissent un offset, que je ne sais pas expliquer.

Quelqu’un a-t-il déjà manipulé des ODS ainsi ?

7 messages - 3 participant(e)s

Lire le sujet en entier

Lire la suite…

homebrew et .venv

by busterComanche from Linuxfr.org

Bonjour,
lien présentation : https://linuxfr.org/forums/programmation-python/posts/je-me-presente

Alors voilà, je suis sur un tuto YouTube d'assistant virtuel, et bien que j'ai énormément creusé, je souffre. C'est pourquoi je me suis inscrit.

OK pour l'install de packages en cascade…

Mais ma première question concerne le fait que après l'install d'un package réussie, il n'est pas forcément reconnu dans mon code (genre sur l'import, ou plutôt sur l'appel de certaines méthodes), bien qu'il soit présent dans le terminal.

En gros, j'ai bien compris ce que je ne comprenais pas.
2 sujets :
- les installs homebrew
- l'environnement virtuel

J'en dis pas plus pour ne pas surcharger.

Merci d'avance.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Contributions à des logiciels libres par l'équipe Yaal Coop durant l'hiver 2025

by Éloi Rivard <eloi@yaal.coop> from Yaal

Mécénat

MarkdownMail

Bibliothèque d'envoi d'e-mails dont le contenu HTML est généré automatiquement

Ergo-L

Disposition de clavier optimisée pour le français, l’anglais et la programmation

sphinxcontrib-screenshot

Génération dynamique de captures d'écran pour les documentations Sphinx

python-libfaketime

Une alternative rapide à freezegun pour mocker les dates, en utilisant libfaketime

Authlib

Bibliothèque Python de gestion des identités et des accès

Nous avons publié 2 nouvelles versions durant cette saison.

mutmut

Système de tests par mutations

scim2-cli

Outil en ligne de commandes pour interagir avec des applications SCIM

Nous avons publié 1 nouvelle version durant cette saison.

scim2-models

Sérialisation et validation de ressources SCIM avec Pydantic

Nous avons publié 1 nouvelle version durant cette saison.

Canaille

Serveur d’identité et d'autorisations ultra-léger

Nous avons publié 8 nouvelles versions durant cette saison.

PSPSDK

Ensemble d'outils et de bibliothèques pour la console PSP de Sony

Lire la suite…