473,594 Members | 2,663 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

pure Python DB

Hello,
for a cross-platform project, I am looking for a Python DB. It should be
lightweight, but provide transactions an of course reliable.
Is there such a thing out there?
I have read about Gadfly, is this still maintained?
Thanks,
-Patrick
Jul 18 '05 #1
8 2051
Patrick Useldinger wrote:
Hello,
for a cross-platform project, I am looking for a Python DB. It should be
lightweight, but provide transactions an of course reliable.
Is there such a thing out there?
I have read about Gadfly, is this still maintained?
Thanks,
-Patrick


Gadfly is lightweight but doesn't support transactions. It is in low
maintenance mode, development is currently not active but the project is
hosted at SourceForge (http://sourceforge.net/projects/gadfly) and any
bug reports and (especially) patches would be more than welcome.

Regards,
Andy
--
--------------------------------------------------------------------------------
From the desk of Andrew J Todd esq - http://www.halfcooked.com/

Jul 18 '05 #2
Patrick-

You might try out the Pointrel Data Repository System I wrote -- it's
all in Python.
http://sourceforge.net/projects/pointrel/

You need to learn to frame the data storage problem in its terms (triads
or somewhat Entity-Relation-al, similar in some ways to RDF). It does
provide single-user transactions using a lock file, but this lock file
approach has not been tested on lots of platforms. Compared to other
systems, you might find it less efficient in disk use (it now supports
64 bit offsets) and more difficult to delete thigns (the short answer
is, you can't delete anything -- without writing application level
support on top of it). On the plus side, you only need to add one
Python file to your project.

However, it does not yet have the level of testing yet one might want
for something mission critical. Naturally, how well suported it is is a
matter of chicken and egg -- if it is not well supported people won't
try it or improve it (until it magically makes it over some level of
general interest). For an example of its current bleeding edge state, I
just discovered what I think may be a potential bug where abandoned
transactions could create problems if you are using caching (the cache
could hold onto no longer valid handles for added new strings) -- I've
patched that for the next release (and you can always just turn off
caching), but that's the sort of bleeding edge thing you might encounter
if you try it. You can see the recent announcement of the latest version
in comp.lang.pytho n.announce.
http://groups.google.com/groups?hl=e...a0ca969&rnum=3
Or this recent post:
http://groups.google.com/groups?hl=e...ups.com&rnum=5

I can say that I'd be interested in making the Pointrel Data Repository
a stable and well supported popular platform, although I won't commit to
any specific time frame or level of effort for it. I think it would be
more ready to go when or if I make the transition to using it to store
all my email (gulp -- that's commitment! :-) But that hasn't happened
yet. I'm thinking of using it in a web proxy first as that's a little
more forgiving application area for me (but the issues of making a good
proxy are stalling that some).

A year or two or so back I looked at the Gadfly source with a notion of
using some of it to put a SQL front end onto Pointrel. Maybe that would
make it more apalatable for general use? But I'm not generally
interested in using SQL, so I'm not sure how far down that road I want
to go.

In any case, all the best. And the databases written in C might be worth
your exploration -- some of the appear to be quite good and fairly cross
platform in their own terms.

--Paul Fernhout

Patrick Useldinger wrote:
Hello,
for a cross-platform project, I am looking for a Python DB. It should be
lightweight, but provide transactions an of course reliable.
Is there such a thing out there?
I have read about Gadfly, is this still maintained?
Thanks,
-Patrick


-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----
Jul 18 '05 #3
Andy Todd <an****@halfcoo ked.com> wrote in message news:<ma******* *************** ************@py thon.org>...
Patrick Useldinger wrote:>
Gadfly is lightweight but doesn't support transactions. It is in low
maintenance mode, development is currently not active but the project is
hosted at SourceForge (http://sourceforge.net/projects/gadfly) and any
bug reports and (especially) patches would be more than welcome.


Um.. doesn't support transactions? It depends what you mean,
I guess. It supports transaction commit and rollback and recovery
but not transaction concurrency... (yet)

-- Aaron Watters

===
She's wondering what he'll make for breakfast...
He's wondering how long he has to cuddle before he can go home...
Jul 18 '05 #4
Aaron Watters wrote:
Andy Todd <an****@halfcoo ked.com> wrote in message news:<ma******* *************** ************@py thon.org>...
Patrick Useldinger wrote:>
Gadfly is lightweight but doesn't support transactions. It is in low
maintenance mode, development is currently not active but the project is
hosted at SourceForge (http://sourceforge.net/projects/gadfly) and any
bug reports and (especially) patches would be more than welcome.


Um.. doesn't support transactions? It depends what you mean,
I guess. It supports transaction commit and rollback and recovery
but not transaction concurrency... (yet)


Neither does SQLite. Only one transaction can be active at any time.
Another transaction will block at BEGIN.

If you need that I'd suggest you switch to a client-server database like
PostgreSQL.

-- Gerhard

Jul 18 '05 #5
Gerhard Häring <gh@ghaering.de > wrote in message news:<ma******* *************** ************@py thon.org>...
Aaron Watters wrote:
Andy Todd <an****@halfcoo ked.com> wrote in message news:<ma******* *************** ************@py thon.org>...
Patrick Useldinger wrote:>
Gadfly is lightweight but doesn't support transactions. It is in low
maintenance mode, development is currently not active but the project is
hosted at SourceForge (http://sourceforge.net/projects/gadfly) and any
bug reports and (especially) patches would be more than welcome.


Um.. doesn't support transactions? It depends what you mean,
I guess. It supports transaction commit and rollback and recovery
but not transaction concurrency... (yet)


Neither does SQLite. Only one transaction can be active at any time.
Another transaction will block at BEGIN.

If you need that I'd suggest you switch to a client-server database like
PostgreSQL.


No need to go client/server. Embedded Firebird supports concurrent
transactions with configurable isolation levels, foreign keys, views,
stored procedures, and other features one would expect from a
full-fledged RDBMS. Plus it's fast--kinterbasdb with embedded
Firebird 1.5-rc4 is about twice as fast as pysqlite 0.4.3 in various
trivial speed tests I've tried.

Embedded Firebird is not the primary focus of the Firebird core
developers, though, so releases aren't always up to date, and so far,
binaries have only been released for Windows. Here's the most recent:
http://prdownloads.sourceforge.net/f...2.zip?download

To use it from Python, see:
http://cvs.sourceforge.net/cgi-bin/v...ded_using_with

I'm not aware of any reason why embedded Firebird couldn't run on *nix
(the server variant does), but AFAIK no one has done so. Also, I
haven't used the embedded variant for anything non-trivial, so I can't
comment on its stability.
Jul 18 '05 #6
David Rushby wrote:
Gerhard Häring wrote:
If you need [concurrent transactions] I'd suggest you switch to a
client-server database like PostgreSQL.
No need to go client/server. Embedded Firebird supports concurrent
transactions with configurable isolation levels, foreign keys, views,
stored procedures, and other features one would expect from a
full-fledged RDBMS. [...]


The included README says:

"""
But you should be aware that you cannot access single
database from a number of the embedded servers
simultaneously, because they have SuperServer architecture
and hence exclusively lock attached databases.
"""

So it doesn't help in a multi-process environment, either (like in CGI
scripts). But then again, CGI sucks :-P

Embedded Firebird sounds like a good solution for small *multithreaded*
application servers, though.
Plus it's fast--kinterbasdb with embedded Firebird 1.5-rc4 is about
twice as fast as pysqlite 0.4.3 in various trivial speed tests I've
tried.


That's interesting. I wonder how much of that is because of the
relatively inefficient Python wrapper over SQLite. Time to go on with my
prototype for PySQLite 0.5 :-)

-- Gerhard

Jul 18 '05 #7
On Wed, 27 Aug 2003 08:40:34 +0200, Gerhard Häring <gh@ghaering.de > wrote:
Um.. doesn't support transactions? It depends what you mean,
I guess. It supports transaction commit and rollback and recovery
but not transaction concurrency... (yet)


In my case, only one process is supposed to acces the DB, but I need to be
able to rollback in case it goes wrong, or to commit only all went right.
Jul 18 '05 #8
On Wed, 27 Aug 2003 07:34:01 -0700, David Rushby wrote:
[...]
No need to go client/server. Embedded Firebird supports concurrent
transactions with configurable isolation levels, foreign keys, views,
stored procedures, and other features one would expect from a
full-fledged RDBMS. Plus it's fast--kinterbasdb with embedded
Firebird 1.5-rc4 is about twice as fast as pysqlite 0.4.3 in various
trivial speed tests I've tried.


I thought Firebird was a web browser?!
couldn't help myself :-)

-Mark
Jul 18 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
2676
by: Ravi | last post by:
Hi, I did some googling, and found that there doesn't seem to be a pure python MySQL communication module. There is one for perl however, Net::MySQL. I was wondering if there was a specific reason why something similar hasn't been implemented in Python, a limitation of the language or libraries perhaps? I briefly scanned through the perl source for Net::MySQL, and there doesn't seem to be anything that couldn't be done in Python, but...
11
1952
by: Brett C. | last post by:
For my thesis (once the bloody thing stops throwing bugs at me) I am going to need to collect stats on the frequency that atomic types in local variables are applied to various opcodes and methods. That means that I need something to collect stats off of. So I am trying to come up with a list of projects I can use to get my stats from. the stdlib is a no-brainer. Also plan to use Docutils. But beyond those most of the big Python...
1
2507
by: David Mertz, Ph.D. | last post by:
I decided to write a pure Python hashcash implementation. I have seen David McNab's Python implementation. Unfortunately, as near as I can tell (which is supported on the hashcash mailing list archive), McNab actually implements a different algorithm than hashcash. It might (or might not) be equivalent in security; but I cannot see any directly way to transform what he computes into an actual hashcash stamp. Barnes Connelly also...
15
2197
by: Christos TZOTZIOY Georgiou | last post by:
Has anyone built PIL (1.1.4 or 1.1.5) for Python 2.4? If yes, please let me know, since I can't test a couple of my apps using PIL with 2.4 . You can even reply by email (yes, I dare use true email in newsgroup postings, but then, I'm postmaster and welcome spam :) TIA -- TZOTZIOY, I speak England very best, "Tssss!" --Brad Pitt as Achilles in unprecedented Ancient Greek
3
5647
by: andrew.fabbro | last post by:
I'm looking for an implementation of AES (the Advanced Encryption Standard) in pure Python. I'm aware of pycrypto, but that uses C code. I'm hoping to find something that only uses Python...I'm willing to trade speed for portability, since my application is designed for several different platforms. Anyone know if this has been done? Thanks,
5
2667
by: Fuzzyman | last post by:
Python 2.4 is built with Microsoft Visiual C++ 7. This means that it uses msvcr7.dll, which *isn't* a standard part of the windows operating system. This means that if you build a windows installer using distutils - it *requires* msvcr7.dll in order to run. This is true even if your package is a pure python package. This means that when someone tries to use a windows installer created with Python 2.4, on a machine with only python 2.3 - it...
13
2148
by: Steven Bethard | last post by:
Jean-Paul Calderone <exarkun@divmod.comwrote: Interesting. Could you give a few illustrations of this? (I didn't run into the same problem at all, so I'm curious.) Steve
12
3122
by: betabrain.honshu | last post by:
Hi Folks, for those of you who are familiar with the micropledge.com project, here is a good opportunity to spend or earn something: http://micropledge.com/projects/pysalsa20 I know that the details of this project are still a bit unclear, but that is something we could discuss. By the way, the end result should look like it's a part of the python standard library (naming conventions, etc.) and of course it will be open source.
28
2429
by: n00m | last post by:
Both codes below read the same huge(~35MB) text file. In the file 1000000 lines, the length of each line < 99 chars. Stable result: Python runs ~0.65s C : ~0.70s Any thoughts?
8
1576
by: Roy Smith | last post by:
Does there exist a pure Python version of a MySQL module? I've got a data logging application that needs to run on a whole bunch of OSs, ranging from Windows to a dozen different unix flavors on all sorts of hardware. Portability is much more important than performance for this application. We're only inserting a few hundred records a day from each system, but the ability to quickly deploy to anywhere I've already got Python running is...
0
7954
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8377
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8016
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
6669
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
5836
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5415
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
2391
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1487
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1218
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.