durusmail: durus-users: Re: [Schevo-devel] IronPython anyone?
Re: [Schevo-devel] IronPython anyone?
Re: [Schevo-devel] IronPython anyone?
Re: [Schevo-devel] IronPython anyone?
Patrick K. O'Brien
2006-11-21
Patrick K. O'Brien wrote:
> Patrick K. O'Brien wrote:
>> I'm still working out the kinks, but the following might interest some
>> of you:
>>
> 
>> Can you say Schevo.NET?  :-)
>
> If anyone wants to help with our IronPython efforts, please create an
> account on CodePlex and vote for the following support tickets so that
> MS fixes things in IronPython that we need for Schevo (and Durus):
>
> Class with slots and getattr not compatible
> http://www.codeplex.com/WorkItem/View.aspx?ProjectName=IronPython&WorkItemId=5
801
>
> Unpickler.persistent_load needs to be supported
> http://www.codeplex.com/WorkItem/View.aspx?ProjectName=IronPython&WorkItemId=5
799
>
> Import in exec doesn't publish into provided dictionary
> http://www.codeplex.com/WorkItem/View.aspx?ProjectName=IronPython&WorkItemId=5
755
>
> Since this also effects Durus, I'm sending this to their list as well.
>
> Thanks!

For the Durus folks -- I've gotten Schevo to work on IronPython but it
required some hacks that would be nice to eliminate.  Here is an example
of what can be done with Schevo in IronPython now:

C:\IronPython>schevo db create --app=schevo.example.todo -p todo.db
Schevo 3.0b3dev-r2694 :: Database Activities :: Create Database

Creating new database...
Evolving database...
Database is already at latest version.
Importing icons...
Populating with sample data...
Packing the database...
Database version is now at 1.
Database created.

C:\IronPython>ipy.exe -X:TabCompletion -X:ColorfulConsole
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import schevo.database
Using Python base classes for persistence.
>>> db = schevo.database.open('todo.db')
>>> for gender in db.Gender:
....     print gender.name
....
Female
Male
Unknown
>>> person = db.execute(db.Person.t.create(name='John Doe',
gender=db.Gender.findone(code='M')))
>>> person.name
'John Doe'
>>> person.gender

>>> person.gender.name
'Male'
>>> db.execute(person.t.update(name='Joe Q. Public'))

>>> person.name
'Joe Q. Public'
>>> male = db.Gender.findone(name='Male')
>>> db.execute(male.t.delete())
Traceback (most recent call last):
  File , line 0, in ##1133
  File database, line unknown, in execute
  File c:\code\1_schevo\branches\bugfixes\schevo\schevo\database.py,
line 235, in execute
schevo.error.DeleteRestricted:  cannot be
deleted; it is referred to by .gender
>>>

Any Durus folks interested in IronPython and .NET?

--
Patrick K. O'Brien
Orbtech       http://www.orbtech.com
Schevo        http://www.schevo.org
Louie         http://www.pylouie.org
reply