bsddb185 v1.0 for Python 2.6 and 3.0

2007-12-09 Thread skip

Python 3.0 will dispense with the rarely used, but occasionally
indispensible, bsddb185 module.  I extracted the source code and unit tests
from the current Python trunk, wrote a setup.py, made a couple slight mods
so it would build and pass tests under both Python 2.6 and 3.0.  It's
available from the Python Package Index:

http://pypi.python.org/pypi/bsddb185

Cheers,

-- 
Skip Montanaro - [EMAIL PROTECTED] - http://www.webfast.com/~skip/
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


Elixir 0.5.0 released!

2007-12-09 Thread Gaetan de Menten
I am very pleased to announce that version 0.5.0 of Elixir
(http://elixir.ematia.de)
is now available. As always, feedback is very welcome, preferably on Elixir
mailing list.

This is mostly a bug fixes release, but we have also had some pretty
important changes to the default values for options. Please look at
http://elixir.ematia.de/trac/wiki/Migrate04to05 for detailed
upgrade notes.

The full list of changes can be seen at:
http://elixir.ematia.de/trac/browser/elixir/tags/0.5.0/CHANGES

What is Elixir?
-

Elixir is a declarative layer on top of the SQLAlchemy library. It is
a fairly thin wrapper, which provides the ability to create simple
Python classes that map directly to relational database tables (this
pattern is often referred to as the Active Record design pattern),
providing many of the benefits of traditional databases without losing
the convenience of Python objects.

Elixir is intended to replace the ActiveMapper SQLAlchemy extension,
and the TurboEntity project but does not intend to replace
SQLAlchemy's core features, and instead focuses on providing a simpler
syntax for defining model objects when you do not need the full
expressiveness of SQLAlchemy's manual mapper definitions.

Mailing list


http://groups.google.com/group/sqlelixir/about


-- 
Gaëtan de Menten
http://openhex.org
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


PSSC: Phone Screen Sequential Capture

2007-12-09 Thread Michele Andreoli
Hi group,
PSSC allow to see the Symbian S60 phone's display on a window of your Linux
PC , using bluetooth connections.

Here is the webpage and a video showing the standard scenario:

http://mulinux.sunsite.dk/python/pssc.html

Best regards,
Michele Andreoli


-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


ANN: Axon.STM 1.0.0 (beta) Minimalistic Software Transactional Memory

2007-12-09 Thread Michael Sparks
Hi,


I've packaged up the minimal STM discussed over the past couple of days as a
standalone package which I've now uploaded

Getting it
==
You can download a beta test version here:
http://thwackety.com/Axon.STM-1.0.0.tar.gz

Previewing it
=
You can look at the sourcecode online here:

https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/branches/private_MPS_Scratch/Bindings/STM/Axon/STM.py

Installing it
=
~ > tar zxf Axon.STM-1.0.0.tar.gz
~ > cd Axon.STM-1.0.0/
~ > sudo python setup.py install

What IS it?
===
Software Transactional Memory (STM) is a technique for allowing multiple
threads to share data in such a way that they know when something has gone
wrong. It's been used in databases (just called transactions there really)
for some time and is also very similar to version control. Indeed, you can
think of STM as being like variable level version control.

Note: Because this is NOT intended to be persistent, this is not an ACID
store because it doesn't support the D - durability across a crash. (after
all, we don't save the state to disk) (The other aspects atomicity,
consistency & isolation are supported though)

I've written this to allow a part of Kamaelia to share & manage a dictionary
of atomic values between threads simply, and as a result this code is also
going into mainline Kamaelia. (Specifically into Axon Kamaelia's core)

However STM is something that should hopefully be of use to others doing
concurrent *things* whether or not they're using kamaelia, hence this stand
alone release.

This stand alone release should *not* be used alongside mainline Axon yet.
(Well you can, as long as you reinstall your Axon over the top, but that's
icky :-)

Why is it useful?
=
[ please skip this (or correct me :) if you understand concurrency
  already :-) ]

Why do you need it? Well, in normal code, Global variables are generally
shunned because it can make your code a pain to work with and a pain to be
certain if it works properly. Even with linear code, you can have 2 bits of
code manipulating a structure in surprising ways - but the results are
repeatable. Not-properly-managed-shared-data is to threaded systems as
not-properly-managed-globals are to normal code. (This code is one way of
helping manage shared data)

Well, with code where you have multiple threads active, having shared data
is like an even nastier version of globals. Why? Well, when you have 2 (or
more) running in parallel, the results of breakage can become hard to
repeat as two pieces of code "race" to update values.

With STM you make it explicit what the values are you want to update, and
only once you're happy with the updates do you publish them back to the
shared storage. The neat thing is, if someone else changed things since you
last looked, you get told (your commit fails), and you have to redo the
work. This may sound like extra work (you have to be prepared to redo the
work), but it's nicer than your code breaking :-)

The way you get that message is the .commit raises a ConcurrentUpdate
exception.

Also, it's designed to work happily in code that requires non-blocking
usage - which means you may also get a "BusyRetry" exception under load. If
you do, you should as the exception suggests retry the action that you just
tried. (With or without restarting the transaction)

Apologies if that sounds too noddy :)

Docs for it
===
http://kamaelia.sourceforge.net/STM

Using It


# Initialising a Store
from Axon.STM import Store

S = Store()

# Single values
greeting = S.usevar("hello")
print repr(greeting.value)
greeting.set("Hello World")
greeting.commit()
S.dump()

# Groups of values
D = S.using("account_one", "account_two", "myaccount")
D["account_one"].set(50)
D["account_two"].set(100)
D.commit()
S.dump()

D = S.using("account_one", "account_two", "myaccount")
D["myaccount"].set(D["account_one"].value+D["account_two"].value)
D["account_one"].set(0)
D["account_two"].set(0)
D.commit()
S.dump()

License
===
Take your pick of MPL V1.1, GPL 2.0, LGPL 2.1 :-)

Feedback

Feedback is very welcome, preferably via email to the Kamaelia List
* [EMAIL PROTECTED]

Feedback especially regarding bugs and logical errors is particularly
welcome. (hopefully there aren't any - but it's always hard to spot your
own)

Thanks
==
Many thanks to Fuzzyman, Duncan Booth, John J Lee & Sylvain Hellegouarch for
feedback whilst I was prototyping this.

Best Regards,


Michael.
--
Michael Sparks, Kamaelia Project
http://kamaelia.sourceforge.net/Developers/
http://yeoldeclue.com/blog

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


CodeInvestigator version 0.6.2 released.

2007-12-09 Thread martien friedeman
CodeInvestigator version 0.6.2 was released on December 10.


This version catches generate exceptions: Runs did not show when the  
generate failed.

And a bug was fixed where variables did not underline when another  
iteration was selected.



CodeInvestigator is a tracing tool for Python programs.

Running a program trough CodeInvestigator creates a recording.  
Program flow, function calls, variable values and conditions are all  
stored for every line the program executes.

The recording is then viewed with an interface consisting of the  
code. The code can be clicked: A clicked variable displays its value,  
a clicked loop displays its iterations.

You read code, and have at your disposal all the run time details of  
that code. A computerized desk check tool and another way to learn  
about your program.

http://sourceforge.net/project/showfiles.php?group_id=183942
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


[ANN] Leipzig Python User Group - Meeting, December 11, 2007, 08:00pm

2007-12-09 Thread Mike Müller
=== Leipzig Python User Group ===

We will meet on Tuesday, December 11 at 8:00 pm at the training
center of Python Academy in Leipzig, Germany
( http://www.python-academy.com/center/find.html ).

Food and soft drinks are provided. Please send a short
confirmation mail to [EMAIL PROTECTED], so we can prepare
appropriately.

Everybody who uses Python, plans to do so or is interested in
learning more about the language is encouraged to participate.

While the meeting language will be mainly German, we will provide
English translation if needed.

Current information about the meetings are at
http://www.python-academy.com/user-group .

Mike



== Leipzig Python User Group ===

Wir treffen uns am Dienstag, 11.12.2007 um 20:00 Uhr
im Schulungszentrum der Python Academy in Leipzig
( http://www.python-academy.de/Schulungszentrum/anfahrt.html ).


Für das leibliche Wohl wird gesorgt. Eine Anmeldung unter
[EMAIL PROTECTED] wäre nett, damit wir genug Essen
besorgen können.

Willkommen ist jeder, der Interesse an Python hat, die Sprache
bereits nutzt oder nutzen möchte.

Aktuelle Informationen zu den Treffen sind unter
http://www.python-academy.de/User-Group zu finden.

Viele Grüße
Mike

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html