Yomgui

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 30 avril 2010

PyMUI v0.4

Je refais vivre un peu ce blog en vous annoncant que je travail sur la v0.4 de PyMUI, mon module Python pour concevoir des interfaces graphique avec MUI.

Cette version est une ré-écriture complète du code C du module, avec une nouvelle façon de gérer l'interaction Python - BOOPSI. Elle laisse plus de responsabilités à l'utilisateur: un objet PyMUI est maintenant lié faiblement avec un objet BOOPSI, une classe doit-être écrite de façon à faire perdre cette lisaison par l'appel à une méthode had-hoc ou bien automatiquement dès l'appel à la méthode AddChild().

Actuellement tout à l'air de fonctionner comme dans la v0.3, sauf les MCC car j'ai un problème de design avec BOOPSI, mais je pense le solutionner aujourd'hui.


Notes: Même si c'est une ré-écriture, globalement l'utilisation (l'API et le design) est toujours la même à quelques exceptions près.

jeudi 9 avril 2009

Pour changer un peu

6 mois que je travail sur Helios...

J'en ai un peu marre de voir sa tronche ;-).

Je suis repassé sur Python, pour faire le port de la version 2.5.4.
C'est pas la dernière mais c'est celle supporté officiellement par les dernières versions de Blender, donc...

Sinon j'en profite aussi pour refaire le port:

  • Nettoyage du code, nouveau Makefile plus simple.
  • Virer les hacks stupides de la libc pour faire un truc propre pour le support des threads.
  • Nouveaux concepts pour l'utilisation de python.library dans les programmes.
  • Nouveaux concepts pour coder des modules dynamiques.

Évidement cela va impliquer que la prochaine version devient totalement incompatible avec l'ancienne, donc que tous les codes basés dessus devront être recompilés.

vendredi 8 juin 2007

MUI goes Python

Yesterday, I've finished my lower layer for one of my project on MorphOS: creating a Python module to wrap MUI. Many of GUI Toolkits on others platforms supported by Python have already wrapped into module, so why not MUI?

In its first shape, this wrapper will be split into 2 layers:

  1. The lower layer: it's a C module, that interface the Python side with MUI objects and the BOOPSI api. It's raw, simple and permit to handle any kind of MUI objects (builtins or not, created by this wrapper or not).
  2. The upper layer: it's a pure Python module using the lower C module. This layer declares MUI MCC as classes. This permits to fix and get control on attributes/methods allowed by MCC. It's a Pythonization of MUI.

Creating a MUI object can be done by using the OOO paradigm of Python or the simple function based paradigm:

Functional example:

from mui import *

# Creating a new main window with a simple text gadget
win = Window(RootObject=Text(Content='Hellow world!'))

# Now creating the application
app = Application(
 Version     = "$VER: PyMUITest 0.1 (06.06.07)",
 Copyright   = "(C)2007, Yomgui",
 Author      = "Yomgui",
 Description = "PyMUI test",
 Base        = "PYMUITEST")
# ... and link your window to it
app.AddWindow(win)

win.Open = True # it's like a classical MUI attribute access

# Run !
app.mainloop()

Let me finish the upper layer now ;-)

samedi 10 mars 2007

Python - mos 7a est sorti.... mais faut pas le prendre.

Ca y est le module thread est enfin supporté... enfin presque. Certain modules ne fonctionnent plus eux en multithreading, comme les socket. C'est pas ma faute ;-) C'est la bsdsocket.library qui est per-thread. Or les threads Python se doivent partager leurs FileDescriptors.... pas bon. Pour me rassurer je ne suis pas tout seul dans ce cas, la PowerSDL posséde le même problème.

Mais une bonne nouvelle je travail sur une solution pour résoudre tout cela.

Maintenant à propos de la release 7a: j'ai voulu re-utiliser les fonctions comme open/write/printf/... de la libc fournie avec le SDK MorphOS. Le problème c'est que ce n'est pas utilisable avec mon système de module Python dynamiques. Résultat des modules comme PIL ne fonctionnent plus :-( (Thanks to Christoph Poelzl to have seen this issue)

Bon pas grave je vais remettre mon ancien système... sauf que cela va demander plus de taf pour implémenter des choses comme select().

Si vous voulez quand même tester les threads je vous propose d'aller voir sur ce post pour la release 7a (et qq modules comme pygame aussi).

Dure dure la vie de programmeur :-D

mercredi 20 décembre 2006

Python 2.4.2 release - Latest

Official Python 2.4.2 release for MorphOS

Latest Python binary archive (7a)

Some third-party modules are also available here: Third-parties

Also available for MorphUP: MU PMI link

Lire la suite...