MetaKit is an embedded database engine, which can be used from Python
(sort of), Tcl (solid), and C++ (the native interface: rock solid).
MkWrap is a new "thin" interface from Python, which stays closer to the
core MetaKit API than the previous "Mk4py" interface. It exposes far
more of the core funtionality, including selection, sorting, projection,
join, groupby, set operations, fast sequential searching, and regexp-
based matching on any string field.
As with the first Mk4py release, this is a proof-of-concept release,
intended to explore the effectiveness of such an interface in Python.
Caveat: MetaKit doesn't support SQL, nor is it compliant with Python's
DBI - it lives in the twilight zone between flat files, OO databases,
relational systems, and tree-structured storage.
Keywords which *do* apply to MetaKit are: portable, high-performance,
low footprint, embeddable, transaction-based, dynamic schemas, multi-
language, load-on-demand, unconventional.
For details on this first alpha release of MkWrap, see:
http://www.equi4.com/metakit/mk4py/mkwrap.txt
It contains pre-built extensions for Windows and Linux, a small sample,
rudimentary documentation, and the C++ sources of the Python interface.
MkWrap was initially created by Gordon McMillan - I merely sprinkled
a few extra ideas and bugs onto it to make life more interesting :)
The MetaKit home page is here:
http://www.equi4.com/metakit/
The Mk4py version of the Python interface is unaltered:
http://www.equi4.com/metakit/mk4py/
Some background info on MetaKit can be found on my personal pages:
http://www.equi4.com/jcw/
Comments, suggestions, problem reports always welcome (but see below).
-- Jean-Claude
P.S. This is a "deadline-crush" announcement - I'll be back August 18.
<P><A HREF="http://www.equi4.com/metakit/mk4py/mkwrap.txt">MkWrap</A> -
Python interface to the MetaKit (commercial) embedded
database. (08-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
In Musi-Cal I frequently need to deal with recurring dates such as "every
Monday from 1pm to 3pm". The fact that I can't easily process recurring
dates has been an ongoing problem. After one of my partners posed a
question about recurring dates for another project a couple days ago, I
decided it was time to start thinking seriously about it. The result is a
small module, recur.py, which you can get to through my Python Bits page at
http://www.musi-cal.com/~skip/python/
The module implements a single class, Recurrence. You can intersect two
recurrences to get a new one or generate a finite series of absolute dates
from an infinite recurrence. It doesn't yet do unions (my feeble brain
hasn't figured that out), nor can it parse limited English phrases such as
the one above into a Recurrence object. Also, it can only represent simple
recurrences. More complex recurrences like "Easter", "every other Friday"
or "the third Thursday of the month" are beyond it.
Marc-Andre Lemburg's mxDateTime module:
http://starship.python.net/crew/lemburg/mxDateTime.html
is required.
I'd very much like to get some feedback on this, especially on the stuff it
can't do. It's an area where I have virtually no past programming
experience (literature references would be most welcome!). If I'm hiking
down the wrong trail I'd like to find out before I run into a lot of grizzly
bears (or even the occasional snake... ;-)
Thanks,
Skip Montanaro | http://www.mojam.com/
skip(a)mojam.com | http://www.musi-cal.com/~skip/
847-971-7098
<P><A HREF="http://www.musi-cal.com/~skip/python/recur.py">recur.py</A> -
a Python class to handle recurring dates; needs mxDateTime
module. (06-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
Sketch 0.6.1 - A vector drawing program
Sketch is a vector drawing program for Linux and other unices. It's
intended to be a flexible and powerful tool for illustrations, diagrams
and other purposes.
Despite the low version number, it already has advanced features like
gradients, text along a path and clip masks and its fully scriptable due
to its implementation in a combination of Python and C.
Changes since version 0.6.0:
* Spanish messages.
* The AI export filter can handle axial and radial gradients now.
* The CMX import filter has better support for gradients.
* The AI import filter supports guides
Homepage:
---------
http://www.online.de/home/sketch
Features:
---------
o Drawing primitives:
o Rectangles
o Ellipses
o Bezier curves
o Bitmap images: JPEG, GIF,...
(all types the Python Imaging Library can read)
o Encapsulated PostScript
o Text
o All objects, including images and text, can be rotated,
scaled, sheared, etc. (all affine transformations are
possible)
o Gradient fills
o Special Effects and Features:
o Use rectangles, ellipses and bezier objects as guides
o Blend Groups: Automatically updated interpolations of
arbitrary objects
o Text can be converted to bezier objects.
o Text along Path
o Exports Encapsulated PostScript and Adobe Illustrator files
o Imports XFig, Adobe Illustrator, Corel CMX and WMF files
o Fully scriptable in Python
For more information, have a look at the sketch webpage.
License:
--------
Sketch is released under GNU Library General Public License.
<P><A HREF="http://www.online.de/home/sketch/">Sketch 0.6.1</A> - advanced
vector drawing program for Unix written in Python. (06-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
The Python Imaging Library (PIL) adds image processing capabilities
to your Python interpreter. This library supports many file formats,
and provides powerful image processing and graphics capabilities.
PIL 1.0 final is now available from:
http://www.pythonware.com/
Changes since the last beta include faster text rendering, support
for using PIL as a package, mechanisms to hook into a standard Tkinter
build, better GIF encoding, incremental image decoding, and various
bug fixes. see the README and CHANGES files for the full story.
PIL 1.0 is (as before) shipped under a Python-style license, and can be
used without fee also in commercial projects. However, we encourage
commercial users to support our development efforts by purchasing a
support package; for details, see:
http://www.pythonware.com/products/pil/support.htm
enjoy,
the PIL development team
<P><A HREF="http://www.pythonware.com/">Python Imaging Library 1.0</A>
- an image processing and graphics library for Python. (06-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
Pybliographer 0.5
Fred - August 02nd 1999, 21:56 EST
Pybliographer is a tool for managing bibliographic databases. It
currently supports BibTeX files, but could be extended to other formats.
It can be used for searching, editing, reformatting, etc. In fact, it's
a simple framework that provides easy to use python classes and
functions, and therefore can be extended to many usages (generating HTML
pages according to bibliographic searches, etc).
Changes: Pybliographer now comes with a Gnome interface for viewing and
searching (not yet editing, but emacs does the job...)
Download: http://www.idiap.ch/~gobry/pybliographer/pybliographer-0.5.tar.gz
Homepage: http://www.idiap.ch/~gobry/pybliographer.html
Author: Frederic Gobry
License: GPL
Category: GNOME/Misc
Depends on: python glib recode gnome
Freshmeat (c) 1999 scoop(a)freshmeat.net
<P><A HREF="http://www.idiap.ch/~gobry/pybliographer.html">Pybliographer
0.5</A> - a framework for managing bibliographic databases; currently
supports BibTeX files. (02-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
Deeply Embedded Python is a minimal version of the Python virtual
machine. It is targeted to small embedded systems where it is
necessary a trade-off between language features and memory footprint
of the interpreter. With this patch, it is possible to build a python
interpreter WITHOUT support for float, complex and long numbers, file
objects, parser, compiler and depedencies with any operating system.
Deeply Embedded Python is distributed as a patch file for the Python
1.5.1 source tree. You can download the patch and its documentation
from:
http://www.abo.fi/~iporres/python
The patch can be distributed freely.
Enjoy!
Ivan
==
<P><A HREF="http://www.abo.fi/~iporres/python/">Deeply Embedded Python
0.1</A> - A minimal version of the Python virtual machine for small
embedded systems. (02-Aug-99)
--
Ivan Porres Paltor Turku Centre for Computer Science
Åbo Akademi, Department of Computer Science Phone: +358-2-2154033
Lemminkäinengatan 14A
FIN-20520 Turku - Finland http://www.abo.fi/~iporres
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
I have been interested in using Python to program simulated
swarms of interacting agents. For this purpose, I have implemented
what I call "microthreads" in Python, modifying Python's virtual
machine, and maintaining a frame stack for each thread. I have
successfully run 1500 threads simultaneously. Source code and some
example usages are available at
ftp://ftp.std.com/pub/wware/uthread.tgz
for anybody interested in this. This is a pre-pre-thinking-about-
alpha-some-day release, and probably buggy, but the examples run
as expected.
==
- - - - - - - - - - - - - - - - - - - - - - - -
Resistance is futile. Capacitance is efficacious.
Will Ware email: wware @ world.std.com
[Moderator's note: the following is taken from the package's README file.]
**************************************************************************
Microthreads for Python
Will Ware <wware(a)world.std.com>
It would be nice to use Python for programs involving huge numbers of
very light-weight threads. This would make it easy to simulate large
swarms of interacting agents, which sounds like fun.
Python functions are compiled to a bytecode, which runs on a virtual
machine, defined in Python/ceval.c in the eval_code2 function. Python
uses frame objects to administer information involved in nested
function calls. In ceval.c, the frame stack is implicitly embedded in
the C stack, because eval_code2 calls itself recursively when one
Python function calls another.
Microthreads are implemented with a modified version of the eval_code2
function. This version allows different threads to maintain different
frame stacks explicitly. This version also executes a predetermined
number of opcodes, whereas eval_code2 normally runs an infinite loop,
terminating only when a function reaches either an error or a return
statement.
Two data structures have been defined. One is a thread object, which
includes a frame stack, and also stacks for program counters and stack
pointers. The other is a semaphore object, which provides an ability
for threads to coordinate with one another. Using a semaphore it is
possible to define a mailbox in Python, whereby one thread can send
messages to another.
The included example files demonstrate how threads and semaphores
work, and how to implement a mailbox.
**************************************************************************
<P><A HREF="ftp://ftp.std.com/pub/wware/">Python microthreads</A> -
experimental implementation of interpreter-level threads using a
modified Python byte code interpreter. (01-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
ANN: MAXTAL INTERSCRIPT version 1.0a9 RELEASED 1 August 1999
----------------------------------------------------------
Maxtal Interscript is an advanced literate programming system,
designed to support integrated development of code and documentation.
It requires Python 1.5.2 [C version] [http://www.python.org] to operate,
[Note 1.5.1 will not do!]
It benefits from availability of some Posix features and common tools.
[For NT, Cygnus' gnu tools packages is recommended]
This is an ALPHA version, and is provided for experiment
and evaulation.
Version 1.0a9 has some major new features:
INTERNATIONALISATION SUPPORT
* generates navigation tags and other fixed information
in any language. (Some data for French, German and
Spanish are provided, but the data tables are not complete)
* select sections by language -- allows writing books and documentation
in multiple languages, and generating documents for any subset
simultaneously (for multiple weavers!)
* full support for reading ISO-10646 encoded as UTF-8,
UTF-16, UCS-2 (Unicode), UCS-2le,UCS4, UCS-4le,
ISO8599-x encodings for European languages,
ShiftJis (Japanese), Big5 (Chinese), GB (Chinese),
Wansung (Korean), Johab (Korean), and a large set of
Microsoft/IBM code pages (DOS, Windows and Mac versions).
* Interscript always generates UTF-8 (Standard for the Internet,
and Linux, compatible with ASCII)
IMPROVED SCRIPT DEBUGGING
* errors in client script are now reported in exquisite detail
with nice formatting
* completely revamped trace control: 'verbosity' is gone,
there are now switches for tracing particular event classes
MUCH FASTER TANGLING
* interscript now does some dependency checking
and skips included files which haven't changed
--- this only works for tangling at present ---
BUG FIXES
* several nasty bugs have been fixed, including incorrect
scope control for client functions
MINOR FEATURES
* better support for formatting data in table cells
* cursory support for software metrics
* cursory support for attributions, licences, copyright
information, etc
* more coherent policy on caching FTP'd files
* more systematic treatment of weavers and tanglers
as 'plug in' components
* generate HTML subdocument groups by name
COMMAND LINE CHANGES
Note interscript now _requires_ a new command line
switch to generate documents: --language=xx,
where xx is the ISO code for the country of the language.
Web document files are prefixed by the language code.
Also, verbosity is gone, replaced by --tracing=event-class.
MAILING LIST
interscript-dev(a)eGroups.com
mailing list for developers and serious users.
ONLINE DOCUMENTATION
You will find the complete HTML documentation for
Interscript version 1.0a9 at
http://www.triode.net.au/~skaller/interscript
DOWNLOAD
--------------------
You can download Maxtal Interscript using anonymous FTP.
ftp://ftp.triode.net.au/ftp/skaller/interscript_1_0_a9.tgz
is the complete Maxtal Interscript package WITHOUT DOCUMENTATION
as a gzipped, tarred, archive.
The tarball is 1 Meg, and includes ready to run Python script,
the full interscript sources.
The full package including documentation can be got from
ftp://ftp.triode.net.au/ftp/skaller/interscript_1_0_a9_doc.tgz
As this include the full Unicode character tables, as well as tables
for all the other encodings, in HTML form, the documentation
is quite large [2.9Meg]. Note this is the SPANISH version. The browser
navigation buttons are in Spanish, and the introductory
paragraphs are also in Spanish [but the rest is in English]
You can also get the tarballs by http:
http://www.triode.net.au/~skaller/interscript/interscript_1_0_a9.tgzhttp://www.triode.net.au/~skaller/interscript/interscript_1_0_a9_doc.tgz
FEEDBACK
--------
Please
mailto:skaller@maxtal.com.au
to contact the author, John Skaller. Interscript is easy to install,
but somewhat trickier to generate.
OSS Licence
-----------
Software on the FTP site is available free for any use,
except where components are, or are derived from, third party components,
in which case the licence for those components applies.
Commercial Support
------------------
I will consider any requests for commercial support.
Please feel free to contact me if you're considering a serious
investment in literate programming. Interscript is free,
but paid support is recommended for institutions and
companies intending serious use: please contact
me early with your requirements.
Enjoy!
John Max Skaller ph:61-2-96600850
mailto:skaller@maxtal.com.au 10/1 Toxteth Rd
http://www.maxtal.com.au/~skaller Glebe 2037 NSW AUSTRALIA
John Max Skaller ph:61-2-96600850
mailto:skaller@maxtal.com.au 10/1 Toxteth Rd
http://www.maxtal.com.au/~skaller Glebe 2037 NSW AUSTRALIA
<P><A HREF="http://www.triode.net.au/~skaller/interscript/">Maxtal
Interscript 1.0a9</A> - advanced literate programming system, designed
to support integrated development of code and documentation. (01-Aug-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------