2006-03-10 14:56 davidf * jToolkit/__version__.py: version 0.7.5, halfway to 0.8 if we go that way :-) 2006-03-10 11:13 davidm * jToolkit/widgets/chart.py: Automatically add the needed environment variable for MATPLOTLIBDATA location WARNING: This will not work for matplotlib after they changed the data file location, but it works fine for the supported 0.6.5.1 Added an adjustment on the LinearLocator which doesn't create conflicting ticks with the jMajorDateLocator, so we don't get ticks on top of each other 2006-03-09 15:42 davidm * jToolkit/web/: safeapache.py, server.py: Remove all fiddly handling of sys.frozen attributes, as this seems to cause more problems than it's worth 2006-03-08 14:42 davidm * jToolkit/mailer.py: Encode the message with the charset we tell smtp we're using, to make sure it works Catch any encoding errors and report them sensibly when sending an email 2006-03-03 10:17 davidf * jToolkitSetup.py: glob.fnmatch is just the module fnmatch, we want the function inside it 2006-03-03 10:06 davidf * jToolkitSetup.py: exclude mdb files and other unwanted files from enduser directory added support in jToolkitSetup.fileset for excluding with a glob (*.x) 2006-03-02 16:00 davidf * jToolkit/test/test_apache.py: on python2.3 there is no subprocess module, use os.spawnl instead 2006-03-02 12:42 davidm * jToolkit/test/test_apache.py: Encapsulate strings written to config file in quotes, so the generated configs can handle directory names with spaces in them 2006-02-28 14:47 davidf * jToolkit/test/test_service.py: don't report a failure if we have to kill the process, just try stop again (failures in teardown_method show up as failures for the next test, causing endless confusion) wait longer for startup / shutdown of services add message if we couldn't start... added spacing 2006-02-28 14:38 davidf * jToolkit/web/simplewebserver.py: 0.0.0.0 is not a valid address, convert it to 127.0.0.1 (localhost) 2006-02-28 14:36 davidf * jToolkit/web/ntservice.py: handle shutting down before starting reasonably well (although note that this isn't locked...) use new webserver.setstop method to stop add more helpful logging messages 2006-02-27 17:57 davidf * jToolkit/test/test_apache.py: use absolute path names for apache 2006-02-27 17:56 davidf * jToolkit/web/__init__.py: strip instance names (this lets us use ' ' for a blank instance name, otherwise Apache throws the blank string away) 2006-02-27 17:48 davidf * jToolkit/web/simplewebserver.py: create stop property that doesn't allow restarting after stopping this helps to resolve some testing functions, more work is needed though... 2006-02-27 17:47 davidf * jToolkit/test/: test_apache.py, test_service.py: refactored setup_cookies method (can be overridden / used elsewhere) took out unneccessary sleeps, but sleep after killing a process to release open files 2006-02-27 16:42 davidf * jToolkit/test/test_apache.py: was passing a list instead of a page name in test_basic_apache move make_directory_config onto the main class as its useful 2006-02-27 16:35 davidf * jToolkit/test/test_apache.py: added basic test for Apache 2006-02-27 12:52 davidf * jToolkit/web/ntservice.py: sometimes get here without a server attribute, make that clear if it happens 2006-02-27 12:35 davidf * jToolkit/web/simplewebserver.py: forgot which class I was in ... try use the server errorhandler 2006-02-27 12:29 davidf * jToolkit/web/simplewebserver.py: log traces via errorhandler rather than writing to sys.stderr 2006-02-27 11:42 davidf * jToolkit/web/simplewebserver.py: Try and make sure we never output errors to stdout as the SocketServer default handle_error does 2006-02-24 15:42 davidf * jToolkit/web/simplewebserver.py: added code to read the actual hostname and port from the socket after creation (allows setting port to 0 for dynamic port, useful in tests) 2006-02-24 14:54 davidf * jToolkit/data/indexer.py: try to output errors to stdout anyway 2006-02-24 14:48 davidf * jToolkit/test/test_service_threads.py: tried to expand into working test. TestServer disabled for now until we can make it pass 2006-02-24 14:47 davidf * jToolkit/test/test_service.py: added more debug info 2006-02-24 14:39 davidf * jToolkit/test/test_indexer.py: renamed Apache things to generic names 2006-02-24 14:31 davidf * jToolkit/demo/helloworldservice.py: work out absolute paths 2006-02-24 14:30 davidf * jToolkit/data/indexer.py: Renamed ApacheSetup to LaunchIndexProcess 2006-02-24 14:30 davidf * jToolkit/glock.py: add note on which mutex is released 2006-02-24 12:14 davidf * jToolkit/web/__init__.py: handle empty instance, and make sure we resolve serverclasses 2006-02-16 13:04 davidm * jToolkit/widgets/chart.py: Attempt to use conversion routine from jToolkit.data.dates to convert the COM PyTime to a datetime 2006-02-15 14:37 davidm * jToolkit/widgets/chart.py: Correct use of dates combine function 2006-02-15 14:34 davidm * jToolkit/widgets/chart.py: corrected typo in function name 2006-02-15 14:30 davidm * jToolkit/widgets/chart.py: Blind fix for Nick's date/time problem 2006-02-13 15:06 davidf * jToolkit/test/test_service.py: fixed open method 2006-02-13 14:59 davidf * jToolkit/test/test_service.py: try and handle cookies on python 2.3 etc 2006-02-13 09:52 davidf * jToolkit/test/test_service.py: added sleep in case test is very quick and service hasn't actually started properly when we try to stop it (which causes worse problems) 2006-02-13 09:39 davidf * jToolkit/test/test_service.py: of course, fetch_page etc should be on the base class TestService 2006-02-13 09:31 davidf * jToolkit/test/test_service.py: added separate method to kill the service process, which will use pskill if available 2006-02-13 09:25 davidf * jToolkit/test/test_service.py: added automatic recording of pid in pidfile, and message to try kill process if stopping is unsuccessful this makes the tests work better because the service can then be successfully removed also still delete the service if stopping is unsuccessful (will be marked for deletion and removed when the service actually stops) allow extraargs on the object/class as well as the method added helper function fetch_page, and store hostname and port on the class added docstrings 2006-02-13 08:51 davidf * jToolkit/test/test_service.py: separated hello world tests into separate class so other service testers can inherit from base 2006-02-08 10:07 davidf * jToolkit/data/database.py: improve login message, particularly including DBPROVIDER if set, to aid debugging afterwards 2006-02-08 09:28 davidf * jToolkit/web/server.py: altered logic for deleting frozen in case somehow frozen was ever None... 2006-02-07 12:42 davidm * jToolkit/web/server.py: If sys.frozen might not be there, make sure we don't try to delete it 2006-02-07 12:36 davidm * jToolkit/widgets/chart.py: Add locators which avoid the last/first time of a day, so it doesn't overlay our daylocators and look ugly 2006-02-06 19:31 davidf * jToolkit/data/indexer.py: use guierrorhandler as startup error handler for webserver 2006-02-06 10:38 nickh * jToolkit/web/server.py: use getattr in case sys.frozen doesn't exist (happened on 2nd login) 2006-02-06 10:03 nickh * jToolkit/web/session.py: handle unicode keys 2006-02-02 11:31 davidm * jToolkit/web/server.py: Make sure pythoncom imports correctly with a fake "frozen" attribute added to sys so that matplotlib imports correctly 2006-02-02 11:29 davidm * jToolkit/data/ADOProviders.py: Use the version independent version for the MySQLProvider 2006-02-01 15:28 nickh * jToolkit/data/database.py: use pyado if and only if DBPROVIDER is present, don't do fallback to mysql python driver 2006-02-01 14:35 davidf * jToolkit/data/database.py: logic is to CoInit if DBPROVIDER is set and DBTYPE is one of those that can use DBPROVIDER 2006-02-01 10:17 davidf * jToolkit/data/database.py: improved logic for setting self.local and determining if DBPROVIDER is present (was checking self not self.instance) 2006-01-31 16:57 davidf * jToolkit/errors.py: logaudit needs a recorddict argument 2006-01-31 16:45 davidf * jToolkit/errors.py: added ability to tee audit logs 2006-01-31 16:44 davidf * jToolkit/web/ntservice.py: make sure we don't complain about not being able to audit in the eventlog 2006-01-31 16:02 davidf * jToolkit/web/ntservice.py: put service options into a group for clarification 2006-01-31 15:50 davidf * jToolkit/test/test_service.py: more refactoring and waiting for stop / delete seems to help 2006-01-31 15:26 davidf * jToolkit/test/test_service.py: another attempt to restructure the stopping logic 2006-01-31 15:23 davidf * jToolkit/test/test_service.py: removed unneccessary parameter to stopservice, implemented more persistent stop attempt if removing service fails because its running 2006-01-31 15:10 davidf * jToolkit/web/ntservice.py: added optional arguments to InstallService to facilitate testing 2006-01-31 15:09 davidf * jToolkit/web/simplewebserver.py: implemented a real working check for whether running as a service, at runtime, to avoid PyLucene issue 2006-01-31 15:08 davidf * jToolkit/test/test_service.py: just remove the service, as this will try stop it too 2006-01-31 14:43 davidf * jToolkit/test/test_service.py: rearranged so tests automatically start and stop service, but can specify extra args. added tests for standard and threaded mode, and check Hello World is returned 2006-01-31 14:37 davidf * jToolkit/test/test_service.py: removed unneccessary imports 2006-01-31 14:35 davidf * jToolkit/test/test_service.py: added simple test for hello world web service that installs, starts, stops and removes it, running it through this script 2006-01-31 13:07 davidm * jToolkit/test/base_test_database.py: Reduce test_intensive_select_count number to reduce the time it takes to run the test add a test_list_fields test which checks we can get the fields in a table Add a test_list_fields_and_select_count test which will hopefully fail on nick's machine 2006-01-31 08:05 davidf * jToolkit/web/simplewebserver.py: attempt to avoid PyLucene threading in a service. added TODO for locks, fixed tabs 2006-01-30 16:56 davidf * jToolkit/test/test_service_threads.py: Test Threads in services. Standard py.test tests will run normally from command line or can take commandline options to install a service 2006-01-30 14:02 davidm * jToolkit/test/base_test_database.py: Reduce number of threads in thead test to 30 (more reasonable as far as what we expect) Drop the tables we create in the threaded tests Don't drop a table that doesn't exist in test_threaded Add a test for intesively testing select count(*) 2006-01-30 12:27 davidf * jToolkit/data/PyADO.py: why ignore errors when retrieving Fields? This should expose if there really is a problem... 2006-01-27 16:32 davidf * jToolkit/web/simplewebserver.py: Hmmm, that doesn't apparently catch the error, reverting and leaving a FIXME for Monday... 2006-01-27 16:30 davidm * jToolkit/test/base_test_database.py: Added the ability to override the thread class in test_threaded Added a test to test threads with PyLucene threads, in case this ever fails 2006-01-27 16:20 davidf * jToolkit/web/simplewebserver.py: added catch for error under services (bug 742) 2006-01-27 16:16 davidm * jToolkit/test/base_test_database.py: Change the test functions so it's easier to customise the table they use Add a threaded test, which runs a number of threads doing the full select test on each thread (at the moment set to 100) 2006-01-27 15:09 davidf * jToolkit/web/__init__.py: change directory to the directory of the prefs file / module (or a user-specifiable one) This makes relative paths relative to that directory, which helps services... 2006-01-27 14:55 davidf * jToolkit/web/simplewebserver.py: don't tee to the console in case we're running as a service rather tee to startuperrorhandler, which is the console in the commandline case and the windows event log in the service case 2006-01-27 13:20 davidf * jToolkit/web/ntservice.py: changed Parameters to be a multistring value rather than a key with a string value this prevents issues with argument splitting and spaces by storing each arg as a separate string 2006-01-24 11:50 davidm * jToolkit/test/base_test_database.py: Added to the insert and select tests, so we can check we get teh same number of rows that we inserted back in the select 2006-01-19 13:32 davidm * jToolkit/data/database.py: Fix some bugs in ThreadComDB, so it works (doesn't need the non-existent database to initialise, actually calls __getdb__) Fix a bug whereby every mysql instance, whether PyADO or mysqldb, was detected as mysqldb 2006-01-19 11:18 davidm * jToolkit/data/database.py: First attempt at CoInitializing each new thread, using the same mechanism as sqlite's ThreadLocalDB This doesn't work yet, but it doesn't break what does work Make sure in dblogin we set the right db variable (this corrects ThreadLocal for mysqldb usage) 2006-01-18 16:32 davidf * jToolkit/web/ntservice.py: added logging for service operations, and direct to stdout as well. added status option 2006-01-18 16:25 davidm * jToolkit/data/: PyADO.py, _PyADO.py, database.py: Change from using CoInitialize to CoInitializeEx, which is a safer function 2006-01-18 16:23 davidf * jToolkit/web/simplewebserver.py: added comments explaining handoverlock 2006-01-18 15:40 davidf * jToolkit/web/ntservice.py: refactored registering event source, register on install, remove global error handler, move copyright notice 2006-01-18 15:31 davidf * jToolkit/web/ntservice.py: register event source for event logger that lets us avoid warnings about unknown strings. name events as coming from service. pass error handlers correctly for safe startup 2006-01-18 15:28 davidf * jToolkit/web/simplewebserver.py: have startuperrorhandler for WebServer for problems that occur before errorhandler is instantiated. Similarly allow errorhandler for WebOptionParser to replace consoleerrorhandler (useful for services) 2006-01-16 12:19 davidm * jToolkit/test/test_mysql_ado.py: Activate hte primary MySQL test class 2006-01-16 12:18 davidm * jToolkit/test/base_test_database.py: Correct typo Don't try to assert None - it doesn't work Activate the last two tests 2006-01-16 12:14 davidm * jToolkit/data/PyADO.py: Deal with the case where the Fields COM object does not have a Count attribute (therefore implying a count of 0) 2006-01-13 16:55 davidm * jToolkit/test/test_mysql_ado.py: Add test for MySQL ADO (using the MySqlProv provider) 2006-01-13 16:55 davidm * jToolkit/test/base_test_database.py: Add a base class for testing databases 2006-01-13 16:50 davidm * jToolkit/test/__init__.py: Make jToolkit.test a module, so we can have modules in there we can import 2006-01-13 16:50 davidm * jToolkit/test/test_archiver.py: Correct a tabbing problem 2006-01-13 16:49 davidm * jToolkit/data/PyADO.py: Properly differentiate between SQL server and mysql in PyADO (by trying SQL Server, and, on segfault, trying MySQL) 2006-01-13 14:21 davidf * jToolkit/web/server.py: create getloginpage method, move the templating code into there... 2006-01-13 14:03 davidf * jToolkit/web/safeapache.py: prevent awful problems with freezing standard python (import pythoncom) 2006-01-10 17:54 stephene * jToolkit/web/server.py: clean up templates with tidy before passing them to kid 2006-01-10 16:55 stephene * jToolkit/web/server.py: added a context with some useful attributes: languagenames, extraargs, session and title 2006-01-10 15:58 stephene * jToolkit/web/server.py: if 'logintemplate' is set in the prefs then use its value to find a kid template to use for the login page 2006-01-10 13:56 davidm * jToolkit/web/safeapache.py: mod_python sys module has no frozen attribute, which breaks matplotlib. Make sure this is set 2006-01-10 10:20 davidm * jToolkit/web/apache_postinstall.py: apacheconf is now to be (more reliably) found in jToolkit.web 2006-01-10 10:17 davidm * jToolkit/web/apacheconf.py: Added the apacheconf module, formerly a patch to mod_python 2006-01-10 09:07 davidf * jToolkit/localize.py: don't assume translation is present 2006-01-06 15:30 davidm * jToolkit/widgets/grid.py: This should fix the error where we try to format something to a float which cannot be formatted to one 2005-12-19 11:04 davidf * jToolkit/widgets/form.py: weblinks should open in a new page 2005-12-15 18:30 davidf * jToolkit/web/simplewebserver.py: replaced prints with consoleerrorhandler calls for service's sake 2005-12-15 18:12 davidf * jToolkit/demo/helloworldservice.py: basic protection from being frozen 2005-12-15 17:29 davidm * jToolkit/web/ntservice.py: Added an option, --runservice, which runs the given Service class through the Service Control Manager Reimplemented InstallService. This detects whether we're frozen or not and sets up a service to either run the unfrozen script through python, or to run the executable that's running, both with the --runservice option Reimplemented remove, start, restart and stop straight from win32service or win32serviceutil, so we can control these better Put the command-line parsing into a separate function - this means you can run a service with --startservice and overriding command-line options and it might do the right thing (VERY untested) 2005-12-15 16:28 davidf * jToolkit/data/database.py: make upper and lower functions pass None etc through fine by ignoring values that don't support upper or lower 2005-12-15 15:00 davidf * jToolkit/widgets/form.py: added support for a 'weblink' display type that will link to http or ftp sites if the value is a URL 2005-12-13 17:01 davidm * jToolkit/web/ntservice.py: Log the command-line args we pull out of the registry 2005-12-13 17:00 davidm * jToolkit/prefs.py: The sys module is used for the error message if we can't import a module while parsing a prefs file. It might help to import it 2005-12-13 15:59 davidm * jToolkit/web/ntservice.py: Added a ServiceErrorHandler which overwrites the consoleerrorhandler in simplewebserver when running in a service, as a service has no console 2005-12-12 15:53 davidm * jToolkit/web/ntservice.py: Changed CreateParser to GetParserClass, so we can get the actual class instead of an instantiation Made ServiceOptionParser a subclass of the service parser class, as otherwise we get errors (and we can't check the command-line arguments before storing them) Reconstructed the command-line arguments to the actual service by removing all the --service arguments 2005-12-12 14:07 davidm * jToolkit/web/ntservice.py: Change CreateParser to a classmethod, so we can create a parser without an instance of the service Change storing/retrieving default arguments to storing/retrieving command-line arguments Only get the first value for Parameters, as all this is is the command-line for the simplewebserver Create a command-line parser for the service arguments which could be mixed in with the web server parser without conflict Use this parser when parsing the command-line Save the rest of the arguments in the registry on installation, for setting up generic services 2005-12-09 16:09 davidf * jToolkit/data/database.py: added simple implementation of thread local objects for python < 2.4 2005-12-09 13:20 davidm * jToolkit/demo/helloworldservice.py: iAdded an example of using jToolkit.web.ntservice, using the HelloWorld Web Server 2005-12-09 13:18 davidm * jToolkit/web/ntservice.py: Added ntservice, a nice easy wrapper to make any simplewebserver into a service 2005-12-09 10:09 davidf * jToolkit/data/database.py: if using the Python MySQL driver, avoid thread problems.... 2005-12-02 23:16 nickh * jToolkit/data/database.py: added function for converting to upper case 2005-12-02 12:04 nickh * jToolkit/web/templateserver.py: removed conversion to string I think 2005-12-01 13:09 davidf * jToolkit/widgets/grid.py: False is better than 0 2005-11-29 15:28 davidf * jToolkit/spellcheck.py: only can support languages if we have a checker in the first place! (used to raise an Error) 2005-11-23 13:14 davidm * jToolkit/data/database.py: Add the host parameter when using PyADO with MySQL (why didn't we do this before? How do we specify a remote hort when using this?) Add a workaround for certain versions of MySQLdb which don't like the host parameter when connecting to localhost 2005-11-20 19:00 nickh * jToolkit/widgets/thumbgallery.py: pass the optional size argument for the size of the thumbnail 2005-11-18 18:20 davidf * jToolkit/widgets/form.py: check just in case widget is a string when invisible (from displaytype:) 2005-11-18 16:11 davidf * jToolkit/data/database.py: space things out more nicely in the combined sql clause 2005-11-18 13:35 davidf * jToolkit/web/server.py: resolve database attributes before passing to dbwrapper this should allow us to use imported values from ADOProviders for DBPROVIDER (phew!) 2005-11-18 13:32 davidf * jToolkit/: prefs.py, web/__init__.py: moved import module resolution into the prefs module itself 2005-11-18 13:32 davidf * jToolkit/test/test_prefs.py: verified we can actually resolve import modules etc this also documents using resolveimportmodules and UnresolvedPref.resolve() 2005-11-18 11:45 davidf * jToolkit/data/database.py: allow subclauses to catclauses to not contain the where prefix 2005-11-18 11:22 davidf * jToolkit/data/database.py: allow catclauses to function recursively if lists contain lists bracket clauses to ensure and functions consistently use truth of non-empty lists rather than measuring len 2005-11-16 12:57 davidm * jToolkit/data/database.py: Correct kwargs argument so the port is passed properly to MySQLdb. This looks like the right format, if at all relevant, for PyADO too 2005-11-15 16:22 stephene * jToolkit/widgets/form.py: handle unicode in valuetostring 2005-11-14 17:26 stephene * jToolkit/widgets/form.py: convert values to strings (in case of sqlite which doesnt distinguish much between types, so that stringformat could be wrong) 2005-11-13 14:43 nickh * jToolkit/data/database.py: removed pdb debugging statement 2005-11-10 13:24 stephene * jToolkit/data/database.py: added listfieldnames which returns a list of all the names of fields for a table 2005-11-07 16:56 stephene * jToolkit/data/database.py: merged many changes from j5 in order to support sqlite 2005-11-07 16:18 davidf * jToolkit/widgets/form.py: added support for hiddenwidget display type 2005-11-03 10:39 stephene * jToolkit/widgets/widgets.py: handle integers in getcontentshtml 2005-11-02 12:35 davidf * jToolkit/widgets/tidywidget.py: added a decorator that doesn't do the tidying 2005-11-02 12:34 davidf * jToolkit/widgets/tidywidget.py: added a module that permits tidying of widget output, and converting to strings as a decorator to functions returning widgets 2005-11-01 11:57 davidf * jToolkit/prefs.py: in iteritems, _parser is a special attribute too... added method to return source in config style for j5, and allow commandline options to prefs to do this (also option for testing pickling) 2005-10-13 13:39 davidf * jToolkit/data/database.py: need os module for getting environment variable 2005-10-12 14:05 davidf * jToolkit/data/database.py: add kwargs, mysql port (backported) 2005-10-11 13:31 davidf * jToolkit/data/database.py: make sure all drivers get kwargs also try get a port for the mysql driver 2005-10-07 15:11 nickh * jToolkit/data/database.py: Handle mysql ADO connections properly (backported) 2005-10-07 15:08 davidf * jToolkit/data/database.py: handle ADO mysql connections properly 2005-10-07 14:56 nickh * jToolkit/widgets/widgets.py: handle XML DOM instances by converting to xml and including... slightly better to include self if the type of the contents is unknown, it may show where the error is 2005-10-07 12:28 davidf * jToolkit/data/: ADOProviders.py, database.py: PyADO support for MySQL (backported from HEAD) 2005-10-07 12:25 davidf * jToolkit/data/database.py: added option to use ADO for mysql 2005-10-07 12:25 davidf * jToolkit/data/ADOProviders.py: added MySQL Provider 2005-10-06 10:49 stephene * jToolkit/editprefs/index.py: corrected request handler base class name 2005-09-27 15:41 server1 * jToolkit/spellcheck.py: don't use encoding argument until we check versions (forward ported from jLogbook-4) 2005-09-27 15:22 stephene * jToolkit/web/templateserver.py: load kid templates from source to avoid conflicts with other compiled python files (somehow I removed this :P, so I'm adding it back in) 2005-09-27 15:04 stephene * jToolkit/web/templateserver.py: changed getpage to first search for handlers, then search for regular files and then, failing that, return None (404) 2005-09-27 14:48 stephene * jToolkit/web/templateserver.py: 'split' not 'slit' 2005-09-27 14:43 stephene * jToolkit/web/templateserver.py: use the working directory as the server name if no name is supplied 2005-09-27 13:32 stephene * jToolkit/web/templateserver.py: create the template object on __init__ 2005-09-27 01:50 stephene * jToolkit/web/templateserver.py: passed source to kid.Template because loading a file seems to cause importing errors (might be worth mentioning this in the kid list) 2005-09-26 13:32 nickh * jToolkit/data/jsuite.py: was using underlying cursor by mistake ... updated to use cursorexecute for finding tag ticker and column (backported from HEAD) 2005-09-26 12:30 stephene * jToolkit/web/templateserver.py: add index.html to the pathwords if pathwords is empty 2005-09-26 12:29 stephene * jToolkit/web/templateserver.py: allow the templatedir to be None, in which case the current working directory is used as the templatedir 2005-09-26 12:24 nickh * jToolkit/widgets/chart.py: (backported from HEAD) maxint doesn't make any sense for float data, so use None rather if the datalimits (minEU and maxEU) defined for a tag are equal, ignore them adjust the limits for a tag group right at the end (when tags are grouped in axes) if the limits are the same put them on either side of the data (which is flat) so it is more visible than when its on the axis 2005-09-26 12:19 nickh * jToolkit/widgets/chart.py: maxint doesn't make any sense for float data, so use None rather if the datalimits (minEU and maxEU) defined for a tag are equal, ignore them adjust the limits for a tag group right at the end (when tags are grouped in axes) if the limits are the same put them on either side of the data (which is flat) so it is more visible than when its on the axis 2005-09-26 11:16 stephene * jToolkit/web/templateserver.py: removed commented out code 2005-09-23 15:59 stephene * jToolkit/web/templateserver.py: get a handler by passing pathwords to GetHandler 2005-09-23 15:56 stephene * jToolkit/web/templateserver.py: changed getmodule to accept a second argument, modulepath and use that to find the module to import. Also renamed templatename to modulename 2005-09-23 13:18 stephene * jToolkit/web/templateserver.py: import kid if it is available 2005-09-23 13:15 stephene * jToolkit/web/templateserver.py: templateserver is a class attribute 2005-09-23 12:45 stephene * jToolkit/web/templateserver.py: override gettemplatefilename in KidHandler 2005-09-23 12:27 stephene * jToolkit/web/templateserver.py: added a helper function to return the working directory of a tempate handler 2005-09-23 11:56 stephene * jToolkit/web/templateserver.py: overrode buildpage for KidHandler 2005-09-23 01:49 stephene * jToolkit/web/templateserver.py: Changed quite a lot. I would have liked to break this into several commits, but I'm still a bit of a newbie with linux and I didn't want to lose any changes while mucking about with merging from cvs like I usually do. Moved logic specific to templating specifics into the handlers. The handler decides which templating language is used and therefore also how to find it and compile it. I've currently implimented only TALHandler to find and compile TAL templates. URL's should now match to a handler (currently just a .py file with a RequestHandler class). That handler will determine where it's partner template is and serialize it. Different templating languages can then have their own naming systems (.kid for kid, .xhtml for tal, whatever) 2005-09-20 17:11 stephene * jToolkit/test/test_config.py: added a test to check that attributes can be inherited from ancestors of parents 2005-09-20 12:51 stephene * jToolkit/test/test_config.py: corrected spelling of overwride 2005-09-17 15:19 stephene * jToolkit/test/test_config.py: added tests for inheritance (inherited attributes, and overriding inheritted attributes) 2005-09-17 15:17 stephene * jToolkit/config.py: added support for nodes inheriting from other nodes, and being able to override one another's attributes, by overriding __getattr__. This is therefore not a policy design pattern (it would be really cool to get a policy design pattern going, but probably not worth the effort) 2005-09-16 17:44 server1 * jToolkit/spellcheck.py: aspell 0.33 doesn't support encoding arguments ... also raise an error if one is given by aspell 2005-09-16 17:19 stephene * jToolkit/config.py: changed openconfig to open. internally, this accesses __builtin__ to actually open files 2005-09-16 17:16 stephene * jToolkit/test/test_config.py: changed tests to open config files using config.open, which is overridden in config 2005-09-15 11:56 stephene * jToolkit/test/test_config.py: added a test for grandchildren 2005-09-15 11:55 stephene * jToolkit/test/test_config.py: added an assert for detecting the absence of options during test_simple_hasattr 2005-09-15 11:52 stephene * jToolkit/: config.py, test/test_config.py: renamed confignode to node 2005-09-14 15:57 davidf * jToolkit/prefs.py: handle _parser properly 2005-09-14 15:56 davidf * jToolkit/web/simplewebserver.py: added AltThreadingMixIn which will use PythonThreads from gcj if PyLucene is around. we don't need the sleep since threaded mode seems to fix posts on IE 2005-09-14 15:55 davidf * jToolkit/data/indexer.py: since we're going to use the indexer in multithreaded mode, wait for locks rather than failing 2005-09-14 12:20 stephene * jToolkit/editprefs/index.py: search for prefs files and make them available to editprefs 2005-09-14 00:55 stephene * jToolkit/editprefs/editprefs.py: removed server class in favor of templateserver.getserver and templateserver.run 2005-09-12 12:58 stephene * jToolkit/web/templateserver.py: factored start() out into getserver() and run() 2005-09-12 10:34 nickh * jToolkit/widgets/thumbgallery.py: fixed the check to see if a thumbnail exists. Stephen please check 2005-09-09 17:18 stephene * jToolkit/web/templateserver.py: added a start function to start a template webserver 2005-09-08 17:37 stephene * jToolkit/web/templateserver.py: return None (404) if the requested file does not exist 2005-09-06 18:33 stephene * jToolkit/web/templateserver.py: added GatherStickyLinks to add sticky parameters to links 2005-09-06 18:32 stephene * jToolkit/web/templateserver.py: added SetSticky to the template handler so that parameters can be set as sticky 2005-09-06 17:14 stephene * jToolkit/web/templateserver.py: use serialise() to get the expanded template in xml 2005-09-06 17:12 stephene * jToolkit/xml/taldom.py: factored out text generation code from expand into serialise so that the expanded dom can be retrieved seperately if necessary. 2005-09-06 15:30 stephene * jToolkit/web/templateserver.py: removed GetTALVars 2005-09-06 15:23 stephene * jToolkit/web/templateserver.py: moved buildpage() to RequestHandler so that it can be overridden easily in the handler 2005-09-06 15:10 stephene * jToolkit/web/templateserver.py: factored getTALVarsFromTemplateName out into GetHandler and getTALVars. Stored the request object globally (template server can only serve one file at a time). 2005-09-06 15:01 davidm * jToolkit/data/database.py: Backport: hack_statement, for database-specific changes to sql needed for certain databases Backport: The hack needed for mysql Backport: Recognition of the long data type in database data 2005-09-06 13:08 davidm * jToolkit/data/database.py: fix the sql hack to insert two backslashes instead of reinserting one backslash 2005-09-06 12:51 davidm * jToolkit/data/jsuite.py: Use the standardised way of executing sql statements, so we can wrap other behaviours 2005-09-06 12:36 davidm * jToolkit/data/: PyADO.py, database.py: Remove sql hack from PyADO, as it doesn't belong there (PyADO is only used for access and sqlserver) Add hack into database.py, hopefully in the right place 2005-09-06 12:17 davidm * jToolkit/data/PyADO.py: Correct MySQL hack - this should work in normal Python now 2005-09-06 11:59 davidm * jToolkit/data/PyADO.py: Added a facility to add provider-specific hacks into SQL statements, so we can deal with idiosyncrasies Added a hack for MySQL which escapes backslashes 2005-09-05 15:42 davidm * jToolkit/data/database.py: Add dbrepr handling for long numbers 2005-09-05 15:09 davidf * jToolkit/: config.py, test/test_config.py: added new config module, and tests for it 2005-09-02 12:02 stephene * jToolkit/editprefs/index.html: added a div to contain options as well as some test options 2005-08-31 17:47 stephene * jToolkit/spellcheck.py: the pipe to aspell should be opened in binary mode, rather than text mode as this definitely causes problems on windows 2005-08-29 17:00 stephene * jToolkit/editprefs/users.prefs: added to use as a more realistic example of a prefs file 2005-08-29 12:40 stephene * jToolkit/editprefs/index.html: removed line mouseover line highlighting because it is becomming very tricky to get it working in Internet Explorer as well as Firefox. I have left the css rules intact and only removed the event bindings and html, which can be easily returned when I come back to this. A css hack is probably going to be required to overcome box model differences. 2005-08-26 12:23 nickh * jToolkit/data/jsuite.py: added code to normalize invalid column names (e.g. those starting with a digit) and denormalize them in the return jSuiteTable rows so that the data can be used as expected 2005-08-26 11:57 stephene * jToolkit/web/templateserver.py: added mime support for .htc files 2005-08-25 13:09 stephene * jToolkit/editprefs/index.html: moved back to using textareas for names and values because this enables us to use :contains for our filtering. I was wrong about being able to modify the filtering selector to select parents based on children. CSS simply does not have a facility for selecting parents based on their children. 2005-08-24 18:53 stephene * jToolkit/editprefs/index.html: changed textareas to inputs 2005-08-24 11:06 stephene * jToolkit/editprefs/index.html: added closing tags for script tags because internet explorer doesn't load the page without them 2005-08-23 12:35 stephene * jToolkit/prefs.py: changed renamekey to renamepref, and added some documentation explaining that this wont work for PrefNodes 2005-08-22 23:51 stephene * jToolkit/test/test_prefs.py: added a test for renaming prefs. it uses py.test to make an assert about an exception, so I have included a try statement to attempt to import py.test directly off the python path 2005-08-22 16:46 stephene * jToolkit/editprefs/editprefs.py: handle renaming via ajax 2005-08-22 16:45 stephene * jToolkit/editprefs/index.html: removed linking to popups.css 2005-08-22 16:27 stephene * jToolkit/prefs.py: added renamekey to PrefsParser and some logic to getsource to rename the key in the source as well. 2005-08-22 12:44 stephene * jToolkit/editprefs/index.html: removed the popup 2005-08-19 11:43 stephene * jToolkit/editprefs/html/: css/popups.css, css/stripe.css, css/tree.css, images/blockdevice.png, images/folder_blue.gif, images/folder_blue_open.gif, images/plusfolder_blue.gif, images/plusfolder_blue_open.gif, js/HTMLoverlay.js, js/ajax.js, js/behaviour.js, js/jses.js, js/microapi.js, js/save.js, js/tree.jses, js/treeevents.js: remove html from the head 2005-08-19 10:49 stephene * jToolkit/editprefs/editprefs.html: removed editprefs.html 2005-08-18 18:16 stephene * jToolkit/editprefs/editprefs.py: removed debugging 2005-08-18 18:14 stephene * jToolkit/editprefs/html/js/treeevents.js: save values when they have changed 2005-08-18 18:14 stephene * jToolkit/editprefs/html/js/tree.jses: added a binding for textarea.name 2005-08-18 18:12 stephene * jToolkit/editprefs/html/js/save.js: added saveValue which sends instructions to save a single value 2005-08-18 18:12 stephene * jToolkit/editprefs/index.py: use the keyword 'prefkey' to refer to the key that relates to a prefs file 2005-08-18 18:10 stephene * jToolkit/editprefs/index.html: include a prefkey in the root of the tree, and a key in each element of the tree 2005-08-18 18:09 stephene * jToolkit/editprefs/editprefs.py: handle updates using elementtree 2005-08-18 12:55 stephene * jToolkit/editprefs/index.html: enclose the links in a div so that they are block level elements 2005-08-18 12:53 stephene * jToolkit/editprefs/index.html: use links in the list of exposed prefs files so they can be opened 2005-08-18 12:52 stephene * jToolkit/editprefs/index.py: include an href for the exposed prefs files 2005-08-18 12:50 stephene * jToolkit/editprefs/: editprefs.py, index.py: moved retrieval of the prefsfile from the server to the handler 2005-08-18 12:34 stephene * jToolkit/editprefs/index.py: add the exposed prefs files to the context. paths are rendered into prefs.PrefsParser objects when they are opened. It just occured to me that this might be done better in the server than in the handler. 2005-08-18 12:31 stephene * jToolkit/editprefs/index.html: include a list of exposed preferenecs by name (this doesn't have to relate to the filename in any way) 2005-08-18 12:29 stephene * jToolkit/editprefs/editprefs.py: keep a dictioanry of preferences to expose and pass it along to the request handler in the argdict 2005-08-18 01:08 stephene * jToolkit/editprefs/html/css/tree.css: reduced the size of the name textarea 2005-08-17 17:35 stephene * jToolkit/web/templateserver.py: factored out code that loads a handler from a template name and retrieves the tal context into a GetTALVarsFromTemplateName 2005-08-17 16:49 stephene * jToolkit/editprefs/html/css/tree.css: made active selectors more specific so they dont get accedentally overridden 2005-08-17 16:48 stephene * jToolkit/editprefs/html/css/tree.css: changed the font-families for the textareas and removed unused rules 2005-08-17 16:27 stephene * jToolkit/editprefs/html/css/tree.css: values are stored in textareas, not inputs 2005-08-17 16:25 stephene * jToolkit/editprefs/html/js/treeevents.js: change innerHTML when the value of the textarea changes. This is to make sure that the filter can search on the new field. 2005-08-17 16:17 stephene * jToolkit/editprefs/html/js/tree.jses: the value's are now stored in textareas so bind the events there 2005-08-17 16:14 stephene * jToolkit/editprefs/html/js/save.js: search for a textarea rather than an input field when searching for values 2005-08-17 16:09 stephene * jToolkit/editprefs/index.html: changed the input value to a textarea rather than an input 2005-08-17 13:02 stephene * jToolkit/editprefs/html/css/tree.css: changed the name rules to style a textarea instead of a span 2005-08-17 13:01 stephene * jToolkit/editprefs/index.html: changed the name container from a span to a textarea. This way it can be edited in place 2005-08-17 11:43 stephene * jToolkit/editprefs/html/js/save.js: include a 'filename' attribute in the changes node of the request xml 2005-08-17 11:42 stephene * jToolkit/editprefs/editprefs.py: load the prefs parser from the relative path supplied in the changes node and then use the __root__ of that parser to make assignments 2005-08-17 10:56 stephene * jToolkit/editprefs/index.html: added ajax.js to the imported scripts 2005-08-17 00:32 stephene * jToolkit/editprefs/html/js/save.js: use cssQuery to find modifications, and dont use a special library for string formatting 2005-08-17 00:30 stephene * jToolkit/editprefs/html/js/tree.jses: added a binding for the save link 2005-08-16 17:51 stephene * jToolkit/editprefs/editprefs.py: renamed oldgetpage to getpage and revamped it to work with the templateserver 2005-08-16 17:50 stephene * jToolkit/editprefs/index.html: include the relative filename of the prefs file as an attribute of the treecontainer 2005-08-16 17:48 stephene * jToolkit/editprefs/index.py: include filename in the context 2005-08-16 17:15 stephene * jToolkit/editprefs/html/js/tree.jses: added bindings for the keydown and blur events 2005-08-16 17:14 stephene * jToolkit/editprefs/html/js/treeevents.js: added keydown and blur event handlers for the value text inputs. The blur event handler manages the 'modified' class for a pref 2005-08-16 17:12 stephene * jToolkit/editprefs/index.html: each list item now has an 'href' attribute which is can be used to identify that node uniquely, and which the server will understand 2005-08-16 17:11 stephene * jToolkit/editprefs/index.py: add a unique key to the context at each folder and pref 2005-08-16 11:58 stephene * jToolkit/editprefs/html/css/tree.css: added rules for filtering the tree 2005-08-16 11:57 stephene * jToolkit/editprefs/html/js/treeevents.js: added a function and associated event handler for filtering the tree on a string 2005-08-16 11:55 stephene * jToolkit/editprefs/html/js/tree.jses: changed the searchbar to a filterbar 2005-08-16 11:54 stephene * jToolkit/editprefs/index.html: added a filter textbox 2005-08-15 16:27 stephene * jToolkit/editprefs/index.html: removed an id from the head and narrowed down the imported scripts to scrips we're currently using 2005-08-15 15:53 stephene * jToolkit/editprefs/index.html: removed duplicate tree (how did that stay in there so long?) 2005-08-15 15:49 stephene * jToolkit/editprefs/index.html: changed doctype to something more suitable 2005-08-15 15:47 stephene * jToolkit/editprefs/html/js/cssquery.js: upgraded cssQuery to version 2.0, with css2 support and most of css3 2005-08-15 14:36 stephene * jToolkit/editprefs/html/js/jses.js: make sure that a declaration doesnt start with whitespace as cssQuery 2.0 doesnt like that 2005-08-12 14:36 stephene * jToolkit/editprefs/html/css/tree.css: added a container for the tree, so that a vertical scroll bar will appear if the tree becomes too long. This is instead of scrolling the entire page. 2005-08-12 14:34 stephene * jToolkit/editprefs/html/js/treeevents.js: make sure the folder link is blured after deselecting the list item 2005-08-12 14:15 stephene * jToolkit/editprefs/html/js/: tree.jses, treeevents.js: added event handlers and bindings for mousing over the tree so that current item is visible with a light background 2005-08-12 14:12 stephene * jToolkit/editprefs/html/js/: save.js, treeevents.js: moved jscss from save.js to treeevents.js 2005-08-04 17:17 stephene * jToolkit/editprefs/html/js/treeevents.js: added an event handler for the folder icons 2005-08-04 17:16 stephene * jToolkit/editprefs/html/js/tree.jses: added an event binding for the folder icons 2005-08-04 17:06 stephene * jToolkit/editprefs/html/js/treeevents.js: added event handlers for the pref values events 2005-08-04 17:03 stephene * jToolkit/editprefs/html/js/tree.jses: added events for the pref values 2005-08-04 16:06 stephene * jToolkit/editprefs/html/js/jses.js: Bubble events, rather than capturing them. In other words, events should be passed up the tree, not down it. 2005-08-04 12:12 stephene * jToolkit/editprefs/html/js/jses.js: adjusted the regular expression so that it only matches one pair of selector+rules at a time 2005-08-03 23:45 stephene * jToolkit/widgets/form.py: rolled back to 1.52 to use a widget for spellchecking 2005-08-03 18:38 stephene * jToolkit/widgets/spellingstandby.html: merged spellingstandby.html into head 2005-08-03 18:31 stephene * jToolkit/widgets/spellingstandby.html: a waiting screen while spellchecking is going on in the background 2005-08-03 16:40 stephene * jToolkit/web/templateserver.py: support the 'text/jses' content type which we use to bind events to objects using css syntax 2005-08-03 16:35 stephene * jToolkit/editprefs/editprefs.py: removed commented-out code 2005-07-29 18:11 stephene * jToolkit/prefs.py: if an import statement is reached add the root prefnode of the prefs file to be imported to the root prefnode of the current prefs file. This can definitely be improved apon, but works for now. 2005-07-29 13:43 stephene * jToolkit/prefs.py: change the operation to 'import' if the import token is found 2005-07-22 18:01 stephene * jToolkit/editprefs/index.py: make sure that all values are strings 2005-07-22 18:01 stephene * jToolkit/editprefs/index.html: fleshed out the templating for the tree. Note that this uses the "named" attribute in TAL. 2005-07-22 17:33 stephene * jToolkit/editprefs/index.py: removed some debugging 2005-07-22 17:26 stephene * jToolkit/editprefs/index.py: index.py is the handler for the main editprefs template 2005-07-22 17:26 stephene * jToolkit/editprefs/index.html: index.html is the main editprefs template 2005-07-22 17:25 stephene * jToolkit/editprefs/html/: .htaccess, index.htm: removed HTML directory 2005-07-22 17:24 stephene * jToolkit/editprefs/editprefs.py: changed over to a template server using template handlers 2005-07-22 12:20 stephene * jToolkit/editprefs/: __init__.py, editprefs.html, editprefs.prefs, editprefs.py, testprefs.prefs, html/.htaccess, html/index.htm, html/css/popups.css, html/css/stripe.css, html/css/tree.css, html/images/blockdevice.png, html/images/folder_blue.gif, html/images/folder_blue_open.gif, html/images/plusfolder_blue.gif, html/images/plusfolder_blue_open.gif, html/js/HTMLoverlay.js, html/js/ajax.js, html/js/behaviour.js, html/js/cssquery.js, html/js/jses.js, html/js/microapi.js, html/js/save.js, html/js/tree.jses, html/js/treeevents.js: added editprefs to the main branch 2005-07-21 02:49 stephene * jToolkit/xml/taldom.py: manage a stack of contexts that are merged on request. Defining a local variable pushes the new context onto the stack. It is removed when the variable falls out of scope. In this way local variables will override global variables, but will never overwrite them. 2005-07-21 02:45 stephene * jToolkit/xml/taldom.py: changed getcontext to instead merge a stack of contexts from the bottom up 2005-07-20 14:19 stephene * jToolkit/xml/taldom.py: added getcontext that evaluates the local context by recursing down the tree. Child nodes take precidence over parent nodes as they are defining a local scope. In this way local variables are be limited to their scope and can override global variables in that scope without overriding them in the global scope. 2005-07-20 13:39 davidm * jToolkit/tail.py: Added a function to tail to reduce files to a certain number of lines 2005-07-20 13:39 davidm * jToolkit/scheduler.py: Added a function to the scheduler to maintain logfiles 2005-07-20 11:33 davidm * jToolkit/tail.py: Added a module to Pythonically get the tail of a file - from http://mithrandr.moria.org/blog/147.html, originally from the Python Cookbook 2005-07-20 11:17 davidm * jToolkit/mailer.py: Fixed smtp mail sending 2005-07-20 11:17 davidm * jToolkit/errors.py: We don't want to know if the event object exists, we want to know if the event ahs happened 2005-07-19 14:24 stephene * jToolkit/xml/taldom.py: added support for the "named" attribute, which I just made up and is in no way supported by the TAL standard :). It acts similarly to Named Template Functions in Kid. 2005-07-19 14:23 stephene * jToolkit/xml/taldom.py: added limited support for the "define" attribute 2005-07-19 14:21 stephene * jToolkit/xml/taldom.py: sort operations before iterating through them. The standard TAL order of operations is: * define * condition * repeat * content or replace * attributes * omit-tag but for our purposes I have changed this to * condition * define * content or replace * repeat * attributes * named 2005-07-13 16:40 stephene * jToolkit/js/spellui.js: dont include fontWeight or fontStyle as they are causing problems under Internet Explorer 2005-07-12 11:34 stephene * jToolkit/widgets/spellui.py: autorunscript was not being closed off correctly, so I have implimented it as a PlainContents widget till we rewrite it as a template 2005-07-08 17:28 davidm * jToolkit/web/server.py: Add a bit of extra protection around a decode where we might hit strange characters 2005-07-08 17:00 davidm * jToolkit/test/test_indexer.py: Added a few more tests for the indexer 2005-07-07 15:13 stephene * jToolkit/xml/taldom.py: match the formatting as the contents of single quotes in the second argument 2005-07-06 10:20 davidm * jToolkit/attachments.py: Check to see that every attachment we try to index is actually an attachment 2005-07-06 00:24 davidm * jToolkit/data/indexer.py: Change the encoding, so simplewebserver doesn't bork later. Delay deleting the temporary pdf until we've parsed it. 2005-07-05 23:40 davidm * jToolkit/test/test_archiver.py: Test at least one negative pseudo-number 2005-07-05 23:33 davidm * jToolkit/data/archiver.py: ConvertValue should also handle 1.#IND values 2005-07-05 23:33 davidm * jToolkit/test/test_archiver.py: Add a test for a new requirement for the ConvertValue function 2005-07-05 23:03 davidm * jToolkit/test/test_archiver.py: Add test file for the data.archiver component Add a test for the ConvertValue function 2005-07-05 22:43 davidm * jToolkit/data/archiver.py: Add handler for infinite numbers in the dataset to be imported 2005-07-05 15:45 davidm * jToolkit/data/indexer.py: Make sure the reader is open if we want to retrieve all the field names 2005-07-05 15:24 stephene * jToolkit/widgets/spellcheckable.html: added the spellcheckable template 2005-07-05 15:23 stephene * jToolkit/widgets/form.py: load the spellcheckable template if the displaytype is spelltext 2005-07-05 14:18 davidm * jToolkit/test/test_indexer.py: Adjust the indexer test to test that delete returns True, as this functionality is required 2005-07-05 14:17 davidm * jToolkit/data/indexer.py: Remove some pointless log messages. Make sure we return True if we're meant to, through Apache 2005-07-05 14:16 davidm * jToolkit/attachments.py: If we append, it needs to be binary too 2005-07-04 12:47 davidm * jToolkit/data/jsuite.py: Don't assume the table name is the same as the manager name 2005-07-01 21:33 davidf * jToolkit/xml/taldom.py: don't convert things to strings gratuitously 2005-07-01 21:12 davidf * jToolkit/passwordgen.py: file was in DOS format, fixed to unix (should come out fine under DOS) 2005-07-01 21:11 davidf * jToolkit/: __init__.py, __version__.py, attachments.py, cidict.py, errors.py, glock.py, installgui.py, languagenames.py, localize.py, mailer.py, minicrypt.py, passwordgen.py, pdffile.py, prefs.py, scheduler.py, serviceerrors.py, sparse.py, spellcheck.py, timecache.py, winreg.py, wxPrefs.py, data/ADOProviders.py, data/ADOTypes.py, data/PyADO.py, data/_PyADO.py, data/__init__.py, data/archiver.py, data/database.py, data/dates.py, data/dbtable.py, data/indexer.py, data/jsuite.py, data/sqlparse.py, demo/__init__.py, demo/dbdemo.py, demo/fileupload.py, demo/helloworld.py, demo/multidemo.py, demo/tutorial/attrib.py, demo/tutorial/index.py, demo/tutorial/innertal.py, demo/tutorial/introspect.py, demo/tutorial/simpleform.py, demo/tutorial/simplerepeat.py, demo/tutorial/simplesubst.py, demo/tutorial/switchtal.py, demo/tutorial/tutorial.py, web/__init__.py, web/apache_postinstall.py, web/domcms.py, web/httpcodes.py, web/postMultipart.py, web/record.py, web/safeapache.py, web/server.py, web/session.py, web/simplewebserver.py, web/templateserver.py, widgets/__init__.py, widgets/chart.py, widgets/form.py, widgets/grid.py, widgets/spellui.py, widgets/table.py, widgets/thumbgallery.py, widgets/widgets.py, xml/__init__.py, xml/fixminidom.py, xml/html2xls.py, xml/taldom.py: made all files marked as utf-8 encoded [Simos Xenitellis] 2005-07-01 16:12 davidf * jToolkit/xml/taldom.py: took parsing of format expressions out into a method make sure that findtalvarnames handles format expressions 2005-07-01 16:11 davidf * jToolkit/demo/tutorial/: introspect.html, introspect.py: added code to demonstrate TAL introspection 2005-07-01 15:58 davidf * jToolkit/__version__.py: version 0.7 2005-07-01 15:51 davidm * jToolkit/data/indexer.py: Added a close() function through the Apache separate process, for Searchers. Changed the function close() for SearcherPool to close all searchers for a single directory. Added a function closeAll() to SearcherPool, to do what close() used to do, and to actually close the Searchers Create a new indexer for a thread if we change the directory we're working on, so it doesn't always index on the old directory. 2005-07-01 15:49 stephene * jToolkit/demo/tutorial/: simplesubst.html, simplesubst.py: added some rounding to the tutorial 2005-07-01 15:33 stephene * jToolkit/xml/taldom.py: remove the eval() statement as it is probably dangerous 2005-07-01 15:29 stephene * jToolkit/xml/taldom.py: make sure that any values that will end up in the dom are converted to strings 2005-07-01 15:04 davidm * jToolkit/test/test_indexer.py: Make sure we close the searcher in the teardown_method, as otherwise we can't delete the index directory on Windows 2005-07-01 15:03 davidm * jToolkit/data/indexer.py: indexer.Indexer now creates its own lock, so there's no need to pass one in 2005-07-01 14:34 davidf * jToolkit/test/test_indexer.py: added tests for apache setup 2005-07-01 14:15 davidf * jToolkit/xml/taldom.py: fix variable name 2005-07-01 13:59 stephene * jToolkit/xml/taldom.py: we only have to convert to a string if this is an integer (for the sake of our dom parser) 2005-07-01 13:01 davidf * jToolkit/test/test_prefs.py: add test to make sure missing attributes are missing 2005-07-01 12:55 davidf * jToolkit/prefs.py: use real getattr and hasattr methods in fallthrough 2005-07-01 12:49 davidf * jToolkit/prefs.py: make getattr and hasattr support multiple levels with . if unicode ends up in getsource, convert it to utf-8 2005-07-01 12:48 davidf * jToolkit/test/test_prefs.py: check that we can use hasattr and getattr on multi-level attributes test adding children to unicode keys 2005-07-01 12:30 davidm * jToolkit/data/indexer.py: Write and read files in binary, so that it doesn't mess up the encoding 2005-07-01 12:21 davidf * jToolkit/web/: session.py, simplewebserver.py: handle unicode usernames 2005-07-01 12:04 davidf * jToolkit/prefs.py: made PrefNode an object and added __getattr__, __hasattr__ for unicode support also added __hasattr__ to PrefParser and use it where appropriate this means we can now do x.__getattr__(u"xxx") since Python doesn't support getattr(x, u"xxx") 2005-07-01 11:41 davidf * jToolkit/spellcheck.py: always decode results as sometimes output has unicode even though input doesn't 2005-07-01 11:37 davidf * jToolkit/prefs.py: add the ability to store unicode keys and values using a u prefix the actual strings are encoded in utf-8 removed strange key != str(value) in setvalue from revision 1.52 and replaced it with a PrefNode instance check (couldn't work out why it was there!) some of the code should probably be moved to sparse 2005-07-01 11:11 davidf * jToolkit/sparse.py: added support for having a unicodeprefix (like "u" in python) in front of strings simply set self.unicodeprefix = "u" 2005-07-01 11:04 davidf * jToolkit/test/test_prefs.py: test multi-level variable 2005-07-01 11:01 davidf * jToolkit/test/test_prefs.py: renamed test variables to make them less verbose added test to add a nonascii (but not unicode) key adjusted test_add_unicode_key to reflect Python attribute handling 2005-07-01 10:15 davidf * jToolkit/test/test_prefs.py: it would be a much better test to test on the re-read file, not the original one. both unicode tests fail now :-) 2005-07-01 10:03 davidf * jToolkit/test/test_prefs.py: add test for unicode values and keys (keys currently fail)