SEPY 1.0.6.3 testing version

I just uploaded a new version on the sourceforge site (1.0.6.3).
With this version I started with some testing on various features I would like to use in the version 2 of SEPY.
In fact I left the old XML based system for internationalization in order to start using python gettext and wxPython i18n support. It also has been added a feature in the preference panel (under autocompletion tab) which allow user to define the builtin classpath used by the program It’s a testing version, for this reason pay attention with it and please report to me problems.

P.S. Actually there are is english, french and italian translation (because this is only for testing purposes), if you’re interested on how to had your language support i will write the steps for install more languages

Idea for SEPY 2.0?

I’m in the way to release a new updated version ( will be 1.0.5.3 ) with some minor fix and some other feature added.
Current deveopement of SEPY will terminate in a few weeks, this is because the code which I stared to write more than one year ago has become too much dirty and new feature i would like to add are quite impossible to integrate in the current developement status.
For this reason I’m planning to write a new version 2.0 from scratch.
I hope to begin for the xmas holidays or for the first days of the next year.
What i would like to ask to you is to send me all the feature request, all the ideas you have about your ideal editor, and send to me. Also ideas for a new logo will be really appreciated!


Please send me at sephiroth_tmm at users.sourceforge.net

MTASC : Motion-Twin ActionScript 2 Compiler

MTASC is the first ActionScript 2 Open Source free compiler.
Right now it’s a command line compiler which get .as files as input and will generate .swf files as output. This means it can be easily integrated into any editor which can run command line tools (such as sepy).
It seems MTASC is more and more quickly than the internal flash compiler:
MTASC is based on the best compiler technology available (namely the OCaml programming language) and thus provide a great speed improvement over MMC (compile around 100 classes in less than 5 seconds).
Since the source code is made more concise by using good technology, it is more easy to maintain and implement robust and proven typing algorithms. The feedback we get from Open Source community help us fixes the bug quickly.

It’s made using OCaml as programming language.
The mailing list is available at this link: http://lists.motion-twin.com/mailman/listinfo/mtasc
For examples, download and bugs refer to the linked MTASC page.

Back to home!

Finally, after 15 days in Spain, at Palma Mallorca, I’m just come back to home…
I really really love spain, spanish people (it’s lovely hearing girls speaking), and the idioma.. i would like to learn spanish better now (some words are not enough), i think i will begin some spanish course this year! and some other weekend in Spain in Sevilla or Valencia maybe 🙂

Ok, now that the holydays are finished… back to work again.. back to usual things.. SEPY is waiting for me to fix hundreds of things.
Probably first i need some days of relax.. it’s hard after 15 days of night life 😉
Damn, I cannot believe to the thousands of emails i need to read, obviously 90% is spam.

P.S. Really an holiday “de puta madre” 🙂

SE|PY MAC mailing list added

Due to the growing requests for help on compiling sepy on mac I’ve decided to create a dedicated mailing list.
By the way, I hope to make some tests on a mac by the end of this summer, i really would like to offer a product as much as possible cross-platform.. actually the big problem for me is that i haven’t a mac
These are the current mailing list for SE|PY:

sepy-macdev
Compile and develop SEPY on MAC system

sepy-developement
discussions about SE|PY develpement, features, python-flash related

sepy-cvs
If you want to be informed on cvs commits

SE|PY ActionScript editor 1.0.3.3

I’ve just uploaded a new version (1.0.3.3) of SEPY ActionScript Editor.
In this version:

  • Minor graphical changes
  • fixed: [ 994202 ] Cancel New project Error
  • fixed: [ 994203 ] Missing tooltip (minor bug)
  • Removed “;” after closing bracket “}” in the autoformat code.
  • Added option for use the auto-indent feature
  • Switched to wxPython 2.5.2.3pu-20040722
  • Changes in the Flash Help window.

Download the Windows installer
Download the source code

As always, thanks to all the people who help me with bugs reporting. It’s essential for the project development.
P.S. I’ve noticed that python group just released the first alpha of python 2.4. Once released the final release I will switch to the new version.

wxPython and Flash, first test


Today I make the first test integrating a Flash movie into a python application and using a communication between the two applications using FSCommand and the flashvars.
The result (surprendent easy) it’s a simple movie which enables text files saving in the local computer (through a prompt dialog window), but it has already opened my mind to future real cool applications 😉

This is the python code, the core part it’s the “wx.lib.flashwin” import, which enable to use Flash ActiveX in a python frame

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx, sys, os
import string, codecs
from wx.lib.flashwin import FlashWindow
from wx.lib.flashwin import EVT_FSCommand
#----------------------------------------

class TestPanel(wx.Panel):
    def __init__(self, parent, base, swf):
        wx.Panel.__init__(self, parent, -1)
        self.base = base
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.flash = FlashWindow(self, style=wx.SUNKEN_BORDER)   
        dlg = wx.MessageDialog(self, "This will work only under Windows!","Warning!",wx.OK | wx.ICON_INFORMATION)
        dlg.Center()
        dlg.ShowModal()        
        wx.BeginBusyCursor()
        try:
            self.flash.LoadMovie(0, swf)
        except:
            wx.MessageDialog(self, "could not load the swf file","Error",wx.OK | wx.ICON_ERROR).ShowModal()
            sys.exit(2)
        wx.EndBusyCursor()        
        self.flash.Stop()      
        self.flash.SetSize((self.flash.GetSize()[0],self.flash.GetSize()[1]))
        # sizer
        sizer.Add(self.flash, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        sizer.Fit(self)
        sizer.SetSizeHints(self)        
        self.SetFlashOptions()
        self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
        self.Bind(EVT_FSCommand, self.CallMethod)
        
    def SetFlashOptions(self):
        self.flash.menu = False
        self.flash._set_FlashVars("data=Server started on " + sys.platform)
        self.flash.Play()
        
    def OnDestroy(self, evt):
        if self.flash:
            self.flash.Cleanup()
            self.flash = None

    # Called from Flash FSCommand
    def CallMethod(self, evt):
        try:
            arguments = string.split(evt.args,"###")
            filename = arguments[0]
            body = arguments[1]
            if filename == "" or body == "":
                wx.MessageDialog(self, "Please check data inserted", "An Error occurred", wx.OK | wx.ICON_INFORMATION).ShowModal()
            else:
                dlg = wx.FileDialog(self, "Save as..." , os.getcwd(), filename, "*.*", wx.SAVE | wx.OVERWRITE_PROMPT )
                if dlg.ShowModal() == wx.ID_OK:
                    try:
                        f = codecs.open(os.path.normpath(dlg.GetPath()), "w", "utf-8", "ignore")
                        f.write(codecs.utf_8_decode(codecs.BOM_UTF8)[0])
                        f.write(body)
                        f.close()
                        self.flash._set_FlashVars("data=Succesfully saved text file")
                    except:
                        wx.MessageDialog(self, "%s %s %s" % sys.exc_info(), "An Error occurred", wx.OK | wx.ICON_ERROR).ShowModal()
                        self.flash._set_FlashVars("data=%s %s %s" % sys.exc_info())
        except:
            wx.MessageDialog(self, "Please check data inserted","An Error occurred",wx.OK | wx.ICON_INFORMATION).ShowModal()
            self.flash._set_FlashVars("data=%s %s %s" % sys.exc_info())
#-------------------------------------------
if __name__ == '__main__':
    class TestFrame(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, None, -1, "ActiveX -- Flash", size=(640, 480), style=wx.DEFAULT_FRAME_STYLE )
            base = os.path.normpath(os.path.abspath(os.path.dirname(sys.argv[0])))
            swf = os.path.normpath(os.path.join(base, "movie.swf"))
            self.tp = TestPanel(self, base, swf)
    app = wx.PySimpleApp()
    frame = TestFrame()
    frame.Center()
    frame.Show(True)    
    app.MainLoop()

the flash part is really easy. Two text field, one button and one line of code!:

on (click) {	fscommand("saveFile", this._parent.fnome.text + "###" + this._parent.ftesto.text)}

P.S. Moreover today I read in wxPython mailing list a coming new version of wxPython. I hope this will begin to fix varoius problems with Mac installation of SE|PY