OVH Cloud OVH Cloud

Cherche rubyman pythonesque sous win

7 réponses
Avatar
Michel Claveau
Bonjour !

Je cherche quelqu'un qui :
- travaille sous windows (2000 ou XP)
- ait l'activescripting autorisé (c'est l'option par défaut)
- ait Python 2.4 ou 2.3 installé
- ait installé PyWin (au moins win32com.client)
- ait installé RubyScript (version activescript de Ruby), ou
l'installe
- connaisse (un peu) Python et Ruby

Ce n'est pas pour un calendrier (il n'y a pas de 'G' dans ruby), mais
pour tester un (tout) petit script (moins de 3 ko).

Si cette personne existe, pourrait-elle se manifester ? (dans ce NG)

Merci d'avance

Michel Claveau

7 réponses

Avatar
jean-michel
Michel Claveau wrote:
Bonjour !

Je cherche quelqu'un qui :
- travaille sous windows (2000 ou XP)
- ait l'activescripting autorisé (c'est l'option par défaut)
- ait Python 2.4 ou 2.3 installé
- ait installé PyWin (au moins win32com.client)
- ait installé RubyScript (version activescript de Ruby), ou l'installe
- connaisse (un peu) Python et Ruby

Ce n'est pas pour un calendrier (il n'y a pas de 'G' dans ruby), mais
pour tester un (tout) petit script (moins de 3 ko).

Si cette personne existe, pourrait-elle se manifester ? (dans ce NG)

Merci d'avance

Michel Claveau


Il me manque les deux derniers points. Si tu ne trouves personne, je

veux bien faire un effort (pour Ruby, définitivement pas pour le
canlendrier). Dis-moi ce qu'il faut installer.

Avatar
Do Re Mi chel La Si Do
Bonsoir !

J'ai mis le script à tester, en fin de ce message.
RubyScript, je l'ai trouvé là : http://arton.hp.infoseek.co.jp/index.html

Que fais le script ? Pas grand chose, finalement. Il permet de définir des
fonctions en Ruby, et de pouvoir les appeler comme si c'était des fonctions
Python.

Mais, comme je connais peu Ruby, j'attend de savoir si ça marche
correctement.
Pour info, j'arrive à mélanger, dans Python, les langages suivants :
- RubyScript
- VBscript
- Jscript
- PerlScript
- PHPscript

J'ai vu deux autres possibilités :
- LuaScript (mais les liens sont rompus, et je ne peux pas le
télécharger)
- HaskellScript (pas eu le temps d'essayer)
- NullScript (quel intérêt, puisque j'arrive à faire fonctionner
d'autres langages)

@-salutations

Michel Claveau





# -*- coding: cp1252 -*-

# tentative déliro-rubio-pythonesque, par Michel Claveau Informatique

def add_method_to_objects_class(object, name=None):

def prep(nomf):
st="""def """+nomf+"""(self, *par):
sret=self.run('"""+nomf+"""',*par)
return sret
method="""+nomf+"""
"""
return st

if name is None:
name = method.func_name

#print"zzzzzzzzzzzz",name
sss=prep(name)
#print "sss",sss
exec(sss,globals(),globals())
#print "method",method
class newclass(object.__class__):
pass
setattr(newclass, name, method)
object.__class__ = newclass


class wscr(object):
import win32com.client
oscr=win32com.client.Dispatch('ScriptControl')
dfunc={}

def __init__(self, lang='vbscript'):
self.oscr.Language=lang
self.toto="ZZZZZZZZZZZZZ"

def add(self, src=None):
if src==None:
self.oscr.AddCode(GlobalPARAM[0])
else:
self.oscr.AddCode(src)

def addfunc(self, src, name):
self.add(src)
self.dfunc[name]=src
add_method_to_objects_class(self, name)

def eval(self, src=None):
return self.oscr.Eval(u1252(src))

def run(self, src=None, *par):
return self.oscr.Run(src,*par)



#________utilisation__________

rb=wscr('RubyScript')


source='''def rrr(a)
return a*2
end
'''
rb.addfunc(source,'rrr')



source='''def sss(a,b,c)
d=a+b+c
return d
end
'''
rb.addfunc(source,'sss')



source='''def tbl(t)
fin=t.size-1
tot=0
for i in 0..fin
tot=tot+t[i]
end
return tot
end
'''
rb.addfunc(source,'tbl')



source='''def t2(t)
fin=t.size-1
tot=0
for i in 0..fin
t[i]=t[i]*2
end
return t
end
'''
rb.addfunc(source,'t2')



source='''def t3(t)
tot=0
t.each do |i| tot+=i end
return tot
end
'''
rb.addfunc(source,'t3')



source='''class Truc
def soustruc()
return 1234567890
end
end

def prop()
puts "zzzzzzzzz"
end

'''
rb.addfunc(source,'prop')



source='''
def ltruc()
tmp=Truc.new
return tmp.soustruc()
end
'''
rb.addfunc(source,'ltruc')




print rb.rrr(1122)
print rb.sss(1,2,3)
print rb.sss(10,20,30)

ttmp=[1,2,3,4]
print rb.tbl(ttmp)

tt=[11,22,33,34]
print rb.t2(tt)

tt=[11,22,33,34]
print rb.t3(tt)

rb.prop()
print rb.ltruc()
Avatar
Michel Claveau
Bonsoir !

J'ai mis le script à tester, en fin de ce message.
RubyScript,
je l'ai trouvé là : http://arton.hp.infoseek.co.jp/index.html

Que fais le script ? Pas grand chose, finalement. Il permet de définir
des
fonctions en Ruby, et de pouvoir les appeler comme si c'était des
fonctions
Python.

Mais, comme je connais peu Ruby, j'attend de savoir si ça marche
correctement.
Pour info, j'arrive à mélanger, dans Python, les langages suivants :
- RubyScript
- VBscript
- Jscript
- PerlScript
- PHPscript

J'ai vu deux autres possibilités :
- LuaScript (mais les liens sont rompus, et je ne peux pas le
télécharger)
- HaskellScript (pas eu le temps d'essayer)
- NullScript (quel intérêt, puisque j'arrive à faire fonctionner
d'autres langages)

@-salutations

Michel Claveau





# -*- coding: cp1252 -*-

# tentative déliro-rubio-pythonesque, par Michel Claveau Informatique

def add_method_to_objects_class(object, name=None):

def prep(nomf):
st="""def """+nomf+"""(self, *par):
sret=self.run('"""+nomf+"""',*par)
return sret
method="""+nomf+"""
"""
return st

if name is None:
name = method.func_name

#print"zzzzzzzzzzzz",name
sss=prep(name)
#print "sss",sss
exec(sss,globals(),globals())
#print "method",method
class newclass(object.__class__):
pass
setattr(newclass, name, method)
object.__class__ = newclass


class wscr(object):
import win32com.client
oscr=win32com.client.Dispatch('ScriptControl')
dfunc={}

def __init__(self, lang='vbscript'):
self.oscr.Language=lang
self.toto="ZZZZZZZZZZZZZ"

def add(self, src=None):
if src==None:
self.oscr.AddCode(GlobalPARAM[0])
else:
self.oscr.AddCode(src)

def addfunc(self, src, name):
self.add(src)
self.dfunc[name]=src
add_method_to_objects_class(self, name)

def eval(self, src=None):
return self.oscr.Eval(u1252(src))

def run(self, src=None, *par):
return self.oscr.Run(src,*par)



#________utilisation__________

rb=wscr('RubyScript')


source='''def rrr(a)
return a*2
end
'''
rb.addfunc(source,'rrr')



source='''def sss(a,b,c)
d=a+b+c
return d
end
'''
rb.addfunc(source,'sss')



source='''def tbl(t)
fin=t.size-1
tot=0
for i in 0..fin
tot=tot+t[i]
end
return tot
end
'''
rb.addfunc(source,'tbl')



source='''def t2(t)
fin=t.size-1
tot=0
for i in 0..fin
t[i]=t[i]*2
end
return t
end
'''
rb.addfunc(source,'t2')



source='''def t3(t)
tot=0
t.each do |i| tot+=i end
return tot
end
'''
rb.addfunc(source,'t3')



source='''class Truc
def soustruc()
return 1234567890
end
end

def prop()
puts "zzzzzzzzz"
end

'''
rb.addfunc(source,'prop')



source='''
def ltruc()
tmp=Truc.new
return tmp.soustruc()
end
'''
rb.addfunc(source,'ltruc')




print rb.rrr(1122)
print rb.sss(1,2,3)
print rb.sss(10,20,30)

ttmp=[1,2,3,4]
print rb.tbl(ttmp)

tt=[11,22,33,34]
print rb.t2(tt)

tt=[11,22,33,34]
print rb.t3(tt)

rb.prop()
print rb.ltruc()


--
@-salutations

Michel Claveau
Avatar
Michel Claveau
Bonsoir !

Comme mon message est rejeté (encore les problèmes techniques de usenet
?), malgré 3 essais, je vais (tenter de) l'envoyer en deux parties :
- le message
- le script


--------------------------------------------------


Bonsoir !

J'ai mis le script à tester, en fin de ce message.
RubyScript,
je l'ai trouvé là : http://arton.hp.infoseek.co.jp/index.html

Que fais le script ? Pas grand chose, finalement. Il permet de définir
des
fonctions en Ruby, et de pouvoir les appeler comme si c'était des
fonctions
Python.

Mais, comme je connais peu Ruby, j'attend de savoir si ça marche
correctement.
Pour info, j'arrive à mélanger, dans Python, les langages suivants :
- RubyScript
- VBscript
- Jscript
- PerlScript
- PHPscript

J'ai vu deux autres possibilités :
- LuaScript (mais les liens sont rompus, et je ne peux pas le
télécharger)
- HaskellScript (pas eu le temps d'essayer)
- NullScript (quel intérêt, puisque j'arrive à faire fonctionner
d'autres langages)

@-salutations

Michel Claveau


--
@-salutations

Michel Claveau
Avatar
Michel Claveau
# tentative déliro-rubio-pythonesque, par Michel Claveau Informatique

def add_method_to_objects_class(object, name=None):

def prep(nomf):
st="""def """+nomf+"""(self, *par):
sret=self.run('"""+nomf+"""',*par)
return sret
method="""+nomf+"""
"""
return st

if name is None:
name = method.func_name

#print"zzzzzzzzzzzz",name
sss=prep(name)
#print "sss",sss
exec(sss,globals(),globals())
#print "method",method
class newclass(object.__class__):
pass
setattr(newclass, name, method)
object.__class__ = newclass


class wscr(object):
import win32com.client
oscr=win32com.client.Dispatch('ScriptControl')
dfunc={}

def __init__(self, lang='vbscript'):
self.oscr.Language=lang
self.toto="ZZZZZZZZZZZZZ"

def add(self, src=None):
if src==None:
self.oscr.AddCode(GlobalPARAM[0])
else:
self.oscr.AddCode(src)

def addfunc(self, src, name):
self.add(src)
self.dfunc[name]=src
add_method_to_objects_class(self, name)

def eval(self, src=None):
return self.oscr.Eval(u1252(src))

def run(self, src=None, *par):
return self.oscr.Run(src,*par)


#________utilisation__________

rb=wscr('RubyScript')


source='''def rrr(a)
return a*2
end
'''
rb.addfunc(source,'rrr')


source='''def sss(a,b,c)
d=a+b+c
return d
end
'''
rb.addfunc(source,'sss')


source='''def tbl(t)
fin=t.size-1
tot=0
for i in 0..fin
tot=tot+t[i]
end
return tot
end
'''
rb.addfunc(source,'tbl')


source='''def t2(t)
fin=t.size-1
tot=0
for i in 0..fin
t[i]=t[i]*2
end
return t
end
'''
rb.addfunc(source,'t2')


source='''def t3(t)
tot=0
t.each do |i| tot+=i end
return tot
end
'''
rb.addfunc(source,'t3')


source='''class Truc
def soustruc()
return 1234567890
end
end

def prop()
puts "zzzzzzzzz"
end

'''
rb.addfunc(source,'prop')


source='''
def ltruc()
tmp=Truc.new
return tmp.soustruc()
end
'''
rb.addfunc(source,'ltruc')



print rb.rrr(1122)
print rb.sss(1,2,3)
print rb.sss(10,20,30)

ttmp=[1,2,3,4]
print rb.tbl(ttmp)

tt=[11,22,33,34]
print rb.t2(tt)

tt=[11,22,33,34]
print rb.t3(tt)

rb.prop()
print rb.ltruc()
Avatar
jean-michel
Michel Claveau wrote:
# tentative déliro-rubio-pythonesque, par Michel Claveau Informatique


Etant sous XP.
De pythonwin, voilà ce que ça m'affiche :
PythonWin 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)]
on win32.
Portions Copyright 1994-2004 Mark Hammond () -
see 'Help/About PythonWin' for further copyright information.
2244
6



60
10
(22, 44, 66, 68)
100
1234567890.0

En mode pas à pas, ya plein de rouge qui s'affiche vers le début, mais
ça marche qd même.
Sous Boa, ça donne :
2244
6
60
10
(22, 44, 66, 68)
100
1234567890.0
zzzzzzzzz

Pourquoi les z en plus ? Serait-ils plutôt manquants sous pythonwin ?
On a aussi un warning à cause des caractères accentués (normal).
Dans une boîte dos, on obtient :
Z:u1jmdevpython>python pythonRuby.py
sys:1: DeprecationWarning: Non-ASCII character 'xe9' in file
pythonRuby.py on l
ine 1, but no encoding declared; see
http://www.python.org/peps/pep-0263.html fo
r details
2244
6
60
10
(22, 44, 66, 68)
100
zzzzzzzzz
1234567890.0

On note que l'affichage n'est pas synchronisé pareil, mais j'ai déjà
constaté ça dans d'autres contextes.
Téléchargement, installation, test, désinstallation, rédaction du
message, sur mon PC (qui est une brouette) = 10 minutes maxi sans avoir
à rebooter.
Voilà.
A+
jm



Avatar
Do Re Mi chel La Si Do
Bonsoir !

Donc, ça marche. Merci pour le retour d'info du test.

Qq explications :

- Le code est "brut de décoffrage", avec des commentaires et des lignes à
enlever, des fonctions inutilisées, d'autres manquantes (exemple : pour
'eval', non implémenté dans les exemples), etc.

- Les zzzzzzzzzz c'était juste un repère que j'ai oublié d'enlever. Il
devrait sortir à chaque fois...

- pour les accents, la première ligne a sauté, dans mon message :
# -*- coding: cp1252 -*-

- ce qui est intéressant, c'est la possibilité de coder des fonction en
Ruby, et de les appeler comme si c'était des fonctions en Python ; avec
échange des variables, et des listes (par valeur).

@+

Michel Claveau