ANN: mock 0.8 final released

2012-02-16 Thread Fuzzyman
After more than six months development work mock 0.8 has been
released. 0.8 is a big release with many new features, general
improvements and bugfixes.

You can download mock 0.8.0 final from the PyPI page or install it
with:

pip install -U mock

mock is a library for testing in Python. It allows you to replace
parts of your system under test with mock objects.

http://pypi.python.org/pypi/mock
http://www.voidspace.org.uk/python/mock/
http://www.voidspace.org.uk/python/mock/changelog.html#version-0-8-0

The only changes in mock 0.8.0 final since 0.8rc2 are:

* Improved repr of `sentinel` objects
* `ANY` can be used for comparisons against call objects
* The return value of  `MagicMock.__iter__` can be set to any iterable
and isn't required to be an iterator

A longer version of this announcement, including the full changelog
since mock 0.7 and a couple of short examples of the most important
changes, can be found on my blog:

http://www.voidspace.org.uk/python/weblog/arch_d7_2012_02_11.shtml#e1234

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

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


ANN: mock 0.8 beta 3

2011-08-17 Thread Fuzzyman
I've released mock 0.8 beta 3. You can download it it or install it
with:

pip install -U mock==dev

* http://www.voidspace.org.uk/python/mock
* http://www.voidspace.org.uk/downloads/mock-0.8.0beta3.tar.gz

mock is a library for testing in Python. It allows you to replace
parts of your system under test with mock objects. The latest stable
release is 0.7.2, which you can download from pypi.

* http://pypi.python.org/pypi/mock

mock 0.8 beta 3 is now feature complete, and is hopefully the code
that will be released as mock 0.8 final. All that is left is
documentation work, so now is the ideal time to try the beta!

mock 0.8 is a big release with lots of improvements. You can read a
summary of the new features in the following blog entries:

* http://www.voidspace.org.uk/python/weblog/arch_d7_2011_08_13.shtml#e1224
* http://www.voidspace.org.uk/python/weblog/arch_d7_2011_07_30.shtml#e1223
* http://www.voidspace.org.uk/python/weblog/arch_d7_2011_07_16.shtml#e1220
* http://www.voidspace.org.uk/python/weblog/arch_d7_2011_06_11.shtml#e1219

The important new features in 0.8 include:

* Addition of `mock_calls` list for *all* calls (including magic
methods and
  chained calls)
* `patch` and `patch.object` now create a `MagicMock` instead of a
`Mock` by
  default
* The patchers (`patch`, `patch.object` and `patch.dict`), plus `Mock`
and
  `MagicMock`, take arbitrary keyword arguments for configuration
* New mock assert methods `assert_any_call` and `assert_has_calls`
* `patch.multiple` for doing multiple patches in a single call, using
keyword
  arguments
* Setting `side_effect` to an iterable will cause calls to the mock to
return
  the next value from the iterable
* New `new_callable` argument to `patch` and `patch.object` allowing
you to
  pass in a class or callable object (instead of `MagicMock`) that
will be
  called to replace the object being patched
* Added `ANY` for ignoring arguments in `assert_called_with` calls
* Addition of `call` helper object
* Implemented auto-speccing (recursive, lazy speccing of mocks with
mocked
  signatures for functions/methods), as the `autospec` argument to
`patch`
* Added the `create_autospec` function for manually creating 'auto-
specced'
  mocks
* Improved repr for mocks
* Improved repr for `Mock.call_args` and entries in
`Mock.call_args_list`,
  `Mock.method_calls` and `Mock.mock_calls`

Other changes include:

* New mock method `configure_mock` for setting attributes and return
values /
  side effects on the mock and its attributes
* Addition of `NonCallableMock` and `NonCallableMagicMock`, mocks
without a
  `__call__` method
* Addition of `mock_add_spec` method for adding (or changing) a spec
on an
  existing mock
* Protocol methods on `MagicMock` are magic mocks, and are created
lazily on
  first lookup. This means the result of calling a protocol method is
a
  MagicMock instead of a Mock as it was previously
* In Python 2.6 or more recent, `dir` on a mock will report all the
dynamically
  created attributes (or the full list of attributes if there is a
spec) as
  well as all the mock methods and attributes.
* Module level `FILTER_DIR` added to control whether `dir(mock)`
filters
  private attributes. `True` by default. Note that `vars(Mock())` can
still be
  used to get all instance attributes and `dir(type(Mock())` will
still return
  all the other attributes (irrespective of `FILTER_DIR`)
* `patch.TEST_PREFIX` for controlling how patchers recognise test
methods when
  used to decorate a class
* Support for using Java exceptions as a `side_effect` on Jython
* `Mock` call lists (`call_args_list`, `method_calls` & `mock_calls`)
are now
  custom list objects that allow membership tests for "sub lists" and
have
  a nicer representation if you `str` or `print` them
* Mocks attached as attributes or return values to other mocks have
calls
  recorded in `method_calls` and `mock_calls` of the parent (unless a
name is
  already set on the child)
* Improved failure messages for `assert_called_with` and
  `assert_called_once_with`
* Added the Mock API (`assert_called_with` etc) to functions created
by
  `mocksignature`
* Tuples as well as lists can be used to specify allowed methods for
`spec` &
  `spec_set` arguments
* Calling `stop` on an unstarted patcher fails with  a more meaningful
error
  message
* BUGFIX: an error creating a patch, with nested patch decorators,
won't leave
  patches in place
* BUGFIX: `__truediv__` and `__rtruediv__` not available as magic
methods on
  mocks in Python 3
* BUGFIX: `assert_called_with` / `assert_called_once_with` can be used
with
  `self` as a keyword argument
* BUGFIX: when patching a class with an explicit spec / spec_set (not
a
  boolean) it applies "spec inheritance" to the return value of the
created
  mock (the "instance")
* BUGFIX: remove the `__unittest` marker causing traceback truncation

Please try out the new beta and report any issues or give feedback on
the new features.

All the best,

Michael Foord
-- 
http://mai

ANN: mock 0.7.2 released

2011-06-01 Thread Fuzzyman
There's a new minor release of mock, version 0.7.2, with two bugfixes
in it.

* http://pypi.python.org/pypi/mock/ (download)
* http://www.voidspace.org.uk/python/mock/ (documentation)
* https://code.google.com/p/mock/ (repo and issue tracker)

mock is a Python library for simple mocking and patching (replacing
objects with mocks during test runs). mock is designed for use with
unittest,
based on the "action -> assertion" pattern rather than "record ->
replay".

The full changelog for this release is:

http://www.voidspace.org.uk/python/mock/changelog.html#version-0-7-2

* BUGFIX: instances of list subclasses can now be used as mock specs
* BUGFIX: MagicMock equality / inequality protocol methods changed to
use the
  default equality / inequality. This is done through a `side_effect`
on
  the mocks used for `__eq__` / `__ne__`

The most important change is the second one, which fixes an oddity
with the way equality comparisons with MagicMock work(ed). For more
details on this change, and the motivation behind it, see this blog
entry:

http://www.voidspace.org.uk/python/weblog/arch_d7_2011_05_28.shtml#e1216

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

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


ANN: mock 0.7.0 final release

2011-03-22 Thread Fuzzyman
Yay for conference driven development, I got the final release of mock
0.7.0 done in time for PyCon. No api changes since the release
candidate. The only changes are documentation improvements (double
yay!)

* http://pypi.python.org/pypi/mock/ (download)
* http://www.voidspace.org.uk/python/mock/ (documentation)
* https://code.google.com/p/mock/ (repo and issue tracker)

At PyCon I gave a talk on mock. It was an intro talk on how to use
mock and why you should use it, but also covered some of the shiny new
features in 0.7.0. The video of the talk is up (thanks to the PyCon
video team):

* PyCon Video: Testing with mock https://blip.tv/file/4881513

Here's the release announcement for mock 0.7.0 final.

mock is a Python library for simple mocking and patching (replacing
objects with mocks during test runs). The "headline features" in 0.7.0
are Python 3 support and the ability to mock magic methods. You can
now mock objects that behave like containers or are used as context
managers. mock is designed for use with unittest, based on the "action
-> assertion" pattern rather than "record -> replay". People are
happily using mock with Python test frameworks like nose and py.test.
0.7.0 is a major new release with a bunch of other new features and
bugfixes as well.


The big change since 0.7.0 rc 1 is documentation changes including a
stylish
new Sphinx theme. https://github.com/coordt/ADCtheme/

Three new pages particularly worth looking at are:

* Mocking Magic Methods http://www.voidspace.org.uk/python/mock/magicmock.html
* Further examples of mock http://www.voidspace.org.uk/python/mock/examples.html
* Comparison with other mock frameworks 
http://www.voidspace.org.uk/python/mock/compare.html

The full set of changes since 0.6.0 are:

http://www.voidspace.org.uk/python/mock/changelog.html#version-0-7-0

* Python 3 compatibility
* Ability to mock magic methods with `Mock` and addition of
`MagicMock`
  with pre-created magic methods
* Addition of `mocksignature` and `mocksignature` argument to `patch`
and
  `patch.object`
* Addition of `patch.dict` for changing dictionaries during a test
* Ability to use `patch`, `patch.object` and `patch.dict` as class
decorators
* Renamed ``patch_object`` to `patch.object` (``patch_object`` is
  deprecated)
* Addition of soft comparisons: `call_args`, `call_args_list` and
`method_calls`
  now return tuple-like objects which compare equal even when empty
args
  or kwargs are skipped
* patchers (`patch`, `patch.object` and `patch.dict`) have start and
stop
  methods
* Addition of `assert_called_once_with` method
* Mocks can now be named (`name` argument to constructor) and the name
is used
  in the repr
* repr of a mock with a spec includes the class name of the spec
* `assert_called_with` works with `python -OO`
* New `spec_set` keyword argument to `Mock` and `patch`. If used,
  attempting to *set* an attribute on a mock not on the spec will
raise an
  `AttributeError`
* Mocks created with a spec can now pass `isinstance` tests
(`__class__`
  returns the type of the spec)
* Added docstrings to all objects
* Improved failure message for `Mock.assert_called_with` when the mock
  has not been called at all
* Decorated functions / methods have their docstring and `__module__`
  preserved on Python 2.4.
* BUGFIX: `mock.patch` now works correctly with certain types of
objects that
  proxy attribute access, like the django settings object
* BUGFIX: mocks are now copyable (thanks to Ned Batchelder for
reporting and
  diagnosing this)
* BUGFIX: `spec=True` works with old style classes
* BUGFIX: ``help(mock)`` works now (on the module). Can no longer use
``__bases__``
  as a valid sentinel name (thanks to Stephen Emslie for reporting and
  diagnosing this)
* BUGFIX: ``side_effect`` now works with ``BaseException`` exceptions
like
  ``KeyboardInterrupt``
* BUGFIX: `reset_mock` caused infinite recursion when a mock is set as
its own
  return value
* BUGFIX: patching the same object twice now restores the patches
correctly
* with statement tests now skipped on Python 2.4
* Tests require unittest2 (or unittest2-py3k) to run
* Tested with `tox `_ on Python 2.4 -
3.2,
  jython and pypy (excluding 3.0)
* Added 'build_sphinx' command to setup.py (requires setuptools or
distribute)
  Thanks to Florian Bauer
* Switched from subversion to mercurial for source code control
* `Konrad Delong `_ added as co-maintainer
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: mock 0.7.0 release candidate 1

2011-02-25 Thread Fuzzyman
There is a new release of mock: mock 0.7.0 rc1

http://pypi.python.org/pypi/mock

This is intended to be the last release of mock before 0.7.0 final and
the only changes anticipated are documentation changes which I've
finally started work on.

mock is a Python library for simple mocking and patching (replacing
objects with mocks during test runs). The "headline features" in 0.7.0
are Python 3 support and the ability to mock magic methods. You can
now mock objects that behave like containers or are used as context
managers. mock is designed for use with unittest, based on the "action
-> assertion" pattern rather than "record -> replay". People are
happily using mock with Python test frameworks like nose and py.test.
0.7.0 is a major new release with a bunch of other new features and
bugfixes as well.

http://pypi.python.org/pypi/mock/ (download)
http://www.voidspace.org.uk/python/mock/ (documentation)
https://code.google.com/p/mock/ (repo and issue tracker)

Changelog:

http://www.voidspace.org.uk/python/mock/changelog.html#version-0-7-0-rc-1

Changes since beta 4:

* Tested with jython, pypy and Python 3.2 and 3.1
* Decorated functions / methods have their docstring and __module__
preserved on Python 2.4
* BUGFIX: mock.patch now works correctly with certain types of objects
that proxy attribute access, like the django settings object
* BUGFIX: reset_mock caused infinite recursion when a mock is set as
its own return value

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

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


ANN: mock 0.7.0 beta 4 release

2010-11-16 Thread Fuzzyman
I've released mock 0.7.0 beta 4. This is intended to be the last
release of 0.7.0 before the final.

http://pypi.python.org/pypi/mock/ (download)
http://www.voidspace.org.uk/python/mock/ (documentation)
https://code.google.com/p/mock/ (repo and issue tracker)

mock is a Python library for simple mocking and patching (replacing
objects with mocks during test runs). The "headline features" in 0.7.0
are Python 3 support and the ability to mock magic methods. You can
now mock objects that behave like containers or are used as context
managers. mock is designed for use with unittest, based on the "action
-> assertion" pattern rather than "record -> replay". People are
happily using mock with Python test frameworks like nose and py.test.

0.7.0 is a major new release with a bunch of other new features and
bugfixes as well.

The latest beta is now up on PyPI. 0.7.0 beta 4 is intended to be the
last release before 0.7.0 final (read my lips - no new features), so
please try it out and report any issues.

The work remaining before the final release is updating the
documentation, especially the examples, to include the new features.

Changes since beta 3 are:

* patchers (patch, patch.object and patch.dict) have start and
stop methods
* Addition of assert_called_once_with method
* repr of a mock with a spec includes the class name of the spec
* assert_called_with works with python -OO
* New spec_set keyword argument to Mock and patch. If this is set,
attempting to set an attribute on a mock not on the spec will raise an
AttributeError
* Attributes and return value of a MagicMock are MagicMock objects
* Attempting to set an unsupported magic method now raises an
AttributeError
* patch.dict works as a class decorator
* Switched from subversion to mercurial for source code control
* BUGFIX: mocks are now copyable (thanks to Ned Batchelder for
reporting and diagnosing this)
* BUGFIX: spec=True works with old style classes
* BUGFIX: mocksignature=True can now patch instance methods via
patch.object

For more details, including full changelog since 0.6.0 and examples of
using the new start / stop methods on patchers, see the announcement
on my blog:

http://www.voidspace.org.uk/python/weblog/arch_d7_2010_11_13.shtml#e1193

All the best,

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

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


ANN: IronPython training in Stockholm 23-24th September

2009-07-20 Thread Fuzzyman
September 23-24th I'll be presenting a two day training session in
Stockholm (the training is in English) with addskills. It is aimed
at .NET developers looking to use IronPython for application
development, scripting, embedding, testing or just as another useful
tool. It will be a comprehensive training session for those with .NET
experience who are interested in making practical use of IronPython.

For more information please see:

* http://www.addskills.se/Utbildning/Kurs/?CourseID=469#
* http://www.voidspace.org.uk/python/weblog/arch_d7_2009_07_18.shtml#e1109

This course is about how to make the most of dynamic languages like
IronPython and IronRuby on the .NET framework; with a particular focus
on IronPython. The dynamic language runtime, which is being
incorporated into .NET 4.0 and is the basis of IronPython and
IronRuby, enables a new class of language to run on the .NET
framework. In the last few years dynamic languages have gained a
reputation for increased developer productivity and being easy to
learn. These new languages for the .NET framework have potential
applications in everything from scripting tasks to application
development to embedding in .NET programs as ready made scripting
engines.

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

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


discover: automatic test discovery for unittest

2009-06-21 Thread Fuzzyman
The discover module is a backport of the automatic test discovery from
python-trunk (what will become Python 2.7 & 3.2) to work with Python
2.4 or more recent (including Python 3.0).

Test discovery allows you to run all the unittest based tests (or just
a subset of them) in your project without you having to write your own
test collection or running machinery. Once installed, test discovery
can be invoked with ``python -m discover``. I've tested the discover
module with Python 2.4 and 3.0.

The discover module also implements the ``load_tests`` protocol which
allows you to customize test loading from modules and packages. Test
discovery and ``load_tests`` are implemented in the
``DiscoveringTestLoader`` which can be used from your own test
framework.

* discover module on PyPI http://pypi.python.org/pypi/discover

discover can be installed with pip or easy_install. After installing
switch the
current directory to the top level directory of your project and run::

   python -m discover
   python discover.py

This will discover all tests (with certain restrictions) from the
current
directory. The discover module has several options to control its
behavior (full
usage options are displayed with ``python -m discover -h``)::

Usage: discover.py [options]

Options:
  -v, --verboseVerbose output
  -s directory Directory to start discovery ('.' default)
  -p pattern   Pattern to match test files ('test*.py'
default)
  -t directory Top level directory of project (default to
   start directory)

For test discovery all test modules must be importable from the
top
level directory of the project.

For example to use a different pattern for matching test modules run::

python -m discover -p '*test.py'

(Remember to put quotes around the test pattern or shells like bash
will do
shell expansion rather than passing the pattern through to discover.)

Test discovery is implemented in
``discover.DiscoveringTestLoader.discover``. As
well as using discover as a command line script you can import
``DiscoveringTestLoader``, which is a subclass of
``unittest.TestLoader``, and
use it in your test framework.

This method finds and returns all test modules from the specified
start
directory, recursing into subdirectories to find them. Only test files
that
match *pattern* will be loaded. (Using shell style pattern matching.)

All test modules must be importable from the top level of the project.
If
the start directory is not the top level directory then the top level
directory must be specified separately.

The ``load_tests`` protocol allows test modules and packages to
customize how
they are loaded. This is implemented in
``discover.DiscoveringTestLoader.loadTestsFromModule``. If a test
module defines
a ``load_tests`` function then tests are loaded from the module by
calling
``load_tests`` with three arguments: `loader`, `standard_tests`,
`None`.

If a test package name (directory with `__init__.py`) matches the
pattern then the package will be checked for a ``load_tests``
function. If this exists then it will be called with *loader*,
*tests*,
*pattern*.

If ``load_tests`` exists then discovery does  *not* recurse into the
package,
``load_tests`` is responsible for loading all tests in the package.

The pattern is deliberately not stored as a loader attribute so that
packages can continue discovery themselves. *top_level_dir* is stored
so
``load_tests`` does not need to pass this argument in to
``loader.discover()``.

discover.py is maintained in a google code project (where bugs and
feature
requests should be posted): http://code.google.com/p/unittest-ext/

The latest development version of discover.py can be found at:
http://code.google.com/p/unittest-ext/source/browse/trunk/discover.py

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

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


ANN: Mock 0.5.0 Release

2009-04-20 Thread Fuzzyman
Mock 0.5.0 has just been released.

* Mock Homepage http://www.voidspace.org.uk/python/mock/
* Download Mock 0.5.0 release (zip) 
http://www.voidspace.org.uk/downloads/mock-0.5.0.zip
* Mock Documentation as a PDF http://www.voidspace.org.uk/downloads/mock.pdf
* Mock entry on PyPI http://pypi.python.org/pypi/mock/
* Repository and Issue Tracker on Google Code http://code.google.com/p/mock/

This *isn't* backwards compatible as it cleans up the API in a few
ways, but they're all good changes I promise.

One of the new features is that the Mock class now supports wrapping
objects; using the ``wraps`` keyword.

Mock is a library for the creation of simple mock objects that track
how they are used so that you can make assertions. It uses the action -
> assertion pattern rather than the record -> replay pattern. Action -
> assertion puts your tests after you have used the objects, which
seems more natural and means that you can make assertions about only
the behavior you are interested in. Mock also contains two decorators
(``patch`` and ``patch_object``) which make it easy to safely mock out
dependencies in the module under test purely within the scope of the
test itself (unpatching is done automatically on exit whether or not
the test passes). One of the changes in this release is that these
decorators also become context managers allowing them to be used with
the 'with statement'.

Mock can be installed with:

``easy_install mock``

The changelog for all changes in this release is:

* Made DEFAULT part of the public api.
* Documentation built with Sphinx.
* ``side_effect`` is now called with the same arguments as the mock is
called with and
  if returns a non-DEFAULT value that is automatically set as the
``mock.return_value``.
* ``wraps`` keyword argument used for wrapping objects (and passing
calls through to the wrapped object).
* ``Mock.reset`` renamed to ``Mock.reset_mock``, as reset is a common
API name.
* ``patch`` / ``patch_object`` are now context managers and can be
used with ``with``.
* A new 'create' keyword argument to patch and patch_object that
allows them to patch
  (and unpatch) attributes that don't exist. (Potentially unsafe to
use - it can allow
  you to have tests that pass when they are testing an API that
doesn't exist - use at
  your own risk!)
* The methods keyword argument to Mock has been removed and merged
with spec. The spec
  argument can now be a list of methods or an object to take the spec
from.
* Nested patches may now be applied in a different order (created
mocks passed
  in the opposite order). This is actually a bugfix.
* patch and patch_object now take a spec keyword argument. If spec is
  passed in as 'True' then the Mock created will take the object it is
replacing
  as its spec object. If the object being replaced is a class, then
the return
  value for the mock will also use the class as a spec.
* A Mock created without a spec will not attempt to mock any magic
methods / attributes
  (they will raise an ``AttributeError`` instead).

Many thanks to all those who gave feedback, feature requests and
patches!

What *isn't* in 0.5.0 is support for mocking magic methods. I do have
a technique in mind for this, which I implemented for the container
methods. It is very clean, but different from the pattern used to mock
out other methods. As I'm not currently using it I'm going to wait
until I need it and see if it works well in practise.

If you're interested in trying it, the code (with full documentation)
in a 'magics branch':

* http://code.google.com/p/mock/source/browse/#svn/branches/magics
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: ConfigObj 4.6.0 and Validate 1.0.0 released

2009-04-18 Thread Fuzzyman
Finally a fresh release ConfigObj and Validate.

* ConfigObj Home page: http://www.voidspace.org.uk/python/configobj.html
* Validate Home page: http://www.voidspace.org.uk/python/validate.html

**ConfigObj** is a simple to use but powerful Python library for the
reading and writing of configuration (ini) files. Through **Validate**
it integrates a config file validation and type conversion system.

Features of ConfigObj include:

* Nested sections (subsections), to any level
* List values
* Multiple line values
* Full Unicode support
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- and allowing default values
- repeated sections

* All comments in the file are preserved
* The order of keys/sections is preserved
* Powerful ``unrepr`` mode for storing/retrieving Python data-types

Release 4.6.0 fixes bugs and adds new features, particularly making
configspec handling more flexible.

Full details on the changes can be found at:
http://www.voidspace.org.uk/python/weblog/arch_d7_2009_04_11.shtml#e1078

The changelog for ConfigObj 4.6.0 is:

* Pickling of ConfigObj instances now supported (thanks to Christian
Heimes)
* Hashes in confgspecs are now allowed (see note below)
* Replaced use of hasattr (which can swallow exceptions) with getattr
* ``__many__`` in configspecs can refer to scalars (ordinary values)
as well as sections
* You can use ``___many___`` (three underscores!) where you want to
use ``__many__`` as well
* You can now have normal sections inside configspec sections that use
``__many__``
* You can now create an empty ConfigObj with a configspec,
programmatically set values and then validate
* A section that was supplied as a value (or vice-versa) in the actual
config file would cause an exception during validation (the config
file is still broken of course, but it is now handled gracefully)
* Added ``as_list`` method
* Removed the deprecated ``istrue``, ``encode`` and ``decode`` methods
* Running test_configobj.py now also runs the doctests in the
configobj module
* Through the use of validate 1.0.0 ConfigObj can now validate multi-
line values

As the public API for Validate is stable, and there are no outstanding
issues or feature requests, I've bumped the version number to 1.0.0.
The full change log is:

* BUGFIX: can now handle multiline strings
* Addition of 'force_list' validation option
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


[ANN] IronPython in Action available

2009-04-11 Thread Fuzzyman
After two and a half years of work IronPython in Action is finally
available!

http://www.ironpythoninaction.com/

IronPython in Action is the first book (in English anyway...) on
IronPython. It is written by myself and my colleague Christian
Muirhead, with a foreword by Jim Hugunin (the original creator of
IronPython). The technical editor is Dino Viehland, core IronPython
developer.

Two of the chapters are available for free download:

* Chapter 1: A New Lanugage for .NET
* Chapter 7: Agile Testing - Where Dynamic Typing Shines

Links to the free chapters, and IronPython in Action on the Manning
site, Amazon.com and the Safari bookshelf are on the book website.

IronPython is the first of a new wave of dynamic languages for
the .NET framework, built on the Dynamic Language Runtime. IronPython
in Action is aimed at C# / VB.NET programmers interested in dynamic
languages and the possibilities of the DLR, plus Python programmers
wanting to take advantage of the .NET framework.

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

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


ANN: Resolver One Spreadsheet Challenge - win $17000

2008-12-18 Thread Fuzzyman
Resolver One is the Python powered spreadsheet created by Resolver
Systems.

Resolver One is a highly programmable spreadsheet program built with
IronPython. It is capable of creating powerful spreadsheet systems,
but is easy to program with Python and .NET libraries.

We’re convinced that Resolver One allows people to create astonishing
things that simply aren’t possible in a traditional spreadsheet
environment. And we want to prove it. Enter the Resolver One
Spreadsheet Challenge:

http://www.resolversystems.com/competition/

The Resolver One Challenge

We're so confident about the revolutionary potential of Resolver One
that we've set up the $25,000 Resolver One Challenge. Every month
between now and May, we will be giving away $2,000 for the best
spreadsheet we receive. And in late May, we'll be handing over $15,000
for the best of the best.
Let your imagination run wild

Build a blogging engine directly in Resolver One. Hook Resolver One up
to existing .NET or Python libraries in unusual ways. Build the game
of life, or a Mandelbrot viewer directly into the grid. Get Infocom
adventure games running inside a spreadsheet; or for that matter, have
a conversation with Eliza. Make a music player that does
visualisations in the cells.
Or something more businesslike?

Use the sophisticated web integration to pull of stock prices, or
integrate your spreadsheet with Google Maps. (Perhaps you could build
a spreadsheet that plots a map, showing in which part of the country
stock or house prices are rising or falling the most.) Build an
election predictor (and use a combination of Monte Carlo analysis and
the web front end to make it really special).

In other words: Resolver One gives you the tools, you just need to use
your imagination, and your Python and spreadsheet skills!

Resolver One is free to try and for non-commercial and Open Source
uses. You can download it from:

http://www.resolversystems.com/download/

To get you started with Resolver One we have a new tutorial. It takes
you through all the major features, with examples to try:

http://www.resolversystems.com/documentation/index.php/Tutorial.html

Michael Foord
Software Developer
Resolver Systems
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: Mock 0.4.0 released

2008-10-14 Thread Fuzzyman
Mock 0.4.0 has just been released, the first release in about ten
months (but worth the wait).

Mock is a simple library for testing: specifically for mocking,
stubbing and patching.

* Mock Homepage & Documentation http://www.voidspace.org.uk/python/mock.html
* mock.py (module only) `_. This means that if you have
setuptools you should be able to install mock with:

``easy_install mock``

The full changelog is:


* Default return value is now a new mock rather than None
* 'return_value' added as a keyword argument to the constructor
* New method 'assert_called_with'
* Added 'side_effect' attribute / keyword argument called when mock is
called
* patch decorator split into two decorators:

- ``patch_object`` which takes an object and an attribute name to
patch
  (plus optionally a value to patch with which defaults to a mock
object)
- ``patch`` which takes a string specifying a target to patch; in
the form
  'package.module.Class.attribute'. (plus optionally a value to
  patch with which defaults to a mock object)

* Can now patch objects with ``None``
* Change to patch for nose compatibility with error reporting in
wrapped functions
* Reset no longer clears children / return value etc - it just resets
  call count and call args. It also calls reset on all children (and
  the return value if it is a mock).

Thanks to Konrad Delong, Kevin Dangoor and others for patches and
suggestions.

See the following for examples of using Mock and patch:

* http://www.voidspace.org.uk/python/weblog/arch_d7_2008_10_11.shtml#e1019
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: PyCon UK Talks and Tutorials List Up

2008-07-29 Thread Fuzzyman
PyCon UK 2008 is the second PyCon event in the UK, and is being held
on 12th to 14th September at the Birmingham Conservatoire.

The conference starts with a day of tutorials on the Friday.  The
timetable for the tutorials day has now been published:

http://www.pyconuk.org/timetable.html

Abstracts for the talks, tutorials and BOFs are also now up:

http://www.pyconuk.org/talk_abstracts.html

The early bird rate is still open (but not for too much longer):

http://www.pyconuk.org/booking.html

We are almost there with the schedule, the plenary sessions will
include Lightning talks as well as keynotes from Mark Shuttleworth and
Ted Leung.

We may be accepting a couple more talks if we can squeeze them in
somewhere. (If you are expecting to give a talk but have not given us
an abstract, then please give it to us ASAP)

Michael Foord and the other PyCon UK Organisers
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: ConfigObj 4.5.3 Released

2008-06-28 Thread Fuzzyman
A new version of ConfigObj is now available, version 4.5.3.

This version is a minor bugfix release. It fixes a relatively obscure
bug, where an exception could be raised when validating a config file
with 'copy=True' and '__many__' sections.

* Home Page: http://www.voidspace.org.uk/python/configobj.html
* Download: 
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj-4.5.3.zip

ConfigObj is a Python module for the simple reading and writing of
config files. It has many features, whilst remaining easy to use.

With the assistance of validate it can validate a config file against
a specification, and convert members to the expected type.

Eggs for Python 2.4 & 2.5 are available from Python Package Index.
--
http://mail.python.org/mailman/listinfo/python-announce-list

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


ANN: ConfigObj 4.5.2 and validate 0.3.2

2008-02-27 Thread Fuzzyman
There was a bug in release 4.5.1 of ConfigObj, so there is now an
updated release:

* `ConfigObj 4.5.2 `_
* `Validate 0.3.2 `_

The bug affected the use of ``None`` as a default value in configspecs
and is now fixed.

What are ConfigObj and Validate?
=

**ConfigObj** is a simple to use but powerful configuration file
management library.
Features include:

* Nested sections to any depth
* Unicode support
* List and multiline values
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in a file are preserved when writing
* The order of keys/sections is preserved
* A powerful unrepr mode for storing basic datatypes

**validate** is the module (optional) used for config file validation
and type marshalling. It
can be used outside of ConfigObj for matching string values against a
text specification which
also does type conversion.

Changes in ConfigObj 4.5.x




Distribution now includes validate 0.3.2 so ``None`` as a default
value in configspecs works again.

BUGFIX: Unicode configspecs now work.

ConfigObj will now guarantee that files will be written terminated
with a newline.

ConfigObj will no longer attempt to import the ``validate`` module,
until/unless you call ``ConfigObj.validate`` with
``preserve_errors=True``. This
makes it faster to import.

New methods ``restore_default`` and ``restore_defaults``.
``restore_default`` resets an entry to its default value (and returns
that value). ``restore_defaults`` resets all entries to their default
value. It doesn't modify entries
without a default value. You must have validated a ConfigObj (which
populates the ``default_values`` dictionary) before calling these
methods.

BUGFIX: Proper quoting of keys, values and list values that contain
hashes (when writing).  When ``list_values=False``, values containing
hashes are triple quoted.

Added the ``reload`` method. This reloads a ConfigObj from file. If
the filename attribute is not set then a ``ReloadError`` (a new
exception inheriting from ``IOError``) is raised.

BUGFIX: Files are read in with 'rb' mode, so that native/non-native
line endings work!

Minor efficiency improvement in ``unrepr`` mode.

Added missing docstrings for some overridden dictionary methods.

Added the ``reset`` method. This restores a ConfigObj to a freshly
created state.

Removed old CHANGELOG file.

Changes in Validate 0.3.x
==

BUGFIX: ``None`` as a default value handled correctly.

BUGFIX: Unicode checks no longer broken.

Improved performance with a parse cache.

New ``get_default_value`` method. Given a check it returns the default
value (converted to the correct type) or raises a ``KeyError`` if the
check doesn't specify a default.

Added 'tuple' check and corresponding 'is_tuple' function (which
always returns a tuple).

BUGFIX: A quoted 'None' as a default value is no longer treated as
None,
but as the string 'None'.

BUGFIX: We weren't unquoting keyword arguments of length two, so an
empty string didn't work as a default.

BUGFIX: Strings no longer pass the 'is_list' check. Additionally, the
list checks always return lists.

A couple of documentation bug fixes.

Removed CHANGELOG from module.

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

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


ANN: ConfigObj 4.5.1 and validate 0.3.1

2008-02-07 Thread Fuzzyman
After one year and two days since the last release, there is a new
release of ConfigObj.

* ConfigObj 4.5.1 http://www.voidspace.org.uk/python/configobj.html
* Validate 0.3.1 http://www.voidspace.org.uk/python/validate.html

This release adds a few new features, plus has several bugfixes and
minor performance improvements.
Thanks to all those who gave feedback, reported bugs and provided
patches.


What are ConfigObj and Validate?
=

**ConfigObj** is a simple to use but powerful configuration file
management library.
Features include:

* Nested sections to any depth
* Unicode support
* List and multiline values
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in a file are preserved when writing
* The order of keys/sections is preserved
* A powerful unrepr mode for storing basic datatypes

**validate** is the module (optional) used for config file validation
and type marshalling. It
can be used outside of ConfigObj for matching string values against a
text specification which
also does type conversion.


Changes in ConfigObj 4.5.1


Distribution updated to include version 0.3.1 of validate. This means
that
Unicode configspecs now work.

ConfigObj will now guarantee that files will be written terminated
with a
newline.

ConfigObj will no longer attempt to import the ``validate`` module,
until/unless
you call ``ConfigObj.validate`` with ``preserve_errors=True``. This
makes it
faster to import.

New methods ``restore_default`` and ``restore_defaults``.
``restore_default``
resets an entry to its default value (and returns that value).
``restore_defaults``
resets all entries to their default value. It doesn't modify entries
without a
default value. You must have validated a ConfigObj (which populates
the
``default_values`` dictionary) before calling these methods.

BUGFIX: Proper quoting of keys, values and list values that contain
hashes
(when writing).  When ``list_values=False``, values containing hashes
are
triple quoted.

Added the ``reload`` method. This reloads a ConfigObj from file. If
the filename
attribute is not set then a ``ReloadError`` (a new exception
inheriting from
``IOError``) is raised.

BUGFIX: Files are read in with 'rb' mode, so that native/non-native
line endings work!

Minor efficiency improvement in ``unrepr`` mode.

Added missing docstrings for some overridden dictionary methods.

Added the ``reset`` method. This restores a ConfigObj to a freshly
created state.

Removed old CHANGELOG file.


Changes in Validate 0.3.1
==

BUGFIX: Unicode checks no longer broken.

Improved performance with a parse cache.

New ``get_default_value`` method. Given a check it returns the default
value (converted to the correct type) or raises a ``KeyError`` if the
check doesn't specify a default.

Added 'tuple' check and corresponding 'is_tuple' function (which
always returns a tuple).

BUGFIX: A quoted 'None' as a default value is no longer treated as
None,
but as the string 'None'.

BUGFIX: We weren't unquoting keyword arguments of length two, so an
empty string didn't work as a default.

BUGFIX: Strings no longer pass the 'is_list' check. Additionally, the
list checks always return lists.

A couple of documentation bug fixes.

Removed CHANGELOG from module.


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

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


Movable Python for Python 2.5.1

2007-05-09 Thread Fuzzyman
`Movable Python `_ has been
updated to Python 2.5.1.  Is is included in the Python 2.5 and Movable
Python Mega-Pack groups.

Movable Python can be downloaded from:

* `Movable Python Groups Page `_

Movable Python is a distribution of Python, for Windows, that can be
used without being installed.  It doesn't interfere with any Python
installation on machines it is used on, and can be run from a USB
flash drive.  The user interface can be used to launch programs with
any executable, you may never need to use the command line again.
{sm;:wink:}

Versions are available for Python 2.2, 2.3, 2.4 and 2.5.  The Mega-
Pack includes all of these versions, and can be used for testing
programs with multiple versions of Python (including IronPython) from
a single interface.

The new distribution of Python 2.5.1 includes updated versions of the
following extension packages:

* `wxPython 2.8.3.0 `_
* `PyEnchant 1.3.0 `_
* `Pythonutils 0.3.0 `_

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

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


[ANN] Pythonutils 0.3.0

2007-04-23 Thread Fuzzyman
There is a new (and long overdue) release of the `Pythonutils module
`_.
This is version **0.3.0**.

* `Quick Download: Pythonutils 0.3.0.zip `_


What is Pythonutils?
===

Pythonutils is a collection of general utility modules that simplify
common programming tasks in Python.


The modules included are :

* `ConfigObj `_
4.4.0   - Easy config file reading/writing
* `validate `_
0.2.3   - Validation and type conversion system
* `StandOut `_
3.0.0   - Simple logging and output control object
* `pathutils `_
0.2.5   - For working with paths and files
* `cgiutils `_
0.3.5   - {acro;CGI} helpers
* `urlpath `_
0.1.0   - Functions for handling URLs
* `odict `_
0.2.2   - Ordered Dictionary Class


For more details, visit the `Pythonutils Homepage `_.


What is New in 0.3.0?


Several of the modules have been updated. The major changes are:

* Removed the `listquote `_ module
* ConfigObj updated to 4.4.0
* StandOut updated to 3.0.0 (*Not* backwards compatible, but much
improved)

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

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


[ANN] Python Akismet 0.1.5

2007-02-05 Thread Fuzzyman
`Python Akismet 0.1.5 `_ is now available.

Fixed a typo/bug in ``submit_ham``. Thanks to Ian Ozsvald for pointing
this out.

**Python Akismet** is a Python interface to the `Akismet `_, spam blocking web-service.  It is aimed at
trapping spam comments.

* `Quick Download (119k zipfile) `_

The Python interface comes with an `example CGI `_.

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

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


[ANN] ConfigObj 4.4.0 and Validate 0.2.3

2007-02-04 Thread Fuzzyman
Updated versions of both `ConfigObj `_ and `Validate `_ are now available.

* `ConfigObj 4.4.0 `_
* `Validate 0.2.3 `_

**ConfigObj** is a Python module for the simple reading and writing of
config files. It has many features, whilst remaining easy to use.

With the assistance of **Validate** it can validate a config file
against a specification, and convert members to the expected type.

Thanks to Nicola Larosa who implemented most of the fixes in this
release.


What is New in ConfigObj 4.4.0?
===

* Made the import of compiler conditional so that ConfigObj can be
used with IronPython.

* Fix for Python 2.5 compatibility.

* String interpolation will now check the current section before
checking DEFAULT sections. Based on a patch by Robin Munn.

* Added Template-style interpolation, with tests, based on a patch by
Robin Munn.

* Allowed arbitrary indentation in the ``indent_type`` parameter.

* Fixed Sourceforge bug #1523975 by adding the missing ``self``


What is New in Validate 0.2.3?
==

Fixed validate doc to talk of boolean instead of bool; changed the
``is_bool`` function to ``is_boolean`` (Sourceforge bug #1531525).

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

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


[ANN] Movable Python 2.0.0 Final Available

2007-01-20 Thread Fuzzyman
Movable Python 2.0.0 Final
`_ is now available.

The new binaries are available for download from the groups page :

* `Movable Python Groups Page
`_

Binaries are uploaded for Python 2.2.3, 2.3.5, 2.4.4, 2.5 and the
`MegaPack `_.

There is also a fresh version of the free demo, based on Python 2.3.5:

* `Movable Python Trial Version
`_


What is Movable Python
==

**Movable Python** is a distribution of Python, for Windows, that can
run without being installed. It means you can carry a full development
environment round on a USB stick.

It is also useful for testing programs with a 'clean Python install',
and testing programs with multiple versions of Python.

The GUI program launcher makes it a useful programmers tool, including
features like :

* Log the output of all Python scripts run
* Enable Psyco for all scripts
* Quick Launch buttons for commonly used programs
* Configure multiple interpreters for use from a single interface

It comes with the Pythonwin IDE and works fine with other IDEs like
`SPE `_.

Plus many other features and bundled libraries.


What's New ?
==


Updated to wxPython 2.8.0, PIL 1.1.6, psyco 1.5.2, ctypes 1.0.1 and
pyEnchant 1.3.0.

Fixed bug so that the documentation will launch from the menu.

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

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


[ANN] rest2web 0.5.1

2006-12-19 Thread Fuzzyman
`rest2web 0.5.1 `_ is now
available. This is a minor feature enhancement release.

* `Download rest2web-0.5.1.zip
`_
* `Download rest2web-0.5.1.tar.gz
`_


What Is rest2web?
=

Maintaining websites or project documentation in HTML is a pain.
**rest2web** takes out the pain, and brings back the joy. {sm;:wink:}

**rest2web** is a simple tool that lets you build your website from a
single template (or as many as you want), and keep the contents in
`ReStructured Text `_. (You can still
keep pages in HTML if needed.)

It has an easy to us templating system, with embedded Python for
unlimited flexibility and no new templating language to learn. It has
built in functions or creating sidebars and navigation elements of a
site.


What's New in 0.5.1 ?


Added some extra debugging info to syntax errors in the templates.

Fixed odict and pathutils for Python 2.5 compatibility.

Added the 'promote_headers' option to the `config file
`_.

Added the ``sortpages`` method to the ``sections``. This sorts the
pages in a section (or all sections) alphabetically. You can also pass
in a custom sort function.

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

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


odict the Ordered Diction 0.2.2

2006-11-29 Thread Fuzzyman
After a break of almost a year there has been an update to `odict the
Ordered Dictionary `_.

The latest version is 0.2.2, with changes implemented by Nicola Larosa.

Despite over 700 downloads since May (plus 1300 as part of `pythonutils
`_) there have
been no bug reports, only improvements [#]_. {sm;:-)}

* `Quick Download
`_

What is odict?
==

**odict** is a pure Python implementation of an ordered dictionary. It
keeps keys in insertion order and allows you to change the order.
Methods (including iteration) that would return members in an arbitrary
order are now ordered.

There is also the `SequenceOrderedDict
`_
that behaves like a sequence as well as a dictionary. It allows slicing
and the keys, values and items methods are special sequence objects
(which are also callable and so behave as methods too).

What's New ?
==

Code
---

Removed the TODO and CHANGELOG sections in the tail docstring (they are
in the docs anyway).

Disabled warnings during tests.

Explicitly disabled tests execution on Python v.2.2 . In addition to
the slicing tests, other ones are failing.

Removed code duplication between the ``__init__`` and the ``update``
methods.

Misc. cleanup.

Also, based on code from `Tim Wegener`_:

- added the ``rename`` method;
- removed a ``has_key`` usage in the ``__setitem__`` method.


Documentation
--

Moved the ISSUES chapter from code's tail docstring to here.

Moved up the `Creating an Ordered Dictionary
`_
chapter.

Added prompts to the code examples and removed the superfluous print
statements (sometimes they were there, sometimes they were not).

Misc. cleanup.

.. [#] So either no-one is using it, or it's really good...

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

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


[ANN] Movable Python 2.0.0 Beta 2

2006-11-08 Thread Fuzzyman
I'm pleased to announce the release of `Movable Python 2.0.0 Beta 2
`_.

There are now updated versions for Python 2.2 - 2.5, the Mega-Pack
[#]_, and the free trial version.

The most important changes in this release are :

* Fixes for Pythonwin. The 'run' button and 'grep' dialog now work.
* You can now specify a directory for config files.
* The environment programs are run in is no longer pre-populated with
variables. The **Movable Python** variables are now in a module called
``movpy``.

You can see the full `changelog
`_ below.

You can download the updated version from :

`Movable Python Download Pages
`_

You can get the free trial version, from

`Movable Python Demo & Other Files
`_


What is Movable Python
==

**Movable Python** is a distribution of Python, for Windows, that can
run without being installed. It means you can carry a full development
environment round on a USB stick.

It is also useful for testing programs with a 'clean Python install',
and testing programs with multiple versions of Python.

The GUI program launcher makes it a useful programmers tool, including
features like :

* Log the output of all Python scripts run
* Enable Psyco for all scripts
* Quick Launch buttons for commonly used programs
* Configure multiple interpreters for use from a single interface

It comes with the Pythonwin IDE.

Plus many other features and bundled libraries.


What's New ?
==


The changes in version 2.0.0 Beta 2 include :

(Many thanks to Schipo and Patrick Vrijlandt for bug reports, fixes and
suggestions.)

Updated to Python 2.4.4 and wxPython 2.7.1

Fixed the bug with pylab support.

Fixed problem with global name scope in the interactive interpreter.

Everything moved out of the default namespace and moved into a module
called 'movpy'. This contains :

* ``filename`` = the path to the script we are running (the executable
in interactive mode)
* ``filedir`` = the directory that script is in (None when in
interactive mode)
* ``movpydir`` = the directory of the movpy executable
* ``curdir`` = the cwd from which we have been called
* ``configdir`` = the directory where config files are accessed from
* ``libdir`` = the 'lib' directory that modules/packages are contained
in
* ``commandline`` != '' if '-c' was used
* ``go_interactive`` = True if '-i' was set.
* ``interactive`` = True if we are in an interactive session
* ``interactive_mode`` is a function to enter interactive mode

``interactive_mode(localvars=None, globalvars=None, IPOFF=False,
argv=None)``

* ``movpyw`` = True if we are running under movpyw rather than movpy

The docs menu option will now launch the local version if available.

Logfile is now closed using 'atexit' (should be closed *after* other
'atexit' functions finish).

Logfile is flushed after every write to keep it in sync.

A new command line option to specify the config file directory.

``movpyw --config ~\movpyfiles\config``

(The '~' is expanded to mean the user directory.)

Fix for grep in Pythonwin IDE.

Fix so that 'run' works in Pythonwin. (Browse button is disabled.)



.. [#] The `Mega-Pack
`_ is all the
interpreters bundled together. It comes pre-configured so that you can
test programs with any version of Python (including IronPython) from a
single interface.

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

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


[ANN] Movable IDLE 0.1.0

2006-10-23 Thread Fuzzyman
There is now an experimental version of **Movable IDLE** available,
this is an off-shoot of the `Movable Python
`_ project.

**Movable IDLE**, version 0.1.0 can be downloaded (free) from :

`Movable IDLE Download
`_

(Same place as the trial version of Movable Python.)

**Movable IDLE** is a portable distribution of IDLE, the Python IDE,
for Windows.

The homepage of Movable IDLE is :

   http://voidspace.org.uk/python/movpy/movableidle.html

This can be run without installing, and at only fifteen megabytes
uncompressed it can be run from a USB stick or memory card.

It comes with the full Python standard library, and should be capable
of running almost any program that can be run with IDLE. Hopefully this
will be useful for educational and experimental purposes.


Limitations


**Movable IDLE** does not have all the clever trickery that **Movable
Python** does. This means that the `win32
`_ extensions, or any program
that uses ``imp.find_module`` are unlikely to work. It also won't work
with programs that have another event loop, like other GUI toolkits.

If you need these features, try `Movable Python`_.

On the other hand, if you do find bugs or restrictions, post them to
the `Movable Python Mailing List
`_ and it may be possible to fix
them. This is the right place to post feedback and suggestions as well.


License
==

**Movable IDLE** is copyright *Michael Foord*, 2006. It is free, but
not Open Source.

You are free to copy and distribute **Movable IDLE**, but not to charge
for it. It may not be included in any distribution which charges
directly or indirectly, without express permission.

The following sections of the `Movable Python License
`_ also apply :

* *Disclaimer*
* *Limitations*
* *Restricted Uses*

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

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


[ANN] rest2web 0.5.0 Final

2006-10-15 Thread Fuzzyman
At last `rest2web 0.5.0 Final
`_ is released.

Quick download links:

* `rest2web-0.5.0.zip
`_
* `rest2web-0.5.0.tar.gz
`_

This release has several bugfixes, as well as some interesting new
features, over previous releases.

Release Summary
=

Important changes since the last release (0.5.0 Beta 1) include:

* All the standard `macros
`_ are now
built-in. There is no need for a separate macro file if you are only
using the standard ones.
* A new 'skiperrors' config file / command line option. Errors in
processing a file can now be ignored and rest2web will attempt to
continue processing.
* A config file is no longer required in force mode. (The current
directory is used as the source directory and html output is put into a
subdirectory called 'html'.)
* The restindex and uservalues block may now be in a ReST comment. This
means that rest2web source documents with a restindex can still be
valid ReStructured Text documents.


What is rest2web
=

**rest2web** is a tool for creating websites, parts of websites, and
project documentation.

It allows you to keep your site contents in `ReStructured Text
`_ or {acro;HTML;HyperText Markup
Language}.

Using a flexible templating system, using embedded Python code for
unlimited flexibility and no new templating language to learn, it can
then output the HTML for your site.

**rest2web** is extremely flexible, with many optional features, making
it suitable for building all kinds of websites.

See the `main page `_ for
links to some of the sites built with rest2web.


What's New ?
==

You can find the full changelog: `here
`_.

Paths in the ``file`` keyword and in the config file now have '~'
expanded. This
means they can use paths relative to the user directory. (Plus the
'colorize' and
'include' macros.)

Added 'skiperrors' config file / command line option. Errors in
processing a file can now be
ignored and rest2web will attempt to continue processing.

Fixed bug where non-ascii uservalues would blow up.

There was a bug in handling tabs in embedded code. This has been fixed.

The macro system has been revamped. All the standard macros are now
built in
as default macros. The modules needed by the default macros are also
now built
into rest2web. You can still add your own macros, or override the
default ones,
by supplying an additional macros file.

``Macro Paths`` section added to the config file for configuring the
default
macros ``smiley`` and ``emoticon``.

The initial message printed by rest2web has been changed to ``INFO``
level, so
that it is not displayed by the ``-a`` and ``-w`` verbosity levels.

The namespace and uservalues for each page are now available to the
macros,
using global variables ``uservalues`` and ``namespace`` (dictionaries).
This
means you can write macros that are customised for individual pages.

A config file is no longer required in force mode. (The current
directory is
used as the source directory and html output is put into a subdirectory
called
'html'.)

The restindex and uservalues block may now be in a ReST comment. This
means
that rest2web source documents with a restindex can still be valid
ReStructured
Text documents.

Fixed imports in the gallery plugin. (Thanks to Steve Bethard.)

Changed over to use the latest version of
`StandOut `_.

rest2web now exits with an error code corresponding to the number of
warnings and errors generated.

Errors and warnings are now output on ``sys.stderr``.

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

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


[ANN] Movable Python Mega-Pack and MovablePython.NET

2006-09-18 Thread Fuzzyman
One of the most important new features of `Movable Python
`_ is that it can work with
multiple interpreters. That can be other distributions of **Movable
Python**, an installed version of Python, IronPython, or in fact any
executable (or batch file or a Python script) [#]_.

If you have multiple **Movable Python** distributions, you can test
programs with any version of Python from a single interface. You can
also use the same interface to launch interactive interpreter sessions
for any of the interpreters.

The **Movable Python Mega-Pack** comes with all four distributions of
Movable Python (Python 2.2, 2.3, 2.4 and 2.5). It also comes with
`IronPython 1.0 Final `_. It is
pre-configured with these interpreters (the default is Python 2.4).

For a screenshot of the mega-pack and MovablePython.NET, see :


http://www.voidspace.org.uk/python/weblog/arch_d7_2006_09_16.shtml#e464

The **Movable Python Mega-Pack** costs £11.99 [#]_, around the cost of
two and a half distributions. You also get a couple of freebies. You
can obtain the Movable Python Mega-Pack from :

`The Movable Python Groups Page
`_

`Nanagram `_ the
anagram maker is a fun program for making anagrams. It's especially fun
to make anagrams of your friends names.

This normally costs £5 for the full version.

The other freebie is **MovablePython.NET**. This is an experimental
build of Movable Python, written in C#. It isn't a stand-alone
interpreter, but a GUI launcher.

It lacks many of the features of the 'standard' Movable Python, but has
a nicer GUI and a few extra features.

These include :

* Auto detecting any installed Python
* Assigning system wide hot keys to scripts
* Drag and drop

This version will probably provide the basis of a GUI update for the
next version of Movable Python. If you purchase the Mega-Pack, you have
full access to all the individual distributions (including free updates
for a year), **Nanagram** and **MovablePython.NET** and a single
package containing all the distributions. This is pre-configured, and
weighs in at 80mb.

.. [#] So Movable Python can act as a GUI for any program, including
passing command line arguments. You may
   never need to use the command line again.
.. [#] Once Python 2.5 final is released, this will also be raised: so
be quick.

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

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


[ANN] Movable Python 2.0.0 Beta 1

2006-09-18 Thread Fuzzyman
There is a new version of `Movable Python
`_
available.

This is available for **Movable Python** for Python 2.2.3, 2.3.5, 2.4.3
and 2.5rc2 from :

`The Movable Python Groups Page
`_



What is Movable Python
==

Movable Python is a portable distribution of Python for windows,
designed to be run off a USB stick or computers that don't have Python
installed. It features an IDE (Pythonwin and IDLE are included - but
you can also use SPE), and a GUI launcher.

It can be configured to use multiple interpreters from a single
interface, including acting as a GUI for any executable.

It has a host of other features (like logging all output from files,
enabling psyco for all scripts, etc).

See the following link for a list of all the new features in Movable
Python 2.0.0 :


http://www.voidspace.org.uk/python/weblog/arch_d7_2006_07_15.shtml#e390

For an overview of the most important features (with screenshots) see :


http://www.voidspace.org.uk/python/weblog/arch_d7_2006_07_22.shtml#e396

Other uses for Movable Python include testing programs with different
versions of Python, and providing clean install 'sandboxes' for testing
programs. It is also an ideal launcher for IronPython.


What's New in 2.0.0 Beta 1


'Console normal' didn't work for the Python 2.5 distribution (and
possibly
others, although it seemed to work with Movable Python for Python 2.4).
This is now fixed.

Added console handling for IronPython (if the interpreter is
'ipy.exe' or 'ipyw.exe' then the appropriate one will be
used when 'Console handling Normal' is selected.)

The IPOFF (IPython off) option wasn't acknowledged when launching
the interactive interpreter from the GUI.

A bug in py2exe 0.6.5 (an incompatibility with Python 2.5) would
cause the interactive interpreter to exit after an exception, and
possibly other problems. This is fixed.

Got rid of the error dialog in movpyw and the 'movpyw.exe.log' file.

Changed logging to 'Log Mode' in main menu.

Fixed configuration for IDE for Python 2.5 version.

Movable Python now exits with the same exit code as any script
it runs.

Improvements in traceback handling.

.. note::

Pythonwin for Python 2.4 and 2.5, may need ``mfc71.dll``.

You can download this from: `here (534k)
`_.

This will automatically be included in future distributions.
{sm;:oops:}

It's still not too late to buy Movable python for Python 2.5 at the
reduced price, before the release of
Python 2.5 final.

There are still some issues with Pythonwin to be fixed, and the
documentation update, before
**Movable Python 2.0.0 Final** can be released.

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

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


[ANN] StandOut 3.0.0 Released

2006-08-27 Thread Fuzzyman
There is a new release of `StandOut
`_, the
flexible output object. {sm;:-)}

This version is a complete rewrite, with a *full* set of `unit tests
`_.

*standout* is a module that provides a single class: ``StandOut`` - the
flexible output object. It provides a simple way of adding logging to a
program, and an easy way of adding verbosity levels.

By assigning a priority level to each message, it makes it trivially
easy to allow your users to choose their own verbosity level. Verbosity
levels for normal output and the log file can be different.

Alternatively you can just use StandOut for logging ``stdout`` and
``stderr`` to a file.

As an added bonus it includes a software unbuffered mode. In this mode
all writes to ``stdout`` and ``stderr`` are flushed immediately.

Quick download links :

* `standout.py (8.5kB)
`_
* `standout.zip (108kB)
`_

The zip file includes full documentation and unit tests.

Basic usage, for logging all output on the standard output and standard
error streams to a file :

.. raw:: html

{+coloring}

from standout import StandOut
stout = StandOut('log.txt')

# body of program
main()

# then close the log file
# and restore normal output/error streams
stout.close()

{-coloring}

StandOut is currently used in both `Movable Python
`_ and `rest2web
`_.

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

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


[ANN] rest2web 0.5.0 Beta 1 Released

2006-08-07 Thread Fuzzyman
After five months there is finally a new release of `rest2web
`_. This is **0.5.0 Beta
1**.

There are an awful lot of changes and improvements, but there shouldn't
be any backward compatability issues with previous versions.

* `rest2web 0.5.0Beta1 zip
`_
* `rest2web 0.5.0Beta1 tar.gz
`_

One of the best changes, is the addition of a new `Quickstart Guide
`_ by
*Andrew Ittner*.


What is rest2web ?
==

**rest2web** is a tool that generates html files for websites, parts of
websites, or project documentation. It allows you to keep your page
content in `ReST `_ format, and has a
simple but flexible templating system.

It can automatically build index pages, 'breadcrumbs' and sidebars for
your site. By providing access to a data-structures that represents
your site (for example `indextree and thispage
`_),
you can easily build in extra functionality.


What's New in 0.5.0 ?


The full changelog is below. As you can see a *lot* has changed. I will
try to summarise the most important changes first :

* Addition of 'Quickstart Guide'
* rest2web can now build a site from just a directory of ReST
documents; no need tosupply *restindexes* or index pages if you don't
want to {sm;:-)}
* Global uservalues (effectively variables available in every page) can
be set in the `Config File
`_ or at
the command line
* Lots of new `command line options
`_
available, including setting verbosity levels (make rest2web quieter !)
* New `Standard Functions
`_,
especially 'include' for better customisation of templates (e.g. for
defining a different footer for some directories)
* More information available in the namespace and indextree (source
filename, target filename, full url etc)

Plus a host of bugfixes and minor improvements.



Version 0.5.0 Beta 1 2006/08/06


Updated docs.

Moved 'pythonutils' distribution into the 'rest2web' directory for ease
of
packaging.

Added a ``#!`` line to ``r2w.py``.

All rest2web imports now absolute imports.

Added 'quickstart.txt' thanks to Andrew Ittner.

Added an ``include`` standard function, this can be used to nest
templates or
customise sections. (It will walk up the directory tree looking for the

file you specify and takes an optional argument if the file doesn't
exist -
useful for templates that allow subdirectories to add to the template,
or
even wrap the body.)

``make_dist.py`` now takes ``nopause`` as a command line argument
(``make_dist.py``
is in `Subversion`_ for creating distributions.)

Default breadcrumb divider is now '>'. Breadcrumbs are also output
in HTML
on separate lines for readability.

Fixed bug when ``final_encoding`` is ``None``.

Default config file is now called ``r2w.ini``. ``rest2web.ini`` will
still be
supported until the next release.

Fixed bug with ``standerr`` where no logfile is used.

``print_crumbs`` can now take ``None`` for the dividers.

Added 'globalValues' to the namespace. (Available in templates and
pages for
storing values which can be accessed across all pages.)

Added 'uservalues' and 'restindex' into each page in the indextree.

A new command line 'nopause' option to override the config file.

Change so that variables (and functions etc) defined in templates can
be used
in single code blocks (like ``<% new_name %>``).

Added more information about pages to the namespace and indextree. The
new
values are :

'source_file': The source file for the page

'current_dir': The current directory being processed - this can be
turned
   into an absolute filepath by doing
``os.path.join(os.getcwd(), current_dir)``

'target_dir': The target file directory (as an absolute file path)
being
  rendered into. Note if the file has a target
specified it may
  not be put in this directory. Use
``os.path.dirname(target_file)``
  instead.

'full_page_url': The full url (starting with '/') for the current
page

'target_file': The full filename of the page being rendered

Fixed bug where 'thispage' wasn't set on pages in the indextree. (Value
should
be ``True`` for the current page.)

Fixed bug where 'thispage' (in the namespace) would sometimes be
incorrectly
``None``.

Cached template files for faster execution.

Special thanks to Martin Krafft for bugfixes and suggestions.



Version 0.5.0 alpha 2006/05/01
==

**rest2web** can now build a site with

[ANN] Firedrop 0.2.2

2006-06-07 Thread Fuzzyman
`Firedrop 2 0.2.2 `_ is
now available.

You can download it from :

`Firedrop-0.2.2.zip
`_

This is an important release with several new features, and
contributions from new developers joining the team.

What is Firedrop2 ?
==

**Firedrop2** is a free, cross-platform blogging tool written in
`Python `_. It keeps your blog source files on
your
computer, making it a *clientside* tool. This means you control your
blog,
and can easily move it from one server to another, with no risk of
losing data.
It also means you can manage your blog *offline*.

It is fully open source, and has all the features you expect from a
modern
blogging program :

* {acro;RSS;Really Simple Syndication} feed generation
* Categories
* Automatic archive generation
* A powerful set of plugins, including spellchecker, emailer, and
themes
* Entries can be made in text, {acro;HTML}, {acro;ReST}, textile,
sextile or markdown markup
* HTML templating system and macros for all sorts of tricks
* Built-in {acro;FTP} capability for uploading your blog to a server
* Integrated blog comments support (Through Haloscan_)
* Because it's written in Python, it is easy to extend Firedrop or
create new   plugins for it


What's New ?
==

This release has a lot of bugfixes and changes. Hopefully I've
remembered the important ones. {sm;:-)}

* Fixed a bug with categories and the unicode wxPython
* Added the Themes plugin by Stewart Midwinter [#]_
* RSS feeds can be generated for all the categories, by Davy Mitchell
* Firedrop now saves user data in the users home (checking sensibly for
directories where it has write permissions)
* Now includes support for the `Haloscan `_
comments system.
* Addition of the Firedrop2 banner by Stewart Midwinter.

Plus other code improvements and bug fixes.

Their is already work being done on the next release. This will include
features like :

* Faster build time through entry HTML caching
* Blog statistics report generation
* Tagging
* A Podcast plugin
* Extension to the plugin protocol for extra plugin capabilities

.. [#] The Themes plugin requires version 0.3.32 of `Wax
`_, or more recent.

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

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


[ANN] ConfigObj 4.3.2 Released

2006-06-04 Thread Fuzzyman
`ConfigObj 4.3.2 `_
has just been released.

You can download it from `configobj-4.3.2.zip
`_.

ConfigObj is a config file reader and writer. It has *many* features,
but the main one is that it is simple to use. Its features include :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies
* Full Unicode support
* A powerful ``unrepr`` mode for storing basic datatypes

This is a bugfix and minor feature enhancement release. There is a
bugfix in `unrepr mode
`_, and
exception handling has been improved.

The full changelog is :

Changed error handling, if parsing finds a single error then that
error will be re-raised. That error will still have an ``errors`` and a
``config`` attribute. That means the error will be more comprehensible.

Fixed bug where '\n' terminated files could be truncated.

Bugfix in ``unrepr`` mode, it couldn't handle '#' in values.
(Thanks to Philippe Normand for the report.)

As a consequence of this fix, ConfigObj doesn't now keep inline
comments in ``unrepr`` mode. This is because the parser in the
`compiler package `_ doesn't
keep comments. {sm;:-)}

Error messages are now more useful. They tell you the number of
parsing errors and the line number of the first error. (In the case of
multiple errors.)

Line numbers in exceptions now start at 1, not 0.

Errors in ``unrepr`` mode are now handled the same way as in the
normal mode. The errors stored will be an ``UnreprError``.

There is also a proposal to support `PEP 292
`_ string substitution (which
is much better). This will be the target of the next release of
**ConfigObj**.

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

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


[ANN] Movable Python 1.0.2

2006-05-01 Thread Fuzzyman
`Movable Python 1.0.2 `_ is
now available.

This release if for the Python 2.4 distribution of **Movable Python**,
and is now available for `download
`_.

Features new to this release include :

* Now built with Python 2.4.3.

* Other updated modules include :

- pywin32 build 208
- ctypes 0.9.9.6
- wxPython 2.6.3.2
- Firedrop 0.2.1
- ConfigObj 4.3.1
- Wax 0.3.33

* Scripts (and ``customize.py``) are now executed in a specific
namespace, no
  more movpy cruft.
* When entering interactive mode (``movpy -``), any *additional*
command line
  arguments are passed to IPython.
* ``imp.find_module`` has been fixed to work with modules contained in
the
  zipfile. This fix doesn't write any temporary files, but
``imp.load_module``
  has been patched to accept a ``StringIO`` instance.
* Built in support for *matplotlib* interactive sessions. (``movpy -
pylab``)
* Verified that ``__future__`` statements are handled correctly.
* New look documentation and website.

To try the new `matplotlib `_
support, you'll need the `matplotlib files
`_ in your ``lib/``
directory. You can then run the following at the command line :

``movpy.exe - -pylab``

This should drop you straight into a IPython session, with pylab
enabled.

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

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


[ANN] ConfigObj 4.3.1 & validate 0.2.2

2006-04-29 Thread Fuzzyman
`ConfigObj 4.3.1 `_
and `validate 0.2.2
`_ are now available.

These are both minor bugfix/feature enhancement releases.


What is New in ConfigObj ?

Changes since **ConfigObj** 4.3.0 :

* Added ``validate.py`` back into ``configobj.zip``. (Thanks to Stewart
Midwinter)

* Updated to `validate.py`_ 0.2.2.

* Preserve tuples when calling the ``dict`` method. (Thanks to Gustavo
Niemeyer.)

* Changed ``__repr__`` to return a string that contains ``ConfigObj({
... })``.

* Change so that an options dictionary isn't modified by passing it to
ConfigObj. (Thanks to Artarious.)

* Added ability to handle negative integers in ``unrepr``. (Thanks to
Kevin Dangoor.)


What is New in validate ?

Changes since **validate** 0.2.1 :

* Addressed bug where a string would pass the ``is_list`` test. (Thanks
to Konrad Wojas.)


What is ConfigObj ?

**ConfigObj** is a simple but powerful config file reader and writer:
an *ini file round tripper*. Its main feature is that it is very easy
to use, with a straightforward programmer's interface and a simple
syntax for config files. It has lots of other features though :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies
* Full Unicode support
* A powerful ``unrepr`` mode for storing basic datatypes


What is validate ?

`validate.py `_ is a
module for validating values against a specification. It can be used
with **ConfigObj**, or as a standalone module.

It is extensible, and as well as doing type conversion from strings,
you can easily implement your own functions for transforming values in
any way you please.

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

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


ANN: ConfigObj 4.3.0

2006-04-07 Thread Fuzzyman
`ConfigObj 4.3.0 `_
is now released.

This has several bugfixes, as well as *several* major feature
enhancements.

You can download it from :

   `ConfigObj-4.3.0.zip 244Kb
`_

.. raw:: html

{title;What is ConfigObj ?}

**ConfigObj** is a simple but powerful config file reader and writer:
an *ini
file round tripper*. Its main feature is that it is very easy to use,
with a
straightforward programmer's interface and a simple syntax for config
files.
It has lots of other features though :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies
* Full Unicode support
* A powerful ``unrepr`` mode for storing basic datatypes

.. raw:: html

{title;What's New ?}

Moved the tests and the CHANGELOG (etc) into a separate file. This has
reduced the size of ``configobj.py`` by about 40%.

Added the ``unrepr`` mode to reading and writing config files. Thanks
to Kevin Dangoor for this suggestion.

Empty values are now valid syntax. They are read as an empty string
``''``.
(``key =``, or ``key = # comment``.)

``validate`` now honours the order of the configspec.

Added the ``copy`` mode to validate. Thanks to Louis Cordier for this
suggestion.

Fixed bug where files written on windows could be given ``'\r\r\n'``
line
terminators.

Fixed bug where last occurring comment line could be interpreted as the
final comment if the last line isn't terminated.

Fixed bug where nested list values would be flattened when ``write`` is
called. Now sub-lists have a string representation written instead.

Deprecated ``encode`` and ``decode`` methods instead.

You can now pass in a ConfigObj instance as a configspec (remember to
read
the configspec file using ``list_values=False``).

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

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


[ANN] Firedrop 0.2.1

2006-03-31 Thread Fuzzyman
Firedrop 0.2.1 has just been released.

http://www.voidspace.org.uk/python/firedrop2/

A bugfix release.

* Removed mistaken dependency on `pythonutils
`_
* Fixed bug where cancelling the new site dialog would still report
that the
  site was created

**Firedrop2** is a cross-platform blogging tool written in
`Python `_. It keeps your blog source files on
your
computer, making it a *clientside* tool. This means you control your
blog,
and can easily move it from one server to another, with no risk of
losing data.
It also means you can manage your blog *offline*.

It is fully open source, and has all the features you expect from a
modern
blogging program :

* {acro;RSS;Really Simple Syndication} feed generation
* Categories
* Automatic archive generation
* A powerful set of plugins, including spell checker and emailer
* Entries can be made in text, {acro;HTML}, {acro;ReST}, textile,
sextile
  or markdown markup
* HTML templating system and macros for all sorts of tricks
* Built in {acro;FTP} capability for uploading your blog to a server
* Because it's written in Python, it is easy to extend Firedrop or
create new
  plugins for it

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

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


[ANN] Firedrop 0.2.0 - The Python Blog Client

2006-03-27 Thread Fuzzyman
It has finally happened, the release of `Firedrop 0.2.0
`_.

The impatient can download the new release here :

`Firedrop 0.2.0 (1.3mb)
`_

.. note::

The first time you run version 0.2.0 it will convert your weblog
config file to the new format.

**Firedrop2** is the Python blog client with a host of features. These
include :

* RSS feed generation
* Categories
* Automatic archive generation
* A powerful set of plugins, including spell checker and emailer
* Entries can be made in text, HTML, ReST, textile, sextile or markdown
markup
* HTML templating system and macros for all sorts of tricks
* Built in FTP capability for uploading your blog to a server
* Because it's written in Python, it is easy to extend Firedrop or
create new plugins for it

This new release has been made possible by the hard work of `Stewart
Midwinter `_.

The changes and new features include :

* Firedrop will now start up by opening a default site.
* You can set the default site using the GUI.
* Main file name changed to ``firedrop.pyw``
* `ConfigObj `_ is
now used to edit all the config files.
* Full support for all style elements (e.g. underline, bold) in four
  major markup formats: ReST, Sextile, Textile, Markdown (plus HTML).
* New entries are created in a separate dialog that takes care of the
markup.
* Links are available to websites for the markup styles.
* You can reset the app to a null site, and/or delete all entries.
* You can force a full build of your site, or just update your site.
* You can now create sites serving Article Collections or Items Lists
(e.g. FAQs)
  in addition to Weblogs.
* Firedrop2 now runs on Mac OS X and Linux in addition to Windows.
* You can view logfile contents using the GUI.
* Documentation has been updated to reflect these changes.

There is a roadmap for future releases on the `Firedrop2 Trac Site
`_.

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

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


[ANN] ConfigObj 4.2.0

2006-02-19 Thread Fuzzyman
`ConfigObj 4.2.0 `_
is now available.

The main improvements are *full* Unicode support,a s well as the
addition of the 'convenience' `Section Methods
`_

* *as_bool*
* *as_int*
* *as_float*

More compelling reasons to choose **ConfigObj** for reading and writing
config files in Python.

What's New ?
==

The full changelog is :

Removed ``BOM_UTF8`` from ``__all__``.

The ``BOM`` attribute has become a boolean. (Defaults to ``False``.) It
is *only* ``True`` for the ``UTF16`` encoding.

File like objects no longer need a ``seek`` attribute.

Full unicode support added. New options/attributes ``encoding``,
``default_encoding``.

ConfigObj no longer keeps a reference to file like objects. Instead the
``write`` method takes a file like object as an optional argument.
(Which will be used in preference of the ``filename`` attribute if that
exists as well.)

utf16 files decoded to unicode.

If ``BOM`` is ``True``, but no encoding specified, then the utf8 BOM is
written out at the start of the file. (It will normally only be
``True`` if the utf8 BOM was found when the file was read.)

File paths are *not* converted to absolute paths, relative paths will
remain relative as the ``filename`` attribute.

Fixed bug where ``final_comment`` wasn't returned if ``write`` is
returning a list of lines.

Deprecated ``istrue``, replaced it with ``as_bool``.

Added ``as_int`` and ``as_float``.

What is ConfigObj ?
===

**ConfigObj** is a simple but powerful config file reader and writer:
an *ini file round tripper*.

It's main feature is that it is very easy to use, with a
straightforward programmer's interface and a simple syntax for config
files. It has lots of other features though. It is intended as a more
powerful (but simpler to use) replacement for `ConfigParser
`_.

It's features include :

* Nested sections (subsections), to any level
* List Values
* Multiple Line Values
* Full Unicode support
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies

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

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


[ANN] Movable Python Trial Version

2006-02-18 Thread Fuzzyman
Hot on the heels of `Movable Python 1.0.1
<http://www.voidspace.org.uk/python/movpy/>`_, is the release of a free
trial version of **Movable Python**.

This is the full distribution for Python 2.3.5. To download (and play),
visit `Movable python Demo
<http://www.tradebit.com/filedetail.php/734815>`_.

You can obtain the full version from the `Groups Page
<http://voidspace.tradebit.com/groups.php>`_.

It is set to expire on the 22nd May, and displays a nag screen on
startup. Other than that, it is the full version. Have fun.

Fuzzyman

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

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


[ANN] Movable Python 1.0.1

2006-02-15 Thread Fuzzyman
I'm pleased to be able to announce the release of `Movable Python 1.0.1
`_. This includes the
release of **Movable Python** for Python 2.2.

To obtain it, visit the `Movable Python Shop
`_.

Existing users of Movable Python can go to the groups area and simply
download an updated copy.

.. note::

For a heads up about possible features in the *next* version of a
Movable Python, visit the `Voidspace Techie Blog
`_.

What's New ?
==

Added support for the ``-m`` command line option. This works for
modules contained within the ``library.zip``, as well as other modules
on ``sys.path``.

**Movable Python** now *ignores* (with warnings) the unsupported Python
command line options.

Error messages are now printed to ``sys.stderr``.

Can run '.pyc' and '.pyo' files.

``customize.py`` now run when launching an interactive interpreter.

Renamed the function to go interactive to ``interactive_mode``.

New variable available in ``customize.py``. ``interactive``, this is
``True`` if launching an interactive interpreter. This allows you to
customize the environment differently for interactive sessions.

Add the ``lib`` directory (etc) to ``sys.path`` before entering
interactive mode. (BUGFIX)

``pywin32`` extensions now import properly (even on machines that don't
have them installed). (BUGFIX) {sm;:oops:}

Added the extra files for `Firedrop2 Macros
`_.

Changes for Python 2.2 compatibility. Distribution for Python 2.2
built.

What is Movable Python ?
===

**Movable Python** is a distribution of Python for Windows that doesn't
need to be installed. It easily fits onto a USB memory stick. Python on
a stick.

It is integrated with SPE, the Python IDE, to make **Movable Python** a
portable Build, Test, and Run environment. It has a nice GUI to launch
programs and control its behaviour.

Movable Python is useful in the following situations:

* Machines where you can't install programs.
* Where you need a portable 'Build, Test, and Run' Python environment.
* Having several versions of Python on the same machine for
forward/backward compatibility testing.
* Easily deploying Python scripts without having to install Python.
* Try before you buy - test Python without having to install it,
including new versions .
* 'Python Runtime Environment'. '``.py``' files can be associated with
movpy.

For more information, see `An Introduction to Movable Python
`_.


Known Issues
==

* There are problems with the ``pywin32`` extensions and Python 2.2.
They are included but may not all function correctly.
* ``-m`` doesn't work with modules in ``library.zip`` under Python 2.2.
This may or may not be resolvable.
* **Movable Python** doesn't yet handle ``from __future__ import ...``
statements in scripts that are run. This will be fixed.

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

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


Movable Python 1.0.0 for Python 2.3 & 2.4

2006-02-03 Thread Fuzzyman
It's finally happened, `Movable Python
`_ is finally released.

Versions for Python 2.3 & 2.4 are available from `The Movable Python
Shop `_.

The cost is £5 per distribution, payment by PayPal. £1 from every
distribution goes to support the development of `SPE
`_, the Python IDE.

This gives you free support (via the `Movable Python Mailing List
`_), and access to updates, for a
year.

There is a minor issue with the Python 2.2 version. This will be fixed
and released in the next few days. In the meantime the previous version
(0.4.6) is available for download from the shop. If you purchase this
distribution your year will run from the date of the release of 1.0.0.

Paying for **Movable Python** supports the development of the other
Open Source `Voidspace Python Projects
`_.


What is Movable Python ?
===

**Movable Python** is a distribution of Python for Windows that doesn't
need to be installed. It easily fits onto a USB memory stick. Python on
a stick.

It is integrated with SPE, the Python IDE, to make **Movable Python** a
portable Build, Test, and Run environment. It has a nice GUI to launch
programs and control its behaviour.

Movable Python is useful in the following situations:

* Machines where you can't install programs.
* Where you need a portable 'Build, Test, and Run' Python environment.
* Having several versions of Python on the same machine for
forward/backward compatibility testing.
* Easily deploying Python scripts without having to install Python.
* Try before you buy - test Python without having to install it,
including new versions .
* 'Python Runtime Environment'. '``.py``' files can be associated with
movpy.

For more information, see `An Introduction to Movable Python
`_.


What's New ?
==

Changes since version 0.4.6.

Completely new method for running files. This means you can launch
multiple programs from the GUI.

Lots of new libraries and tools included. Virtually all the included
tools have had version upgrades since the last release.

The GUI does a lot more :

* Version number and Python version displayed on the GUI
* You can pass arguments to your programs
* It remembers the last directory you ran a program from
* You choose if launched programs have a console box or not
* You can configure the options programs are run with
* You can edit the default options
* Four configurable Quick Launch buttons
* You can launch SPE from the GUI
* You can launch the documentation (About)
* You can launch an interpreter console
* You can close the GUI without having to launch a program or go to the
interpreter

The following (command line) options are new :

* ``f`` - run script in it's directory
* ``b`` - pause after running script
* ``o`` - override default options
* ``die`` - get rid of GUI after running
* ``k`` - run with console from movpyw
* ``koff`` - run without console from movpy

Complete documentation rewrite.

Docs are now built with `rest2web
`_.

``movpyw.exe`` is now included in the Python 2.2 distribution.

Bug fixed where first command line argument to your program was always
lost. {sm;:oops:}

Bug fixed so that ``IPOFF`` actually works now.

Bug fixed so that ``-p`` in ``config.txt`` now works.

Lots of other minor changes and improvements. {sm;:-)}


Known Issues
==

There are some (minor) known issues with version 1.0.0. These will be
fixed soon.

* Version for Python 2.2 not yet available.
* Possible issue running ``movpy.exe`` from long file paths on Windows
98.
* The ``lib`` directory is not added to ``sys.path`` before entering
interactive mode.

There are also several items in the `TODO
`_ list. Many of
these are future ways that **Movable Python** could be developed.

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

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


ANN: Firedrop2 0.1.3 the Python Blog Client

2006-01-17 Thread Fuzzyman
Firedrop2 has had a new release and a complete docs overhaul.

The release is a minor update, but the new tutorial will take you from
downloading and installing, through setting up your blog to making
entries.

http://www.voidspace.org.uk/python/firedrop2/

What's New ?
==

The new release contains a fix so that wxfiredrop.py can be run outside
the installed directory.

* Introduction & Download
* Getting Started
* Configuring Firedrop2
* Basic Templating
* Making Entries

For news and inforamtion, use the `Firedrop2 Mailing List
`_

What is Firedrop2 ?
==

Firedrop2 is a cross-platform blogging tool written in Python. It keeps
your blog source files on your computer, making it a clientside tool.
This means you control your blog, and can easily move it from one
server to another, with no risk of losing data. It also means you can
manage your blog offline.

It is fully open source, and has all the features you expect from a
modern blogging program :

* RSS feed generation
* Categories
* Automatic archive generation
* A powerful set of plugins, including spell checker and emailer
* Entries can be made in text, HTML, ReST, textile or sextile markup
* HTML templating system and macros for all sorts of tricks
* Built in FTP capability for uploading your blog to a server
* Because it's written in Python, it is easy to extend Firedrop or
create new plugins for it

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

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


ANN: Pythonutils 0.2.5

2005-12-19 Thread Fuzzyman
`Pythonutils 0.2.5
`_ is now
available.

**Pythonutils** is a pure-Python package containing several modules
that help with common programming tasks in Python.

This new release updates to :

* **ConfigObj** 4.1.0
* **odict** 0.2.1
* **validate** 0.2.1
* **pathutils** 0.2.4
* **cgiutils** 0.3.5

(Also included are standout and urlpath - which haven't been updated
since the last release).

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

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


Ordered Dictionary 0.2.1

2005-12-18 Thread Fuzzyman
There is a new version of `odict
`_ - the ordered
dictionary.

**What Is It ?**

This module provides two classes ``OrderedDict``, and
``SequenceOrderedDict``. The ordered dictionary is a dictionary-like
object (actually a subclass of the normal dictionary data type) that
keeps keys in insertion order.

This means it has all the normal dictionary methods. Methods that would
normally return values in an arbitrary order are now ordered.

You can specify and alter the order, through the setkeys method.

Because an ordered dictionary is something like a sequence, it also has
several sequence methods. The SequenceOrderedDict allows you to act on
the keys, values, and items directly - as if they were sequences. This
is convenient if you want to treated your object more like a sequence
than a dictionary.

**What Has Changed ?**

This is a major change since the *0.1.0* series. ``OrderedDict`` now
has several sequence methods - including allowing slicing, slice
assignment, and slice deletion.

.. note::

``OrderedDict`` *is* compatible with Python 2.2. Slicing isn't -
mainly because you can't index a seqeuence with a slice object in
Python 2.2.

It also has a subclass called ``SequenceOrderedDict`` that has custom,
callable sequence-like objects, for ``items``, ``keys``, and
``values``. You can call them liek the methods they replace, or act on
them directly as sequences to change the contents of your dictionary.

*Other changes:*

You can now test for equality and inequality with objects (except
for dictionaries for which it is undefined). This allows you to do
tests like : ::

OrderedDict() == False

Added the ``strict`` keyword, which raises a ``ValueError`` if you
do slice assignment with keys that are already in the dictionary.

Assignment to keys in ``SequenceOrderedDict`` is now only for
re-ordering the keys.

Fixed bug where slice assignment to keys could lose information.
(and optimised by slicing ranges to get the indexes we are assigning to
instead of indexing each key).

You change ``keys``, ``items``, and ``values`` through new methods
``setkeys``, ``setitems``, and ``setvalues`` methods.

Minor changes, thanks to Christoph Zwerschke for suggestions.

Added ``__deepcopy__`` method (previously deepcopy failed).

Changed use of slice to types.SliceType for Python 2.2.

Fixed bugs in ``__getattr__`` and popitem

Optimisation in ``OrderedDict.__init__`` when creating an instance
from an ``OrderedDict``.

Implemented new ``__repr__``.

Version 0.2.0

Added index to ``OrderedDict.popitem``

Implemented ``SequenceOrderedDict``, which has keys, items, values
as custom, callable, sequence objects.

By Michael Foord - from suggestions on comp.lang.python

Hidden the ``sequence`` attribute

Implemented slicing (including deleting a slice and assigning to a
slice)

Implemented sequence methods ``sort``, ``reverse``, ``insert``,
``index``.

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

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


ANN: ConfigObj 4.1.0 and Validate 0.2.1

2005-12-18 Thread Fuzzyman
 **ConfigObj 4.1.0** and **Validate 0.2.1** are now  available.
{sm;:-)}

ConfigObj and validate have both had moderately big updates.

**What are they ?**

`ConfigObj `_ is a
simple but powerful config file reader and writer: an *ini file round
tripper*. Its main feature is that it is very easy to use, with a
straightforward programmer's interface and a simple syntax for config
files.

It supportes nested sections, preserves the order of keys and sections,
list values, multiple line values, etc.

`validate `_
integrates with ConfigObj (but can also be used standalone) to check
that values meet a certain specification. This can be used to validate
a config file, *and* convert values to the expected type.

**What Has Changed?**

Configobj:

Added a ``merge`` method. This allows easy merging together of several
config files (e.g. merging user values on top of a default one).

A new ``flatten_errors`` function to turn the resutls dictionary from
``validate`` into a flat list of errors.

 Added merge, a recursive update.

 Added preserve_errors to validate and the flatten_errors example
function.

 Thanks to Matthew Brett for suggestions and helping me iron out
bugs.

 Fixed bug where a config file is all comment, the comment will now
be initial_comment rather than final_comment.

 Validation no longer done on the 'DEFAULT' section (only in the
root level). This allows interpolation in configspecs.

 Also use the new list syntax in validate 0.2.1. (For configspecs).


Validate:

A new list syntax for checks.


Fixed bug so we can handle keyword argument values with commas.

We now use a list constructor for passing list values to keyword
arguments (including default) : ::

default=list("val", "val", "val")

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

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


akismet 0.1.2, cgiutils 0.3.5, pathutils 0.2.3

2005-12-05 Thread Fuzzyman
Hello All,

A new release and two updates.

New akismet.py 0.1.2


Python Interface to the Akismet API
Version 0.1.2 4th December 2005
http://www.voidspace.org.uk/python/modules.shtml#akismet

`Akismet `_ is a web service for recognising
spam comments. It promises to be almost 100% effective at catching
comment spam. They say that currently 81% of all comments submitted to
them are spam.

It's designed to work with the `Wordpress Blog Tool
`_, but it's not restricted to that - so this is
a Python interface to the `Akismet API
`_.

You'll need a `Wordpress Key `_ to use it. This
script will allow you to plug akismet into any CGI script or web
application, and there are full docs in the code. It's extremely easy
to use, because the folks at akismet have implemented a nice and
straightforward {acro;REST;REpresentational State Transfer} API.

It also comes with an `example CGI
`_.

(Although the akismet feature of an "example positive" doesn't seem to
be working currently - there fault not mine :-)

You can read the full (Python) docs at :

* `akismet.py Docs
`_

Download it here :

*
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=akismet-0.1.2.zip


cgiutils 0.3.5 - pathutils 0.2.3
=

pathutils 0.2.3 November 26th 2005
cgiutils 0.3.5 November 26th 2005
http://www.voidspace.org.uk/python/recipebook.shtml#utils


These two modules contain functions and constants for *'general'* use.
They are
both included as part of the `Voidspace Pythonutils Package
`_ .
(A new release of pythonutils - containing these updated modules - is
due shortly).

**Pathutils** contains various functions for working with files and
paths. This
includes (amongst other thing) :

* Easy ways to iterate over files and directories
* A function to calculate a relative path from one location to another
* Several 'convenience' file reading/writing functions
* `py2exe `_ directory support
* A function for pretty printing file sizes
* A simple solution to cross-platform file locking
* Import from a specific location

See the `pathutils Homepage
`_.

**CGI utils** has (guess what... {sm;:?:}) various functions for use
with CGI.
It contains functions to do things that every CGI has to cope with.
They are
most useful for simple scripts, where a full blown framework would be
too
cumbersome.

It includes (amongst other thing) :

* Functions for receiving form submissions
* Cross platform functions to send emails (including creating
{acro;HTML}
  emails)
* A basic templating system
* A {acro;DNS;Domain Name System} blacklist lookup
* A function to generate a menu line for pages with lots of results

See the `cgiutils Homepage
`_.

Download them here :

*
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=utils.zip
(25k) (both modules)
*
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=pathutils.py
(19k)}
*
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=cgiutils.py
(20k)}

{small;The zip file has text versions of the docs for these two
modules.}

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

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


ANN: rest2web 0.4.0alpha

2005-11-14 Thread Fuzzyman
rest2web 0.4.0 alpha is now available.

http://www.voidspace.org.uk/python/rest2web/

What's New ?
==

See
http://www.voidspace.org.uk/python/rest2web/reference/changelog.html#version-0-4-0-alpha-2005-11-11

Lots of bugfixes and new features since the 0.3.0 release.

Includes a new gallery plugin (which will also function as a standalone
HTML gallery generator).
http://www.voidspace.org.uk/python/rest2web/reference/gallery.html

There is also an experimental windows executable version.

The documentation has been greatly improved, including a tutorial which
should get anyone up to scratch on the basics very quickly.
http://www.voidspace.org.uk/python/rest2web/tutorial.html

What is rest2web
=

**rest2web** is a tool for autogenerating wesites, or parts of
websites. It's main features are :

* Integrated with docutils.
* Automatically builds index pages and navigation links (sidebars and
{acro;breadcrumbs;Weird name for navigation links ?}).
* Embedded code in templates for unlimited expressiveness.
* Flexible macro system.
* Uses relative links, so sites can be viewed from the filesystem.
* Unicode internally - so you don't have to be. {sm;:-p}
* Includes features for multiple translations of sites.
* Built-in gallery creator plugin.
* The basic system is very easy to use.
* Lots of powerful (optional) features.

The content can be stored as HTML, or in reST format; in which case the
HTML will be generated using docutils. **rest2web** inserts each page
into a template, and automatically creates index pages for sections,
and navigation links.

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

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


ANN : ConfigObj 4.0.1 Config File Reader/Writer

2005-11-07 Thread Fuzzyman
Version 4.0.1 of ConfigObj is now available. This includes one bugfix
and two new features.

http://www.voidspace.org.uk/python/configobj.html

What's New ?
==

Fixed bug in ``Section.walk`` when transforming names as well as
values.

Added the ``istrue`` section method. (Fetches the boolean equivalent of
a string value).

Fixed ``list_values=False`` - single line values are not quoted or
unquoted.

See
http://www.voidspace.org.uk/python/weblog/arch_d7_2005_11_05.shtml#e129
for a description of these changes.

List values are written as ``item, item`` rather than ``item,item``.

What is ConfigObj ?
===

ConfigObj is a simple but powerful config file reader and writer: an
ini file round tripper. It's main feature is that it is very easy to
use, with a straightforward programmer's interface and a simple syntax
for config files. It has lots of other features though. This module is
used in most Voidspace projects. See the ConfigObj Home Page for full
documentation.

It's features include :

* Nested sections (subsections), to any level
* List Values
* Multiple Line Values
* String interpolation (substitution)
* Integrated with a powerful validation system

  o including automatic type checking/conversion
  o repeated sections
  o and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies

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

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


ANN: logintools Critical Update

2005-11-07 Thread Fuzzyman
http://www.voidspace.org.uk/python/logintools.html

Critical Bugfix in logintools (which also affects jalopy)

The new release is 0.6.2
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=jalopy_login.zip

What's New
=

I recently updated logintools and jalopy to be compatible with the new
pythonutils code. This was the 0.6.0 releases.

Embarrassingly, I didn't update the email calls to use the new function
signature in cgiutils. New user sign-ups have been thoroughly broken
since. sigh

The application I use logintools for doesn't allow new user signups. It
only has administrator created accounts, so I didn't notice the broken
code.

This is now fixed and anyone who wants jalopy or logintools to work
should download the new release.

What is logintools
=

logintools is a full framework to do user authentication and account
management with CGI.

It provides you with a full system for restricting access to pages and
your applications, including administration features, new user
sign-ups, and the facility for users to edit their account details.

Even better - you can add it to a Python CGI with as little as two
lines of code (really).

Configurable in terms of behaviour nad appearance, it also provides a
mechanism for storing details of the user account.

See the documentation at
http://www.voidspace.org.uk/python/logintools.html

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

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


ANN: ConfigObj 4.0.0 Final and Pythonutils 0.2.3

2005-10-18 Thread Fuzzyman
ConfigObj 4.0.0 final and Pythonutils 0.2.3 have just hit the streets.

http://www.voidspace.org.uk/python/configobj.html
http://www.voidspace.org.uk/python/pythonutils.html

They are both pure Python modules - the source distributions include
full documentation, which is also online.

What's New ?


ConfigObj 4.0.0 final has two bugfixes.
Using ``setdefault`` to create a new section would return a reference
to the dictionary you passed in - not the new section.
Also fixed a trivial bug in ``write`` (wouldn't have affected anyone).

Pythonutils 0.2.3 is updated to include the ConfigObj 4.0.0 final and
cgiutils 0.3.3

ConfigObj is now marked stable. (But caveat emptor :-)

What is ConfigObj ?
===

ConfigObj is a simple but powerful config file reader and writer: an
*ini file round tripper*. Its main feature is that it is very easy to
use, with a straightforward programmer's interface and a simple syntax
for config files. It has lots of other features though :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system

- including automatic type checking/conversion
- repeated sections
- and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies

What is Pythonutils ?
=

The Voidspace Pythonutils package is a simple way of installing the
Voidspace collection of modules. Several of the Voidspace Projects
depend on these modules. They are also useful in their own right of
course. They are primarily general utility modules that simplify common
programming tasks in Python.

These are currently :

* ConfigObj - simple config file handling
* validate - validation and type conversion system
* listquote - string to list conversion
* StandOut - simple logging and output control object
* pathutils - for working with paths and files
* cgiutils - cgi helpers (and functions for sending emails etc)
* urlpath - functions for handling URLs
* odict - Ordered Dictionary Class

All the best,

Fuzzyman
http://www.voidspace.org.uk/python

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

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


ANN: Voidspace Updates - Jalopy, logintools, textmacros, downman (etc)

2005-09-23 Thread Fuzzyman
Hello All,

There have been various updates to the Voidspace modules :

Jalopy 0.6.0
http://www.voidspace.org.uk/python/cgi.shtml#jalopy

A collaborative website designer (CGI). It uses Kupu
(http://kupu.oscom.org ) the WYSIWYG HTML editor.

This update moves to Kupu 1.3 and the pythonutils 0.2.2 set of modules.


logintools 0.6.0
http://www.voidspace.org.uk/python/cgi.shtml#logintools

A CGI framework for user authentication and account management. Add
user login to your CGI applications with two lines of code !

This update moves to the pythonutils 0.2.2 set of modules. logintools
is now being used on another project and seeing some development work.


textmacros
http://www.voidspace.org.uk/python/modules.shtml#macros

A textmacro system for adding features to docutils
(http://docutils.sourceforge.net ).

This update makes it *much* easier to use (it now behaves like the
``buildhtml.py`` script). Easily add Python source coloring, smilies,
and accronyms (and much more) to reStructured Text.


downman 0.4.1
http://www.voidspace.org.uk/python/cgi.shtml#downman

A CGI download manager. Present files for download and statistics
(basic) about download rates.

This update has a security fix and uses the pythonutils 0.2.2 set of
modules. Also other minor updates. It also needs the updated version of
cgiutils.


cgiutils 0.3.3
http://www.voidspace.org.uk/python/recipebook.shtml#utils

A helpful set of constants and functions when working with CGI scripts.

This update has two bugfixes.


copy2cgi 1.1.1
http://www.voidspace.org.uk/python/recipebook.shtml#copy2cgi

A small convenience script to copy files and directories to a target
location. Useful for copying files to a server directory for testing.


pycrypto 2.0.1
http://www.voidspace.org.uk/python/modules.shtml#pycrypto

I've (finally) updated the prebuild windows binary of PyCrypto (Python
2.4) to the 2.0.1 version.

All the best,


Fuzzyman
http://www.voidspace.org.uk/python/weblog/index.shtml


All the Voidspace modules and applications are available under the OSI
Approved Open Source BSD License -
http://www.voidspace.org.uk/python/license.shtml

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

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


Pythonutils 0.2.2 , ConfigObj 4.0.0 Beta 5, odict 0.1.1

2005-09-14 Thread Fuzzyman
The response to pythonutils__ was very good. Especially the odict__
module (ordered dictionary) - it's had over one hundred and fifty
downloads already. Thanks to some useful user feedback, Nicola Larosa
has updated and improved it.

More embarassingly we've done a bugfix release of ConfigObj__ - now up
to beta 5. This fixes another couple of bugs - we aim to get out of
beta someday..

All this is my way of saying that *odict 0.1.2*, *pythonutils 0.2.2*,
and *ConfigObj beta 5*, are all available from the `Voidspace
Modules`__ page.

__ http://www.voidspace.org.uk/python/pythonutils.html
__ http://www.voidspace.org.uk/python/odict.html
__ http://www.voidspace.org.uk/python/configobj.html
__ http://www.voidspace.org.uk/python/modules.shtml

(The pythonutils update contains odict 0.1.1 *and* ConfigObj Beta 5)

All the best,

Fuzzyman
http://www.voidspace.org.uk/python/

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

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


ANN: pythonutils 0.2.1

2005-09-09 Thread Fuzzyman
Hello Python Folk,

pythonutils 0.2.1 is now available.

This is a *major* update since 0.1.0

http://www.voidspace.org.uk/python/modules.shtml#pythonutils
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=pythonutils-0.2.1.win32.zip
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=pythonutils-0.2.1.zip

What is pythonutils ?
=

The Voidspace Pythonutils package is a simple way of installing the
Voidspace collection of modules. Several of the Voidspace Projects
depend on these modules. They are also useful in their own right of
course. They are primarily general utility modules that simplify common
programming tasks in Python.


The modules included are all fully documented. They are :

ConfigObj - simple config file handling
validate - validation and type conversion system
listquote - string to list conversion
StandOut - simple logging and output control object
pathutils - for working with paths and files
cgiutils - cgi helpers
urlpath - functions for handling URLs
odict - Ordered Dictionary Class

Note: These modules have changed quite significantly since 0.1.0. Only
install if you're sure this won't break your applications :-)


What Has Changed Since 0.1.0 ?
==

The *major* change is that *all* these modules now have their own
online documentation (and almost all of them have been refactored).
There are links to them all via :

http://www.voidspace.org.uk/python/pythonutils.html#documentation

2005/09/04 - Version 0.2.1
--

Version 0.2.1

Updated to ConfigObj 4.0.0 beta 4

This contains bugfixes to ConfigObj.

2005/08/31 - Version 0.2.0
--

Refactored and redocumented.

**Major** update to ConfigObj and validate.

Removed caseless, and added odict and urlpath.

* ConfigObj   4.0.0 beta 3
* listquote   1.4.0
* validate0.2.0
* StandOut2.1.0
* pathutils   0.2.1
* cgiutils0.3.2
* odict   0.1.0
* urlpath 0.1.0

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

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


ANN: ConfigObj 4.0.0 Beta 4

2005-09-09 Thread Fuzzyman
Hello Pythoneers,

ConfigObj 4.0.0 has a beta 4 release. This fixes a couple of moderately
serious bugs - so it's worth switching to.

http://cheeseshop.python.org/pypi/ConfigObj
http://www.voidspace.org.uk/python/configobj.html
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj-4.0.0b4.zip
http://sf.net/projects/configobj

What's New ?


(Since Beta 2 the last announced version)

2005/09/07
--

Fixed bug in initialising ConfigObj from a ConfigObj.

Changed the mailing list address.

2005/09/03
--

Fixed bug in ``Section__delitem__`` oops.

2005/08/28
--

Interpolation is switched off before writing out files.

Fixed bug in handling ``StringIO`` instances. (Thanks to report
from
"Gustavo Niemeyer" <[EMAIL PROTECTED]>)

Moved the doctests from the ``__init__`` method to a separate
function.
(For the sake of IDE calltips).

Beta 3

2005/08/26
--

String values unchanged by validation *aren't* reset. This
preserves
interpolation in string values.


What is ConfigObj ?
===

ConfigObj is a simple but powerful config file reader and writer: an
ini file round tripper. Its main feature is that it is very easy to
use, with a straightforward programmer's interface and a simple syntax
for config files. It has lots of other features though :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system

  o including automatic type checking/conversion
  o allowing default values
  o repeated sections

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies

ConfigObj is available under the very liberal BSD License.

It addresses *most* of the limitations of ConfigParser as discussed at
: http://wiki.python.org/moin/ConfigParserShootout

Anything Else ?
===

ConfigObj stores nested sections which map names to members
(effectively dictionaries) with values as lists *or* single items. In
association with the validate module it can transparently translate
values back into booleans, floats, integers, and of course strings.

This makes it ideal for *certain* types of human readable (and
writable) data persistence.

There is a discussion of this (with accompanying code) at :
http://www.voidspace.org.uk/python/articles/configobj_for_data_persistence.shtml

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

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


ANN: ConfigObj 4 released

2005-08-26 Thread Fuzzyman
This is a *major* update to ConfigObj.
Version 4.0.0 beta 2 is now available.

Homepage: http://www.voidspace.org.uk/python/configobj.html
Download URL:
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj-4.0.0b2.zip


ConfigObj is a simple but powerful config file reader and writer: an
ini file round tripper. Its main feature is that it is very easy to
use, with a straightforward programmer's interface and a simple syntax
for config files. It has lots of other features though :

* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation
* Integrated with a powerful validation system

  o including automatic type checking/conversion
  o and allowing default values

* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies

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

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


ANN: rest2web 0.3.0

2005-06-27 Thread Fuzzyman
Next update to restweb__. This is available for direct download__, and
via SVN__. [#]_

__ http://www.voidspace.org.uk/python/rest2web
__
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=rest2web.zip
__ https://svn.rest2web.python-hosting.com/trunk/

.. [#] The SVN repository also has the Pythonutils__ dependencies.
__ http://www.voidspace.org.uk/python/modules.shtml#pythonutils

Sourceforge__ will be updated *soon* [#]_.

__ http://sourceforge.net/projects/rest2web
.. [#] Flipping work internet restrictions.

We're now up to version **0.3.0**. The changes since the last announced
release are : ::

Version 0.3.0   2005/06/27
Code refactored and better commented.
Thanks to Nicola Larosa for input.
Minor bugfix - an encoding was missing.
Added stylesheet to docutils options override.

Version 0.2.3   2005/06/25
Code style cleanup with help from Nicola Larosa.
Start of the refactoring (some code is simpler internally)
``uservalues`` now compatible with reST.
docs updated appropriately.

The *major changes* are the code cleanup and refactoring. If you want
to understand how *rest2web* works, it should now be possible to follow
it in the code [#]_!

.. [#] No more passing data structures in and out of the
*restprocessor*

>From the users point of view, the biggest change is that you can now
use *uservalues* with reST markup. This does have limitations that I
might try and find a way round. See the uservalues__ page for the
details.

__ http://www.voidspace.org.uk/python/rest2web/uservalues.html


Best Regards,


Fuzzy
http://www.voidspace.org.uk/python

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

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


ANN: rest2web, firedrop2, textmacros

2005-06-16 Thread Fuzzyman
Threee related announcements :

rest2web - latest update adds support for multiple translations
firedrop2 - new documentation and updated reST support
textmacros - the textmacros module is now available separrately, useful
for systems like docutils



First of all my all new `Firedrop2 Section`__ [#]_ is up and running.

__ http://www.voidspace.org.uk/python/firedrop2/index.shtml

.. [#] **Firedrop2** being the blogging tool for discerning pythoneers,
written by `Hans Nowak`__.
__ http://zephyrfalcon.org

It includes my own distribution called *The Fuzzy Version*. This is a
temporary fork whilst Hans approves the changes I've made. The main
change is improved reST__ support. This requires docutils 0.3.9.

__ http://docutils.sourceforge.net

The new section has docs on templating, macros, options, plugins, and
more.


Secondly, I've broken out the *textmacros* module from the Firedrop
project. This system is also used by rest2web__ and provides an easy
way of extending docutils (or any other text based system).

__ http://www.voidspace.org.uk/python/rest2web

It maps markup like ``{name;param;param}`` to function calls and
replaces the text with the output. It can also apply transformations to
whole passages of text using a ``{+name} some text here {-name}``
syntax.

See the `textmacros page`__ for download and use details.

__ http://www.voidspace.org.uk/python/firedrop2/textmacros.shtml

It's very simple though - an ``apply_macros.py`` script will process
directories of files. I recommend using it on the *output* of docutils
files [#]_. You can use it for adding {acro;acronyms;Like This},
smilies {sm;:evil:}, or even doing Python source coloring.

.. [#] I've only ever used it with HTML - it may be just as useful with
Laytex.

It comes with an example macro file, and it's very simple to add new
ones. For full docs see :  `The Macro System`__ [#]_

__ http://www.voidspace.org.uk/python/firedrop2/macros.shtml

.. [#] Part of the Firedrop docs.


There is a new version of **rest2web** [#]_ available at Voidspace__,
in SVN__, and at Sourceforge__.

.. [#] We're now up to **0.2.2**

__ http://www.voidspace.org.uk/python/rest2web
__ https://svn.rest2web.python-hosting.com
__ http://sourceforge.net/projects/rest2web

This version adds something called *uservalues* to rest2web. It allows
you to create values that can be used by the templating system, and to
specify another file to be used as the body of the page. If that body
uses your uservalues, it is easy to have several files using the same
body - but inserting different text into it.

One obvious use for this is having multiple translations of the same
site.

See `uservalues`__ for the lowdown and `translation pages`__ for a
trivial example. The source of the example is included in the
distribution - so you can see how it's done.

__ http://www.voidspace.org.uk/python/rest2web/uservalues.html
__ http://www.voidspace.org.uk/python/rest2web/translation/index.html

For those who don't know, **rest2web** is a website templating system
optimised for storing content in `reST format`__. It can autogenerate
navigation links and sidebars for you, as well as sporting a flexible
templating and macro system. See the `online docs`__ for more details
than you could possibly want.

__ http://docutils.sourceforge.net
__ http://www.voidspace.org.uk/python/rest2web


Best Regards,

Fuzzyman
http://www.voidspace.org.uk/python

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

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


ANN: http Tutorials (urllib2 and Basic Authentication)

2005-06-02 Thread Fuzzyman
*NEW* http Tutorials

Two new tutorials on http related subjects with Python.

(1) A tutorial on using urllib2. It covers fetching URLs, coping with
errors, and using handlers and openers. It should be useful to anyone
new to using urllib2.

(2) A tutorial on BASIC authentication with Python. It first
illustrates how BASIC authentication works - manually encoding the
username/password into the request. Next we show the *proper* way to do
it - with password manager, handler, and opener; a subject which has
been known to confuse even intermediate level Python Programmers.

See : http://www.voidspace.org.uk/python/articles.shtml#http

(errata welcomed by the way - see the website for a contact address)

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

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


ANN: Pythonutils, listquote, and ConfigObj UPDATE

2005-06-02 Thread Fuzzyman
*UPDATE* to the Pythonutils modules.

(Please note that due to technical difficulties updated evrsions of
ConfigObj and rest2web aren't yet available from Sourceforge - pelase
download from Voidspace instead - apologies)

The main update is to the listquote module, which has two bugfixes and
several optimisations. Because of the bugfixes it is recommended that
all users of listquote, pythonutils, fullconfigobj, and configobj,
upgrade to newer versions which are now available.

The previous version would lose the last list member in a string like
'["first member", "second member", ""]'.

listquote
Version 1.3.0 1st June 2005
http://www.voidspace.org.uk/python/modules.shtml#listquote
Parsing strings into lists (even nested lists).
Handles comments and quotes. (etc)

Fixed bug in lineparse handling of empty list members.
Thnks to bug report and fix by Par Pandit
The 'unquote' function is now regex based.
(bugfix it now doesn't return a tuple if fullquote is 0)
Added the simplelist regex/function.
elem_quote and uncomment use a regex for clarity and speed.
Added a bunch of asserts to the tests.


pathutils
Version 0.2.0 1st june 2005
http://www.voidspace.org.uk/python/recipebook.shtml#utils
Changes since 0.1.0
Added walkdirs generator.
Added rounding to formatbytes and improved bytedivider with divmod.
Now explicit keyword parameters override the configdict in formatbytes.



The pythonutils module 0.1.1
This contains both updates above and an updated version of cgiutils.
http://www.voidspace.org.uk/python/pythonutils.html

If the windows binary installer isn't available (I need to find a
Python 2.3 machine to build it on as installers built on 2.4 require
the dll from MSVC 7 on the *target machine*) then just use the source
distribution - it's a pure python module anyway.

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

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


ANN : rest2web 0.2.0

2005-06-02 Thread Fuzzyman
*UPDATE* rest2web 0.2.0

This is a major update to rest2web, introducing lots of new features
and improvements.

The main new features are :

* rest2web now renders pages a whole directory at a time and builds
a tree of the site structureas it goes. This allows the new standard
functions to provide very simple ways of automatically building
sidebars. The data strucures are also available for you to process
yourself.

* The new *standard functions* also include a one line way to print
navigation trails.

* You can now specify your template encoding and output encoding -
rest2web is fully unicode internally. It ought to 'do the right thing'
if you don't specify what encodings are being used (even if you mix
encodings).

* A new system of macros for frequently used shorthands (including
smilies and Python source coloring).

* Lots more values available in the template namespace.

:Author: Michael Foord
:Contact: [EMAIL PROTECTED]
:Version: 0.2.0
:Date: 2005/06/01
:License:  BSD-License
http://www.voidspace.org.uk/documents/BSD-LICENSE.txt
:Home Page: http://www.voidspace.org.uk/python/rest2web
:Sourceforge: http://sourceforge.net/projects/rest2web
:Development: SVN Repository
https://svn.rest2web.python-hosting.com/trunk/
:Support: Pythonutils Mailing List
http://www.voidspace.org.uk/mailman/listinfo/pythonutils_voidspace.org.uk

:Quick Download:
http://www.voidspace.org.uk/cgi-bin/voidspace.py?file=rest2web.zip
(725k)

Note : rest2web requires the pythonutils module
http://www.voidspace.org.uk/python/pythonutils.html


What is restweb ?
===

rest2web is a tool for automatically building websites, or parts of
websites. It allows you to maintain your content as reST (see
http://docutils.sourceforge.net ) - a relaxed (WYSIWYG) text markup.
(You can keep content as HTML as well if you prefer).

It will generate HTML from your contents and insert it into HTML
templates, automatically building index pages, sidebars, and navigation
trails (breadcrumbs) as it goes. It features a simple templating
system, macros, and more.

Adding pages to your site can be as simple as dropping the text file of
cotnent into the desired directory. rest2web will add it to the index
page and build the target file. If you delete a page, rest2web can
automatically update the indexes for you.

Because rest2web resolves all links locally, it can be used to create
HTML files viewable from the filesystem. This makes it an ideal way to
create documentation.

See the docs and example site (included in the distribution) :
http://www.voidspace.org.uk/python/rest2web

The example site illustrates most of the features of rest2web, which is
now building a significant proportion of Voidspace - see
http://www.voidspace.org.uk/technology for a live example.


What's Changed Since 0.1.0 ?
===

Version 0.2.0   2005/06/01
Various minor changes
especially additions to the namespace pages are rendered in.
Sites are rendered a whole section at a time.
This means pages have index data for that section available.
This is the ``sections`` variable in the namespace.
Added the ``output-encoding`` and `final_encoding`` values to
the restindex.
Added the ``template-encoding`` value to the restindex.
rest2web is now entirely unicode internally.
It's now possible to specify title and description
for the default section.
Added indextree and thispage, allows building of sidebars.
Added standard functions.
Added macros.
Started using subversion repository.
Changed all line endings to 'LF'.


What's Next ?
===

The next step is to have rest2web automatically create contents and
sitemaps for sites it is creating. I'd like to integrate with a system
that inspects Python objects for helping to automate some of the
process of documenting Python projects.

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

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


ANN: rest2web 0.1.0

2005-05-09 Thread Fuzzyman
Finally, the long awaited (*ahem*) release of **rest2web**.
It's an early release - lot's more features still to be added - but it
all works. *Hurrah*

rest2web is a tool for autogenerating websites. It allows you to store
your contents in reST format, and generate pages and indexes from
templates. It uses a simple but flexible templating system and
generates index pages and navigation links.

This means that adding new pages is as easy as dropping a text file
into the right folder. rest2web will handle adding the link to the
index page and creating the new page from a template and the contents.
Removing a page is as easy as deleting a single file, and have rest2web
automatically rebuild the indexes.

The download includes the rest2web code, and docs, and a test site. The
test site serves as a simple illustration of how rest2web builds pages
and indexes.

For full details see any of the following pages :

* `rest2web Docs` - http://www.voidspace.org.uk/python/rest2web
* `Example Site` -
http://www.voidspace.org.uk/python/rest2web/test_site
* `Quick Download (608k)` -
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=rest2web.zip

The next features to add will be auto sitemap generation and a bigger
change (under the hood) to make the index data available to every page
in a section. This will allow pages to have sidebars with links, rather
than just a single index page per section.

I'm already building part of the Voidspace website with rest2web, over
the next few months it will take over

Lots of other features, tested on Linux and Windoze.

Fuzzyman
http://www.voidspace.org.uk/python

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

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


[ANN] Voidspace Guestbook 1.4.2

2005-05-05 Thread Fuzzyman
Oops, embarrasing bugix release time.

Guestbook 1.4.1 worked fine (wonderfully even) with Python 2.4, but not
with Python 2.3.

This release fixes that, and also another Python 2.2 compatibility
problem (yes I'm testing now...).

Homepage : http://www.voidspace.org.uk/python/guestbook.html
Example : http://www.voidspace.org.uk/cgi-bin/voidspace/guestbook2.py
Quick Download :
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=guestbook.zip

I might even have spelt my domain name right this time...

Best Regards,

Fuzzyman
http://www.voidspace.org.uk/python

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

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


Re: Voidspace Python Guestbook 1.4.1 (etc)

2005-05-03 Thread Fuzzyman
Oops... those links should have read  :

http://www.voidspace.org.uk/py­thon/guestbook.html
http://www.voidspace.org.uk/cg­i-bin/voidspace/downman.py?fil­e=guestbo...

http://www.voidspace.org.uk/cg­i-bin/voidspace/guestbook.py
http://www.voidspace.org.uk/cg­i-bin/voidspace/guestbook2.py

#~$%"£&# Very sorry about that.

Fuzzyman
http://www.voidspace.org.uk/python

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

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


[ANN] Voidspace Python Guestbook 1.4.1 (etc)

2005-04-29 Thread Fuzzyman
My Honoured Guests
=

Yup... the time has come, **The Voidspace Python Guestbook 1.4.1** has
been released into the wild.

* `The Guestbook Homepage`__
* `Quick Download Link (120k)`__
* `Plain Guestbook Example`__
* `Voidspace Guestbook`__ [#]_

__ http://www.voidsapce.org.uk/python/guestbook.html
__
http://www.voidsapce.org.uk/cgi-bin/voidspace/downman.py?file=guestbook.zip
__ http://www.voidsapce.org.uk/cgi-bin/voidspace/guestbook.py
__ http://www.voidsapce.org.uk/cgi-bin/voidspace/guestbook2.py

What is the Voidspace Python Guestbook


Guestbook is a Python script that allows you to add a 'guestbook'
facility to your website. It is fully customisable using HTML templates
- so the guestbook will appear to be fully integrated with your
website. The entries are saved in a plain text file, for easy editing,
and there is a naughty word filter as well. Almost every aspect of the
appearance is editable using the templates. A few other user settings
can be configured as well. All the instructions are contained in the
template file.

It can email you when an entry is made by someone, and also features
smilies, spam protection, javascript form validation, and allows a
limited set of html in comments. It is regularly improved and updated.


What's New ?
===

This is a major update since the last release [#]_. The new features
are :

* Javascript form validation (client side)
* More advanced anti-spam features (we do a basic check that the entry
was made by a human rather than a bot)
* A limited set of html is now allowed in entries
* Smilies 
* Better use of CSS in the standard template
* Counter tells you how many times the guestbook has been viewed
* A few other bugfixes and improvements

Because of the changes there are a few external files (python modules
and javascript files) that will need to be installed, as well as the
smiley images. Full instructions come with the docs.


.. [#] Using the HTML templates
.. [#] Version 1.3.0 was the last released version. 1.4.0 did exist for
a few days before it was superceded.



*Also*...

FireMail the firedrop plugin has been updated. It now resolves the
macros before emailing. The plugin.zip also now contains rest.py (reST
support for firedrop) which has also been updated, and the update isn't
yet included in the official distribution.

See http://www.voidspace.org.uk/python/programs.shtml#firedrop


*Also*

A couple of new 'recipes' that *may* be of interest.

googlerank
How Well Ranked is Your Website ?
Version 0.1.0 18th April 2005
googlerank is a small recipe that uses the google api. You give it a
domain (by setting a variable), and then a set of search terms via
stdin. It then does google searches until a result from your domain is
found (so long as it is within the first 200 results - 20 searches).
This tells you how far down the list your site appears for given search
terms. This is a useful tool for working with website design - it's
also very interesting.

It produces results that look like :

For the search term "python cookies" :
Out of an estimated 176000 results.
Your website came at position "7".
With URL - "http://www.voidspace.org.uk/python/recipebook.shtml";

see : http://www.voidspace.org.uk/python/recipebook.shtml#google



CGIHTTPServerWithSSI
A Simple Server with SSI Processing
Version 0.1.0 15th April 2005
This is a simple server implementation, this one based on
CGIHTTPServer. It does everything that CGIHTTPServer does, with some
SSI processing as well. So far it handles include and flastmod, but
adding additional instructions would be easy.

Simply drop it in a directory and it will serve webpages, with that
directory as the root directory. Any pages that end in .shtml or .shtm,
it does SSI processing on.

see : http://www.voidspace.org.uk/python/recipebook.shtml#ssi



Best Regards, 


Fuzzy 
http://www.voidspace.org.uk/py­thon

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

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


[ANN] Voidspace Pythonutils Updates

2005-04-08 Thread Fuzzyman
Lots of updates to the Voidspace modules and recipes.

Update to the Firedrop plugins see :
http://www.voidspace.org.uk/python/programs.shtml#firedrop
New version of FireSpell the spell checker (based on PyEnchant by Ryan
Kelly)
New plugin called FireMail which lets you send blog entries (or
articles) by email - either as HTML or text.
All the plugins are available for download. There is also docs on
installing and using the plugins and docs on writing plugins.

downman.py
http://www.voidspace.org.uk/python/cgi.shtml#downman
More improvements to downman.py - the simple download manager CGI
2005/03/15  Version 0.4.0
Configuration moved into external config file.
HTML stuff mmoved into downman_templates.py
Put quotes round filename (This stops firefox truncating filenames with
spaces)
Flush the output buffer as we serve the file (may help those who have
to use env in the shebang line)


guestbook.py
http://www.voidspace.org.uk/python/guestbook.html
Quite a big change - with a cleaning up of the default HTML templates
and several new features to help combat guestbook spam.

2005/04/06  Version 1.3.0
Lots of restyling in the HTML templates - not *quite* so horrible now.
We write new entries at the start of the file rather than the end
(undoes a bug introduced in 1.2.0)
Max of two URLs in an entry.
A few extra words added to the banned list. (Still trying to combat
guestbook spam)
New value 'BREAKVAL' added to templates (so we can use the XHTML 
if needed)
The '_charset_' field added to the form and value checked (in case page
encoding changed by guests browser)
Now use rel="nofollow" in links to foil spammers
Email addresses shown using javascript in an attempt to foil address
harvesters.
Obviously invalid email addresses and urls are removed. (very basic)


Jalopy and Login Tools
Not a huge amount of progress - but a few bugs fixed.
http://www.voidspace.org.uk/python/jalopy.html
http://www.voidspace.org.uk/python/logintools.html
2005/03/23
Admin levels are now preserved when new users are created or invited.
Corrected bug causing accounts to not be editable.
Changed all the shebang lines to '#! /usr/bin/python'
Updated to latest versions of all the pythonutils modules (like
ConfigObj)
Fixed typo in HTML for editing users (causing crashes).


cgiutils.py
http://www.voidspace.org.uk/python/recipebook.shtml#utils
cgitutils now has much better functions for handling emails.
It includes a function for creating HTML emails and a single function
will do the sending, rather than 3 functions for the three different
cases as before (using sendmail, using smtplib, using smtplib with
login).

2005/04/07  Version 0.3.0
Changed the email functions, this may break things (but it's better
this way)
Added createhtmlemail, removed loginmailme
mailme is now a wrapper for sendmailme, mailme, *and* the old
loginmailme


upload.py
http://www.voidspace.org.uk/python/cgi.shtml#upload
2005/04/07  Version 1.1.1
We now set I/O to binary mode for windows.


googleCacheServer.py
http://www.voidspace.org.uk/python/recipebook.shtml#google

An innovative use of the google api !
Version 0.1.3 5th April 2005
This is a simple implementation of a proxy server that fetches web
pages from the google cache. It's based on SimpleHTTPServer and lets
you explore the internet from your browser, using the google cache. See
the world how google sees it. Alternatively - retro internet - no CSS,
no javascript, no images, this is back to the days of MOSAIC !


Best Regards,

Fuzzy
http://www.voidspace.org.uk/python

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

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


[ANN] ConfigObj Update and New PythonUtils Package

2005-03-10 Thread Fuzzyman
ConfigObj has had another update - now version 3.3.0
Several of the Voidspace PythonUtils modules have been packaged
together as the 'Voidspace Pythonutils Package'. This makes it easier
to release packages that depend on ConfigObj and the other modules.

This update includes several important new features and bugfixes.
New features include - string interpolation similar to ConfigParser,
unicode support for reading and writing of config files, and a
validation schema for validating config files. The validation schema is
implemented using validate.py, which is co-written by Mark Andrews and
maintained at http://www.la-la.com (although included in all the
distributions). The unicode support will recognise and preserve the
UTF-8 BOM when reading/writing files. Check out the docs for full
details of the changes and how they work.

Homepage : http://www.voidspace.org.uk/py­thon/configobj.html
For downloading, see the download section of the homepage.
NEW ConfigObj API Docs Online :
http://www.voidspace.org.uk/py­thon/configob-api

What is ConfigObj
==
A python module (class) for ultra simple reading and writing of simple
config files, including config files with sections. Designed to allow
the greatest flexibility in the config files it will read (and your
users will create).

Many flexible features - but you don't need to use them !


What's New ?
=
Changes in the new version :

2005/03/01Version 3.3.0b
Requires listquote 1.2.0 - which is improved/optimised
Requires caseless 2.2.0 which has support for unicode
Adding support for validation using the configspec
To be done with  an external validator. (Validator class created
with help of Mark Andrews)
This means added methods/attributes :
parseconfigspec method
stripconfigspec method
validate method
__configspec__ attribute
BOM attribute
Experimental unicode internally. 'encoding' and 'backup_encoding'
keywords added
'lists' keyword added - can turn off list handling (lists are left as
strings)
A ConfigObj can be created by passing in a dictionary
Added a __repr__ method for the ConfigObj
configspec can now be a filename (or StringIO instance...) - including
for the write method
Now raises a TypeError rather than a KeyError if you pass in invalid
options
writein can now return a config file as a list of lines if no filename
is set
duplicate keys/sections in writein now raise 'duplicate' errors, rather
than 'conspecerror'
String interpolation from the 'default' section - using '%(keyword)s'
format - similar to ConfigParser
Attribute access as well as dictionary syntax
Added a test for lists
Coerce sections created as dictionaries to caselessDict (bug fix)
Escaped '&mjf-lf;' and '&mjf-quot;' in unquoted values are converted
(bug fix)
Bug fixed in configspec with section files (bug fix)
Bug fix in reporting of duplicate sections with configspec. (bug fix)
Fixed bugs in sectionfiles with 'configspec_only' (errors in the empty
last section would be missed) (bug fix)
Bug fix in __buildconfigspec (bug fix)
Improved support for '/*... */' in the writein method (bug fix)
Fixed typo in verify and reset methods (bug fix)
configspec is no longer destroyed for flatfiles (bug fix)
Missing keys and Extra keys errors the wrong way round in write method
(bug fix)
Plus other minor bugfixes, simplifications and optimisations

The next version will have some refactoring to use more reg-exes in
parsing (I've had to succomb and import re for string interpolation so
I might as well make better use of it) and improvements to the error
system.


*NEW* Voidspace PythonUtils Package
Version 0.1.0 1st March 2005
http://www.voidspace.org.uk/python/pythonutils.html

The Voidspace Pythonutils package is a simple way of installing the
Voidspace collection of modules. For programs that use ConfigObj (which
also requires caseless and listquote), it is simpler to install this
package than to use the modules separately. This makes it simpler to
distribute programs that depend on ConfigObj, without you having to
distribute ConfigObj as well. Of course all the modules are useful in
their own right. The modules included are :

* ConfigObj - simple config file handling
* caseless - case insensitive datatypes and sorting
* listquote - list and element handling
* validate - schema validation system
* StandOut - flexible output object (simple logging and verbosity
control)
* pathutils - for working with paths and files
* cgiutils - cgi helpers

Regards,

Fuzzyman
http://www.voidspace.org.uk/python/index.shtml

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

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


[ANN] Pythonutils updates - approx, approxClientproxy, caseless etc

2005-03-10 Thread Fuzzyman
Various of the Voidspace Pythonutils modules have been updated.

http://www.voidspace.org.uk/python/index.shtml

approx.py has been updated (Python CGI Proxy script)
approxClientproxy.py version 2.0 is available

listquote, caseless, linky, and downman have all been updated.


*MAJOR UPDATE* approx.py
approx.py is now at version 0.6.3
This includes many new features, improvements and bugfixes since the
last public release 0.6.0.

http://www.voidspace.org.uk/python/cgi.shtml#approx

approx.py is a Python CGI proxy. It aids unrestricted internet browsing
in a censored environment. It is inspired by the James Marshall Perl
cgiproxy. Whilst it is not as fully developed as that script it has
several advantages. These include URL  obfuscation and that it is
designed to work with approxClientproxy - see below.

2005/02/15  Version 0.6.3a
Refactoring again - less global variables, slightly neater structure.
(A full class based structure might still be better)
Removed a couple of unimplemented features.
Session cookies are now saved. (before they were always discarded)
Userid can now be hardwired into approxClientproxy - meaning we don't
get *hundreds* of cookie files.
Updated default user agent.
Fixed bug in cookie sending. (now can send the userid cookie on
non-html pages and when modify is off)

2005/01/20  Version 0.6.2a
Obfuscation changed to use dataenc.
URL obfuscation now *only* available if dataenc and dateutils modules
are available.
(This restriction will be removed, and the functions built in, when
testing is complete)

2005/01/02  Version 0.6.1c
Fixed bug(s) in python 2.4 compatibility.
Fixed bug in cookie naming.
Removed extraneous whitespace from urls entered in the form.
Fixed a bug in debug mode introduced in a previous update !
Logging is off by default - avoids file permission errors for new
users. (If people want logging they can switch it on themselves)
Removed a source of crashes in handling unsupported authentication
methods.
Basic url obfuscation implemented - for the sake of server logs.
In the event of error we now keep the url in the form.
Many thanks to Jose for testing and encouragement.


*NEW* approxClientproxy.py
Version 2.0.0 alpha February 2005
http://www.voidspace.org.uk/python/cgi.shtml#approx

This is an experimental client proxy to go with approx.py. It runs on
the client machine and transparently rewrites URL requests from the
browser to go through the approx proxy. It doesn't yet support fetching
https URLs, which is the target of the next update.


*UPDATED* caseless and listquote updates
http://www.voidspace.org.uk/python/modules.shtml#caseless
http://www.voidspace.org.uk/python/modules.shtml#listquote

These two modules have had updates for the latest ConfigObj update.
This includes optimisations and improvements for unicode support.

caseless provides a "Case Insensitive Dictionary, List and Sort"
listquote "contains a set of functions for parsing lists from text and
writing them back out again"


*UPDATED* downman.py
Version 0.3.1 17th February 2005
http://www.voidspace.org.uk/python/cgi.shtml#downman

Simple download manager. A CGI script for 'serving' files for downlaod
and gathering/presenting statistics about their use. Several minor
improvements since 0.2, including support for different sections.

2005/02/17  Version 0.3.1
Added version string.
Uses the 'formatbytes' function from pathutils.

2005/02/07  Version 0.3.0
Greatly simplified. Doesn't do links or use fileid.
Will now serve files from several directories (sections) with different
stats.
Now can order results by average download rate (or reverse).
Now displays file size and will sort by file size.
Filenames are also links to the file.


*UPDATED* linky.py
Version 0.1.1 16th February 2005
http://www.voidspace.org.uk/python/programs.shtml#linky

A script that uses BeautifulSoup to check links on a website.
Particular emphasis is checking local links within a website and
comparing link 'casing' with files on the filesystem. This will pick up
errors when testing your website on windows (where case errors may not
be apparent).

Regards,


Fuzzy
http://www.voidspace.org.uk/python/index.shtml

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

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


[ANN] ConfigObj update - v3.2.5

2005-02-15 Thread fuzzyman
ConfigObj has had another update - now version 3.2.5

This update includes 3 bugfixes and several new features. Because of
the bugfixes it's reccomended for all users. New features include -
lines can now be broken over two or more lines, initial and final
comments in a config file are preserved (or can be set) when using the
write method, we can now read/write config files directly to and from a
StringIO object, and empty values are now valid (like 'value=' as per
ini files).

Homepage : http://www.voidspace.org.uk/python/configobj.html
For downloading, see the download section of the homepage.


What is ConfigObj
==

A python module (class) for ultra simple reading and writing of simple
config files, including config files with sections. Designed to allow
the greatest flexibility in the config files it will read (and your
users will create).

Many flexible features - but you don't need to use them !


What's New ?
=

The last announced release was 3.2.3, changes since then include :

   2005/02/15Version 3.2.5
   Changes so that ConfigObj can work with StringIO instances, by Wayne
Wiitanen
   (for a project that receives a configuration file over a socket
as a string.
   It is used as the source text for a StringIO object)
   Lines can be extended across more than one line, with the '\'
character
   (must be final character on line - it escapes the newline)
   Empty values can be written 'value=' (like the ini file - but read
only currently)
   Errors whilst parsing now report the line they occurred in
   Duplicate keys and sections are now reported as errors (bug fix)
   isflatfile can now handle '[' inside '\*.. *\' comments (bug fix)
   Fixed bug in handling of final line of '\*.. *\' comments
   If the first and last non empty lines of a config file are comments
they will be preserved as config.initial_comment and self.final_comment
  These are written out when the write method is called (but not
the writein method)
  New list attributes self.initial_comment and self.final_comment
   self.sectionfile is always set to the opposite of self.flatfile
 2005/01/07Version 3.2.4
   Use absolute paths for stored filename. Avoids problems when cwd is
changed.


There have also been a few other improvements to voidspace modules.
Hopefully I'll soon be announcing upgrades to approx,
approxClientproxy, and downman.py.

There is now more detailed information on customizing Movable Python
distributions. See http://www.voidspace.org.uk/python/movpy

Regards,


Fuzzy
http://www.voidspace.org.uk/python/index.shtml

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

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


[ANN] Movable Python 0.4.6

2005-02-10 Thread fuzzyman
A new release of Movable Python is available - 0.4.6

This fixes a few issues including a bug in the Python 2.2 support, and
a fix for a psyco/IPython incompatibility issue.

We have a new icon and logo thanks to Aidan Ashby -
http://aidan.voidspace.org.uk

Due to bugfixes (in movpy) we can now offer a prebuilt environment for
Python 2.2 that includes wxPython and SPE. The prebuilt environments
feature updated versions of several components (SPE, IPython, readline)

Downloads - http://sourceforge.net/projects/movpy
Documentation - http://www.voidspace.org.uk/python/movpy


What is Movable Python ?
-

Movable Python is a way of building portable, standalone, Python
environments. The result is a version of Python that can be used
without having to install python on the target machine. (Currently
windows only - but could be ported to Mac using py2app and Lunix using
cx_freeze). This means you can carry around a prebuilt python
environment on a USB memory stick - Python on a stick. Come and get
your gannet ripple, python on a stick. [1]

This is useful for :

* Machines where you don't have admin rights (can't install programs)
* Where you need a portable 'Build, Test, and Run' Python environment
(will nicely fit on a usb memory stick)
* Having several versions of python on the same machine for
forward/backward compatibility testing
* Easily deploying python scripts without having to install python
* Try before you buy - test python without having to install it,
including new versions
* 'Python Runtime Environment'. '.py' files can be associated with
movpy

With the addition of wxPython, SPE [2], and IPython [3] it becomes a
full 'Build, Test, and Run' environment.


What's Available ?
---

>From sourceforge ( http://sourceforge.net/projects/movpy )  :

The source distribution that allows you to customize and build your own
environments. This requires py2exe.

Prebuilt environments for Python 2.2, 2.3, and 2.4.

Environments are available either as 'basic' build, or 'standard'
build.

Basic comes with the standard library, psyco, and IPython.
Standard has wxPython and SPE included.


What Has Changed ?
---

2005/02/07  Version 0.4.6a
Movpy Icon and image added by Aidan Ashby -
http://aidan.voidspace.org.uk
Changes by Michael
We use exec rather than eval (which shouldn't be used with
`multiple statement code objects`)
IPython isn't called if -p is on (psyco and IPython don't play well
together yet)
IPython won't be called if psyco.full() has been called in your
script
locals() and globals() are now passed explicitly to interactive()
(optional if you use interactive yourself)
(This was an attempt to make IPython work with psyco - which it
doesn't yet !)
Fixed a bug in Python 2.2 support - 'exclude_modules' now works !
Forced package import for encodings. SPE now works with python 2.2
- but still 'experimental'.
Icon is now used in python 2.2
Plus the pre-built environments use newer versions of readline,
IPython, and SPE


Regards,

Michael Foord
http://www.voidspace.org.uk/python/index.shtml




[1] For the 'Pythonically Challenged' this alludes to the python's
sketch where John Cleese is dressed as an usherette selling ice-creams
during the interval in a british film-house. He shouts: "Albatross!
Albatross! Stormy-petrel on a stick! Gannet ripple!". Silly Monty
Python reference supplied by John Davenport.

[2] Stanis Python Editor IDE - see http://spe.pycs.net

[3] IPython - enormously flexible interactive shell for Python. See
http://ipython.scipy.org

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

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


[ANN] Movable Python, linky and Techie Blog

2005-01-27 Thread fuzzyman
Minor news first :

'linky' a local link checker is available.
http://www.voidspace.org.uk/python/programs.shtml#linky

linky will check your website for dead links (within the website) as
well as comparing it to the website on your filesystem, to check for
case errors that might not be picked up if you test your website on
windows. It can also report files that don't appear to be linked to -
for finding  redundant images etc.

linky uses BeautifulSoup to do the hard work.


The Voidspace Techie Blog has moved. My (mainly python related blog)
now lives at :
http://www.voidspace.org.uk/python/weblog/index.shtml
It is created using firedrop - the excellent blog tool by Hans Nowak

MOVABLE PYTHON
http://www.voidspace.org.uk/python/movpy
http://sourceforge.net/projects/movpy

Version 0.4.5 is now available, hurrah.

There are now prebuilt distributions for Python 2.2, 2.3, *and* 2.4.

This is a bugifx/update release. The distributions it produces are very
*similar* to version 0.4.4 distributions, but there are a couple of
issues resolved. See
http://www.voidspace.org.uk/python/movpy/changelog.html for details.

*Most* of the changes relate to the PyDistFrreeze.py in the 'source'
package. This is the code that creates the frozen distributions. There
have been several simplifications and improvements. Again, see the
CHANGELOG for details.


Version 0.5.0

Bruno Thoorens has provided me with the code for the GUI for
PyDistFreeze.py When I have integrated it with PyDistFreeze.py it will
form the 0.5.0 release. This should be in the next couple of weeks time
permitting. The GUI is *excellent* :-)


Movable Python is a Python runtime that can run scripts without the
need for Python to be installed. With the inclusion of wxPython and SPE
editor it is a portable (movable) development environment. Also useful
for testing scripts with several different python versions. The source
version will build frozen environments (using py2exe - so Windoze only
currently), this can include whichever extension modules/packages you
choose.
Regards,

Michael Foord
http://www.voidspace.org.uk/python/index.shtml

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

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


PyCrypto 2.0, pysco 1.4 - Windows Binaries for 2.4

2005-01-12 Thread Fuzzyman
The location of the prebuilt windows installer for PyCypto 2.0 (for 
python 2.4) has changed. Apologies for any confusion, this is because of 
a website reorganisation at Voidspace.

The new location  is :
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
There is also a prebuilt windows installer for psyco 1.4 (for python 
2.4). This is because there isn't yet a prebuilt binary available from 
sourceforge.
http://www.voidspace.org.uk/python/modules.shtml#psyco

Both built using the free, Microsoft, optimizing compiler. Following 
instructions from :
http://www.vrplumber.com/programming/mstoolkit/index.html

Regards,
Fuzzy
http://www.voidspace.org.uk/python/index.shtml
--
http://mail.python.org/mailman/listinfo/python-announce-list
   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


[Ann] PyName and downman

2005-01-12 Thread Fuzzyman
A couple of new 'modules' available from Voidspace Pythonutils.
PyName
http://www.voidspace.org.uk/python/modules.shtml#pyname
Slightly tongue in cheek, this isn't really a python module. It's three 
lists of English words containing 'py' - intended to be helpful to those 
choosing names for python projects. The word lists were produced from an 
initial file of about 8mb. Words selected all contain 'py', single words 
or hyphenated words, but no compound words.
  
* pywordlist.txt  All words contain 'py' 23kb - 1946 words
* pywordlist2.txt All words starting or ending in 'py' 16kb - 1406 words
* pywordlist3.txt All words as pywordlist2, but only words less than 10 
chars long 5kb - 658 words.

downman.py  
Version 0.2.1 14th December 2004
Simple Download Manager
http://www.voidspace.org.uk/python/cgi.shtml#downman

This is a simple download manager tool. It may be egotistical, but I 
like to know which of my projects are being downloaded (and which 
aren't). Simply make your files available in a single directory and have 
the links point to downman (see the download link for downman itself for 
an example) and downman will track the downloads. At the moment it only 
presents simple data - but all the raw data is collected to do per 
week/last month (or whatever) analysis. It will also manage links as well.

See the example output at 
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py

Regards,
Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
--
http://mail.python.org/mailman/listinfo/python-announce-list
   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


Movable Python

2005-01-05 Thread Fuzzyman
Movable Python has just been released on sourceforge. Movable Python is
a frozen distribution of Python. It will run python scripts without
needing to be installed.

http://sourceforge.net/projects/movpy
http://www.voidspace.org.uk/python/movpy

Fancy trying out Python 2.4 without installing it ? Want a distribution
of python you can carry around on a flash card ? Need to test scripts
with several versions of python ? Movable Python may be for you.

Features include :

* Lightweight GUI for choosing scripts to run
* Interactive interpreter mode
* Understands many of the python command line options
* Configurable distribution builder
* Pre built environments come with IPython and psyco
* The standard distribution includes wxPython and SPE (the python IDE)
making it an ideal 'Build, Test and Run' environment
* Additional modules can be easily added - either when building
distribution or to a prebuilt environments

The docs are online at voidspace. The distribution builder (source) and
two prebuilt environments (for python 2.4) can be downloaded from
sourceforge.

Distributions are built using py2exe. Running PyDistFreeze.py (the
'source') needs py2exe installed. This also means the source and
distributions are currently windoze only. We are interested in porting
to mac (with py2app) and Linux (cx_freeze ?).

This was previously available as testenv 'Test Environment'.. Recent
changes include :

2005/01/02  Version 0.4.4
More changes by Michael
When not using IPython, interactive() will find locals() for itself.
(Meaning interactive() can be called in user scripts)
Added the 'manuals' folder to the distribution.
Added the -p command line option, to switch on psyco.
Switched to using compile/eval rather than exec/execfile. (Better
for psyco *and* more meaningful error messages)
A fix so that errors will report the right line number with '-x'.
Changed config file to include winsound and unicodedata.
Modifications to PyDistFreeze.py and movpy.py to make them
compatible with python 2.2.
A built in 'setup.py' for python 2.2. (can now autobuild
distributions on python 2.2)
IPython should now work on machines that don't have it installed !
(ipythondir is now set and config file supplied)
If you don't select a file from the GUI, it now drops into
interactive mode.
Can supply path to config.txt in command line to PyDistFreeze.py
Tweaked the directory finding function - which finds directories we
will search.
Fixed it so that movpyw doesn't generate error logs with '-' if
launched from GUI with no file.
Added PyDistFreeze.bat
IDLE now works, so added idle.bat.

2004/12/31  Version 0.4.3
Support for IPython as alternative interactive shell.
External config file ('config.txt' in 'lib/' directory) - for
setting default command line options.
Added 'credits' and 'copyrights' as builtins (for IPython).

2004/12/28  Version 0.4.2
Another set of changes by Michael Foord.
Added support for command line arguments -h, -V, -u, -i, -x, -, -c
(hey that's a lot for one evening  !)
The main script 'movpy.py' is now kept in an external file.
'include_modules' now supports sub-packages.
Added back support for encodings.
packagepaths.pth added for sub-package support with
'include_packages'.

2004/12/29  Version 0.4.1
Lots of changes by Michael Foord.
They include :
addition of customize.py
addition of syspaths.pth
Cleans up intermediate files.
Copies packages properly.
Only copies the microsoft Visual C 7 dlls if built with Python 2.4.
Addition of unicows dll is optional.
Addition of spe.bat.
Builds the windows version - movpyw.exe
Added the manifest files.
Added the build option.

2004/12/19  Version 0.4
Several important changes by Bruno Thoorens.
These include :
Lightweight GUI frontend added to movpy.exe.
setup.py incorporated into main script - name changes to
PyDistFreeze.py
Icon added.

2004/12/18  Version 0.3
More work with Stani.
'.pth' files now supported.
Importing from '.pyc' etc. as well as straight '.py' files.
Added external config file, using ConfigObj.

2004/12/17  Version 0.2
Renamed 'Movable Python'. (Executable is 'movpy.exe')
Cleaned up a lot - now imports subpackages properly.
Thanks to Stani of SPE for encouragement and suggestions. (including
the name)

2004/12/14  Version 0.1
Test version called 'testenv' - Python test environment.
Works better than expected.
Thanks to Bruno Thoorens and Stani for help and debugging.

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

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


ANN: Jalopy and Login Tools

2004-12-22 Thread Fuzzyman
Jalopy and Login Tools are ready for their first public release.

Jalopy
http://www.voidspace.org.uk/python/jalopy.html

Login Tools
http://www.voidspace.org.uk/python/logintools.html

Online Demo of Both
http://www.voidspace.org.uk/cgi-bin/jalopydemo/jalopy.py

Download
http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=jalopy_login.zip

Jalopy is a 'Collaborative Web Project'. It is a tool that enables a
team to build a website together. It uses Kupu (http://kupu.oscom.org )
the WYSIWYG online editor to allow the editing/creation of webpages by
non-technical team members. Jalopy
handles autogenerating of the index pages as well as
creating/editing/deleting pages.

Login Tools was created for Jalopy. It is a module, and framework, for
doing user authentication and account management. It includes login,
new user signup, user 'edit account screen' and administrator screen.
It is highly configurable and uses html templates to fit in with any
website. It can be plugged in to any python CGI with the addition of as
little as *two* lines of code.
They are both alpha quality - but should work fine.

Regards,

Fuzzyman

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

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


PyCrypto Binary for Python 2.4

2004-12-13 Thread fuzzyman
Because of export restrictions, Andrew is unable to offer prebuilt
binary versions of his excellent PyCrypto module. I've built a windows
installer for Python 2.4.


Actually download it here :
http://www.voidspace.org.uk/atlantibots/pythonutils.html#crypto

Visit PyCrypto Homepage - http://www.amk.ca/python/code/crypto.html

I was able to build the binary by installing microsofts free optimising
compiler - VC Toolkit - and hacking distutils to use it. I followed the
excellent instructions at -
http://www.vrplumber.com/programming/mstoolkit/


Regards,


Fuzzy

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

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