2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* NEWS:
Update NEWS prior to 0.3.1 release
2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* VERSION:
* configure.ac:
Bump version to 0.3.1
2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/main.py:
* _zeitgeist/engine/remote.py:
* doc/zeitgeist/source/dbus_api.rst:
* test/engine-test.py:
* zeitgeist/client.py:
Rename the method FindRelated -> FindRelatedUris, likewise inside the engine
2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/remote.py:
* doc/zeitgeist/source/dbus_api.rst:
* test/remote-test.py:
* zeitgeist/client.py:
Lots of doc polish on the dbus.FindRelated() and client.find_related*() and fiddle about with method paramters to simplify it and make it more coherent with the rest of the API
2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/engine-test.py:
Fix engine test case 'testRelatedForMultipleEvents'. The relevancy ranking had changed by the recent tweak to the algo in engine.find_related()
2010-01-10 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/main.py:
find_related: increment the number of ranges analyzed from
7 to 100. This gives much better results.
That LIMIT is only there to avoid too much querying when
a long time period is given for a very used item. Long term
we need to figure out something better.
2010-01-10 "Mikkel Kamstrup Erlandsen" <email address hidden>
* doc/zeitgeist/source/dbus_api.rst:
* zeitgeist/datamodel.py:
Polishing of the docs, adding some more cross refs and fixing some grammar
2010-01-09 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/test-engine-extension.rst:
Update the extension tutorial to reflect that we now have one default extenion, namely "Blacklist"
2010-01-09 "Mikkel Kamstrup Erlandsen" <email address hidden>
* doc/zeitgeist/source/dbus_api.rst:
* zeitgeist/datamodel.py:
Document the event dbus wire format in the DBus API section
Specify that subjects requiting a network interface have subject.storage="net" and subjects that are deleted have subject.storage="deleted"
2010-01-09 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extensions/blacklist.py:
* _zeitgeist/engine/remote.py:
* doc/zeitgeist/source/dbus_api.rst:
Update DBus API docs with the Blacklist API
2010-01-07 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/datamodel.py:
Document how event.actor is encoded (as fx. app://firefox.desktop). This fixes bug #488790: "What value should event.actor have?"
2010-01-06 Markus Korn <email address hidden>
* _zeitgeist/engine/notify.py:
fixed ValueError (wrong number of argument to
MonitorManager.remove_monitor()) and RuntimeError (changing size of
MonitorManager._connections)
2010-01-06 Markus Korn <email address hidden>
* _zeitgeist/engine/notify.py:
fixed MonitorManager to handle NameOwnerChanged signals correctly.
The monitor class is called _MonitorProxy and not just Monitor
2010-01-06 Markus Korn <email address hidden>
* _zeitgeist/engine/extensions/blacklist.py:
The blacklist is running in its own DBus scope (object_path and interface
address). Using this instead of the generic zeitgeist addresses.
2010-01-06 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* zeitgeist/client.py:
Fixed code to find related events. The API and engine methods got renamed
some time ago, but not all neccessary bits where updated accordingly
2010-01-05 Markus Korn <email address hidden>
* _zeitgeist/engine/__init__.py:
* If set, zeitgeist is now using the ZEITGEIST_DATABASE_PATH env variable to
get the location of the database again.
2010-01-05 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
added missing argument to TimeRange.always()
2010-01-05 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
* fixed generation of API docs in cases where zeitgeist is also installed
systemwide
2010-01-04 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/extensions/blacklist.py:
* _zeitgeist/engine/main.py:
* _zeitgeist/engine/remote.py:
* test/benchmarks.py:
* test/engine-extension-test.py:
* test/engine-test.py:
Fix constants stuff
2010-01-04 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist/datamodel.py:
Add .from_seconds_now to datamodel.TimeRange and switch
all such methods from static to classmethods.
2010-01-04 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/extensions:
* _zeitgeist/engine/extensions/Makefile.am:
* _zeitgeist/engine/extensions/__init__.py:
* _zeitgeist/engine/extensions/blacklist.py:
* test/blacklist-test.py:
* _zeitgeist/engine/Makefile.am:
* _zeitgeist/engine/__init__.py:
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/main.py:
* _zeitgeist/engine/remote.py:
* configure.ac:
* test/benchmarks.py:
* test/engine-extension-test.py:
* test/engine-test.py:
Merge with lp:~kamstrup/zeitgeist/blacklist
- Add Mikkel Kamstrup's implementation of a blacklist,
together with the needed changes to the extensions system.
Good work Mikkel!
Some changes from my side:
- Add a .constants namespace to __init__.py and move several
constants into there. They can be used both by Zeitgeist
itself and by extensions (eg. DATA_PATH).
- Fix test/engine-extension-test.py so that it doesn't break
now that there are extensions loaded by default.
- Some other little tweaks.
2009-12-31 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extensions/Makefile.am:
* _zeitgeist/engine/Makefile.am:
* configure.ac:
Add needed autofoo magic to include the new blacklist extension files in the distribution tarball
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/extensions/blacklist.py:
Updates reflecting Markus' comments on LP review
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/blacklist-test.py:
Add a test to the blacklist extension to check that events are indeed filtered/let through correctly
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* doc/zeitgeist/source/client.rst:
* doc/zeitgeist/source/datamodel.rst:
* doc/zeitgeist/source/dbus_api.rst:
* doc/zeitgeist/source/engine.rst:
* doc/zeitgeist/source/tutorial_engine_extension.rst:
* .bzrignore:
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* doc/Makefile.am:
* doc/zeitgeist/source/conf.py:
* doc/zeitgeist/source/index.rst:
* test/datamodel-test.py:
* test/remote-test.py:
* test/resonance-engine-test.py:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
* doc/dbus:
* doc/zeitgeist:
Merge in latest changes from trunk in order to have a clean diff for review
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/resonance-engine-test.py:
Disable all extensions in resonance-engine-test.py. Extensions like Blacklist keep state around which can not know how to reset
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extensions/blacklist.py:
Fix buggy serilization of events in _event2popo()
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extensions/blacklist.py:
Use unicode instead of str when converting Events into POJOs for pickling
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/resonance_engine.py:
Ensure proper loading and unloading of engine extensions
2009-12-29 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/__init__.py:
Bugfix: Properly extract engine name when detecting if we already have an engine instance in create_engine()
2009-12-21 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/blacklist-test.py:
* _zeitgeist/engine/extensions/blacklist.py:
Blacklisting DBus interface actually working, and two test cases are running.
CAVEAT: I consistently get a warning in my log which needs debugging:
WARNING:zeitgeist.blacklist:Failed to load blacklist config file /home/mikkel/.config/zeitgeist/blacklist.pickle: Invalid subject data length 71, expected 7
2009-12-17 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/extensions/blacklist.py:
* _zeitgeist/engine/resonance_engine.py:
Make the new blacklist infrastructure actually runnable
2009-12-16 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/__init__.py:
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/resonance_engine.py:
Add functionality to load a default set of extensions given string definiting their fully qualified paths and hook this up the engine
2009-12-16 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extensions:
* _zeitgeist/engine/extensions/blacklist.py:
Beginnings of a blacklist extension
2010-01-04 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/Makefile.am:
* _zeitgeist/engine/__init__.py:
* _zeitgeist/engine/remote.py:
* test/benchmarks.py:
* test/run-all-tests.py:
* test/test-engine-extension.rst:
* _zeitgeist/engine/resonance_engine.py:
* _zeitgeist/engine/main.py:
* test/resonance-engine-extension-test.py:
* test/engine-extension-test.py:
* test/resonance-engine-test.py:
* test/engine-test.py:
Remove the "resonance" branding everywhere and what remains
of the multiple backends code (which was pretty much broken
by now, hopefully won't be needed ever again, and it
impedes some further simplifications).
2010-01-01 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist/__init__.py:
Add missing import.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* extra/zeitgeist-daemon.bash_completion:
* zeitgeist-daemon.py:
Add Bash tab-completion.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/singleton.py:
* doc/zeitgeist-daemon.1:
* zeitgeist-daemon.py:
* zeitgeist/__init__.py:
* zeitgeist/datamodel.py:
Update zeitgeist-daemon to use OptionParser.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/extension.py:
* zeitgeist/__init__.py:
* zeitgeist/_config.py.in:
More changes to _config. Wrap it around a class so that we can
add additional stuff to it and try to figure out the bzr revision
when running from the repository.
I'd probably make sense to move all this config stuff into
_zeitgeist/, but for that the autotools stuff needs to be updated
to install zeitgeist-daemon into the same directory as the private
zeitgeist module and to only put a symlink into /usr/bin.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist/__init__.py:
Change zeitgeist/__init__.py so that MockConfig is still used
after running "make", without the need to remove _config.py.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* _zeitgeist/loggers/datasources/recent.py:
* zeitgeist/datamodel.py:
Move get_timestamp_for_now from resonance_engine.py to datamodel.py
and use it everywhere.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist-daemon.py:
Remove the "Deine Mudda rocks" easter-egg.
2009-12-30 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/remote-test.py:
* test/resonance-engine-test.py:
* zeitgeist/client.py:
Rename get_most_used_with to find_related and move time_range
to be the first argument.
(This is some old uncommitted stuff I had lying around here
and doesn't fix all of #498878.)
2009-12-20 Siegfried-Angel Gevatter Pujals <email address hidden>
* test/remote-test.py:
* zeitgeist/client.py:
Add methods for get_most_used_with_subjects to client.py
2009-12-20 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist/client.py:
client.py: create _safe_reply_handler and _safe_error_handler
to avoid duplicating the sanity checks for them everywhere.
2009-12-20 Siegfried-Angel Gevatter Pujals <email address hidden>
* zeitgeist/client.py:
Split most of the lines in client.py exceeding 80 characters
2009-12-20 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/remote-test.py:
* test/resonance-engine-test.py:
Change GetMostUsedWithSubjects to take an event_template
instead of a list of URIs. This makes it much more powerful.
2009-12-18 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
* doc/zeitgeist/source/datamodel.rst:
* zeitgeist/datamodel.py:
Enums in ResultType and StorageState are now subclasses of int with a
docstring. This docstrings are used to autogenerate docs instead of using
the hardcoded item-list we had before.
2009-12-17 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
* doc/zeitgeist/source/datamodel.rst:
* zeitgeist/datamodel.py:
Enums in ResultType and StorageState are now subclasses of int with a
docstring. This docstrings are used to autogenerate docs instead of using
the hardcoded item-list we had before.
2009-12-17 Markus Korn <email address hidden>
* doc/zeitgeist/source/tutorial_engine_extension.rst:
* doc/zeitgeist/source/index.rst:
Added the first tutorial 'Tutorial - How do extensions to the engine work?'
to the documentation of the engine. It is a symlink to the extension
framework doctest.
2009-12-17 Seif Lotfy <email address hidden>
* zeitgeist/client.py:
allow asking for the API version over the ZeitgeistClient
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/client.rst:
* doc/zeitgeist/source/datamodel.rst:
* doc/zeitgeist/source/dbus_api.rst:
* doc/zeitgeist/source/engine.rst:
* .bzrignore:
* doc/Makefile.am:
* doc/zeitgeist/source/conf.py:
* doc/zeitgeist/source/index.rst:
* test/datamodel-test.py:
* zeitgeist/datamodel.py:
* doc/dbus:
* doc/zeitgeist:
* Started restructuring the documentation (LP: #497324)
- splitted up the huge index page into smaller bits
- shpinx does now generate the documentation for Symbols
- change things such that we cannot only ship a DBus API documentation
but also development related docs about our engine.
* fix some testcases, because of the changes to the documentation framework
the docstring if Symbols are looking different now.
2009-12-16 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
added url to the symbol's docstring
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/datamodel.rst:
handle StorageState and ResultType as data
2009-12-16 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
readded object doc for SymbolCollections, fixed typo
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
removed some inports
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
* doc/zeitgeist/source/datamodel.rst:
* zeitgeist/datamodel.py:
Added SymbolDocumenter to the docs, this allows creating of documentation
for Interpretation and Manifestation on the fly, we don't need the __doc__
hack anymore
2009-12-16 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
merged lp:zeitgeist
2009-12-16 Markus Korn <email address hidden>
* .bzrignore:
bzr ignore files related to the process of building the docs
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/engine.rst:
added dummy documentation source for the engine
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/dbus_api.rst:
added index entries for DBus interfaces
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/index.rst:
added some text to the index page of the documentation
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/index.rst:
changed order of entries in the docs TOC
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/client.rst:
* doc/zeitgeist/source/datamodel.rst:
* doc/zeitgeist/source/dbus_api.rst:
* doc/zeitgeist/source/index.rst:
splitted index.html into multible different pages
2009-12-16 Markus Korn <email address hidden>
* doc/zeitgeist/source/conf.py:
made clear the documentation is not only about the DBUS API
2009-12-16 Markus Korn <email address hidden>
* doc/Makefile.am:
* doc/dbus:
* doc/zeitgeist:
renamed doc/dbus -> doc/zeitgeist
2009-12-16 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/loggers/datasources/evolution.py.in:
* _zeitgeist/loggers/datasources/firefox.py.in:
* _zeitgeist/loggers/datasources/tomboy.py.in:
* _zeitgeist/loggers/datasources/twitter.py.in:
Delete old inactive data sources for now.
2009-12-16 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/remote.py:
* test/remote-test.py:
Fix GetMostUsedWithSubjects D-Bus to take all 5
arguments required by get_most_used_with_subjects.
Fix the test-case in ./test/remote-test.py.
2009-12-16 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
changed type of zeitgeist.datamodel.SymbolCollection from dict to object.
This removes the overhead of having an aditional dict around, instead we are
using __dict__ directly
2009-12-16 Markus Korn <email address hidden>
* test/remote-test.py:
added (failing) testcase for RemoteInterface.GetMostUsedWithSubjects
2009-12-15 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
fixed IndentionError in remote.py (LP: #497139)
2009-12-15 Seif Lotfy <email address hidden>
* _zeitgeist/engine/remote.py:
fixed little issue with signatures for get_most_used_with_subjects
2009-12-15 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Rename get_most_used_with_subject to _subjects and let
it take a list of subject URIs.
2009-12-14 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* doc/dbus/source/index.rst:
* test/remote-test.py:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
* If GetEvents is called with an event id which does either not exist or is
blocked a NULL_EVENT struct is returned (LP: #495392)
* Documented this behaviour and also the fix for bug 495179
2009-12-14 Markus Korn <email address hidden>
* doc/dbus/Makefile:
merged lp:zeitgeist
2009-12-14 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* doc/dbus/source/index.rst:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
documented NULL_EVENT
2009-12-14 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/remote-test.py:
* test/resonance-engine-test.py:
merged lp:zeitgeist
2009-12-14 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
documented `0` return value in InsertEvents
2009-12-11 Markus Korn <email address hidden>
* test/data/apriori_events.js:
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
* zeitgeist/datamodel.py:
merged latest changes from lp:zeitgeist
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
simpllified loop in GetEvents()
2009-12-11 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
change NULL_EVENT to python tuple, thanks RainCT for this hint
2009-12-11 Markus Korn <email address hidden>
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
* completed renaming Event.new_from_raw() -> Event.new_from_struct()
* made Event.new_for_values() a classmethod
* made Event._dict_contains_subject_keys() a staticmethod
2009-12-11 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
made Event.new_for_data a classmethod
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* test/remote-test.py:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
Added NULL_EVENT as one approach to fix (LP: #495392)
This branch still needs some tweaks but should be able to show the overall
idea
2009-12-14 Markus Korn <email address hidden>
* doc/dbus/Makefile:
removed creation of 'zeitgeist' symlink in _zeitgeist/engine at doc
build-time. This is handled on python level in doc/dbus/source/conf.py
2009-12-13 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Fix regression in FindEventIds because of which the return
value of where.may_have_results() and where.sql were incorrect
in the case that a condition with no results but including a
timestamp was asked for.
2009-12-13 Markus Korn <email address hidden>
* test/resonance-engine-test.py:
'fixed' the engine testcase for bug 496109, this test is failing now too
2009-12-13 Markus Korn <email address hidden>
* test/remote-test.py:
* test/resonance-engine-test.py:
Added testcases for bug 496109
The pure engine testcase is working as expected, but the testcase
using the remote API fails.
2009-12-11 Siegfried-Angel Gevatter Pujals <email address hidden>
* test/data/apriori_events.js:
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
* zeitgeist/datamodel.py:
Merge with lp:~zeitgeist/zeitgeist/apriori/, adding a
get_most_used_with_subject function and some cleanup of the
WHERE clause handling stuff.
2009-12-11 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Fix regression in WhereClause stuff with last commit.
2009-12-11 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Order results from get_most_used_with_subject from
most to least relevant.
2009-12-11 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/data/apriori_events.js:
* test/resonance-engine-test.py:
* zeitgeist/datamodel.py:
Finish up get_most_used_with_subject so that the
result_event_templates filter is used, and add a
testcase for this.
Add some more sugar to the WhereClause class.
2009-12-09 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Change get_most_used_with_subject to use a custom query to
find the initial set of timestamps, instead of calling both
get_events and find_event_ids.
Also add a docstring to it and let it take several additional
arguments (not all are implemented yet).
2009-12-09 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
Optimize SQL.
2009-12-09 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
Build the WHERE clause construction stuff from find_eventids into a separate function.
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
Change query from using LeastRecent to MostRecentEvents.
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Rename function to "get_most_used_with_subject", add a
D-Bus method for it and add a check to avoid ZeroDivisionError.
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
More cleanup.
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
A bit more cleanup.
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
Little bit of cleanup :).
2009-12-08 Seif Lotfy <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
fixed test case and removed prints
2009-12-08 Seif Lotfy <email address hidden>
* test/data/apriori_events.js:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
added a most_used using a very simplified "A Priori" approach
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-extension-test.py:
* test/resonance-engine-test.py:
From now on an event-id of 0 indicates an error (LP: #495179)
Implemented this convention for InsertEvent
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
renamend error wrapper in ZeitgeistEngine as suggested by Mikkel
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
added comment about finding the last event id
2009-12-11 Markus Korn <email address hidden>
* test/resonance-engine-test.py:
fixed engine tests to respect new error handling for insert_events
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
as the last_event_id is raised before each insert it is safe to use 0 as
beginning id if we are using an empty database.
2009-12-11 Markus Korn <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-extension-test.py:
From now on an event-id of 0 indicates an error (LP: #495179)
This revisions implements this convention for InsertEvent.
2009-12-10 Markus Korn <email address hidden>
* test/resonance-engine-extension-test.py:
added failing testcase to test insert_hook for extensions
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* Makefile.am:
Change changelog generation rule in Makefile.am to only
show changes after 0.1.0 was released.
This is already long enough and saves us all the commits
which included GUI stuff. (In fact I don't believe that
we need a ChangeLog, the NEWS file is more than enough,
but that's a different topic :)).
2009-12-08 Siegfried-Angel Gevatter Pujals <email address hidden>
* Makefile.am:
Changes to the hashbang substitution in Makefile.am.
2009-12-07 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/resonance_engine.py:
Change name of hook methods in Extension to {get,insert}_event_hook(). And move all hooks logic into the ExtensionCollection class
2009-12-07 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/extension.py:
* _zeitgeist/engine/resonance_engine.py:
Implement two hooks extensions may implement in order to filter, change, or block events as they enter or leave the engine
2009-12-07 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
Make it the responsibility of remote.py to wrap raw DBus events into Event class instances.
This removes DBus logic from the core engine
2009-12-07 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
removed redundant brackets
2009-12-07 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
Change GetEvents() to use our own escaping instead
of the one provided by sqlite3. This allows us to
fetch more than 999 events at once.
2009-12-07 Siegfried-Angel Gevatter Pujals <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/data/twenty_events.js:
* test/resonance-engine-test.py:
Fix bug in find_eventids where using more than one event
template resulted in all but the first one ignoring the
timestamp restriction.
Also update the test case we created for bug #490110 to
catch this problem now that we really know what it is.
2009-12-06 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/remote.py:
* doc/dbus/source/index.rst:
* zeitgeist/client.py:
Prettify the docs about org.gnome.zeitgeist.Monitor
2009-12-06 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/datamodel.py:
More doc polish
2009-12-06 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/datamodel.py:
Fix URL of Interpretation.APPLICATION to correct Nepomuk URI
2009-12-06 "Mikkel Kamstrup Erlandsen" <email address hidden>
* doc/dbus/source/index.rst:
* zeitgeist/datamodel.py:
Make the generated docs for Symbols (Interpretation and Manifestation) a lot prettier and also print their display name and URI
2009-12-06 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* _zeitgeist/engine/Makefile.am:
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* doc/dbus/source/index.rst:
* test/datamodel-test.py:
* test/remote-test.py:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
Merge lp:~kamstrup/zeitgeist/notifications
This brings in a new DBus API for apps to be notified when the engine inserts or deletes events.
It works like this: The client sets up a DBus object implementing org.gnome.zeitgeist.Monitor
and sends the DBus path of this object together with a time range and a set of event tempaltes
to the engine. The engine will then notify the monitor object when a matching event is changed.
2009-12-05 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* test/remote-test.py:
Allow an empty set of Monitor templates to match anything
2009-12-05 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* _zeitgeist/engine/remote.py:
* _zeitgeist/engine/resonance_engine.py:
* test/datamodel-test.py:
* test/remote-test.py:
* zeitgeist/client.py:
* zeitgeist/datamodel.py:
Whopping commit updating the Monitor/Notify framework as follows:
org.gnome.zeitgeist.Monitor now has two methods:
NotifyInsert(in (xx) time_range, in aE events)
NotifyDelete(in (xx) time_range, in au event_ids)
The client.install_monitor() method needed to be adapted to take two callbacks instad
The NotifyDelete call always receives _all_ deleted event ids. We can however at times
drop the notification all together if the Monitor time range is outside of the time range
of the deleted events.
The core notification system, notify.py needed update to this new DBus signature
I also changed delete_events() in resonance_engine.py to return the max and min
timestamps for the affectedd events.
Add some convenience constructors to TimeRange. Namely .always() and .from_now().
2009-12-04 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/datamodel-test.py:
* zeitgeist/datamodel.py:
Implement some convenience methods regarding time ranges:
TimeRange.intersect(time_range) - calculates the intersection TimeRange of self and time_range
Event.in_time_range(time_range) - returns True if event.timestamp lies in time_range
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/remote.py:
Comments and doc updates
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* _zeitgeist/engine/remote.py:
* test/remote-test.py:
* zeitgeist/client.py:
Change DBus API for the Monitor.Notify() method to take an uint32 as first argument.
This first arg is an enumeration: NotifyInsert=0 and NotifyDelete=1 designating
the type of notification.
Still delete notifications remains to be handled. I wrote in the docs that we only
return the event ids in the event structs on NotifyDelete
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* test/remote-test.py:
Fix insertion/removal of monitors in notify.py. The attached test case exposes a bug where we must use the monitor hash as key instead of simply the monitor itself
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/client.py:
Fix signature of the dispath_handler() in client.remove_monitor()
Also fix a warning statement
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
Fix type in debug string
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/client.py:
Add a monitor_removed_handler arg to remove_monitor()
2009-12-03 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
Add some clarifying comments in the install_monitor()
Fix debug statement in remove_monitor()
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* doc/dbus/source/index.rst:
* zeitgeist/client.py:
Add zeitgeist.client.Monitor to the list of documented classes
Doc updates for ZeitgeistClient regarding monitoring
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/remote-test.py:
* zeitgeist/client.py:
Add API in ZeitgeistClient to install a monitor most conveniently
Add a simple test in remote-test.py to check that we indeed get notifications
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/remote.py:
Remove make_dbus_sendable() from remote.py and use the functionality from Event._make_dbus_senable() instead
Add a MonitorManager at the remote.py level, so no changes in resonance-engine is needed in order to enable notifications.
This brings in two new methods on out org.gnome.zeitgeist.Log interface:
InstallMonitor(oaE)
RemoveMonitor(o)
These are wired directly to the MonitorManager
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
The notification system works now. The only public class in notify.py is MonitorManager.
It is supposed to be used from the engine either at the remote.py level or directly inside
resonance_engine.py
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* test/datamodel-test.py:
Add test for the new method Event.matches_event()
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* zeitgeist/datamodel.py:
Disregard event timestamps in Event.matches_template
Introduce the dual method of matches_template, namely Event.matches_event() where 'self' is interpreted as the template. This is very useful for filter() calls etc.
Add method Event._make_dbus_sendable() from remote.py as it is generally useful. Although we don't make it public
2009-12-02 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* _zeitgeist/engine/remote.py:
Make calls to Monitor.Notify() async
Rename and document all calls MonitorManager.{install,remove}_monitor and notify_monitors()
Properly install a signal listener for bus disconnects in MonitorManager
Add FIXME: Filter out duplicate- or failed event insertions in remote.py InsertEvents()
2009-12-01 "Mikkel Kamstrup Erlandsen" <email address hidden>
* _zeitgeist/engine/notify.py:
* _zeitgeist/engine/Makefile.am:
* _zeitgeist/engine/remote.py:
* zeitgeist/client.py:
Initial import of notify.py
2009-12-06 Markus Korn <email address hidden>
* test/test-datamodel.rst:
* doc/dbus/source/index.rst:
* test/datamodel-test.py:
* test/remote-test.py:
* zeitgeist/datamodel.py:
Made definition of Manifestation and Interpretation simpler (LP: #492261)
2009-12-05 Markus Korn <email address hidden>
* test/datamodel-test.py:
fixed unittests for datamodel
2009-12-05 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
* Symbol.__doc__ must always return a string
* global decleration a names for Manifestation and Interpretation
collections
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
some addition to the docstring of SymbolCollections
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
made the reST formated text more readable
2009-12-04 Markus Korn <email address hidden>
* doc/dbus/source/index.rst:
* zeitgeist/datamodel.py:
dynamically generate docstring of Symbols to automatically get docs for
Manifestation and Interpretation symbols
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
show symbol names in dir(SymbolCollection), maybe we can use it in the
future to autogenerate docs of hardcoded Symbols
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
renamings: Category -> Symbol and CategoryCollection -> SymbolCollection
as categories are in fact symbols ;)
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
* added more verbose error messages
* added some code comments
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
added docstring
2009-12-04 Markus Korn <email address hidden>
* test/remote-test.py:
* zeitgeist/datamodel.py:
* by making Category a subclass of str it is not possible to send
Manifestations and Interpretations directly over dbus, without using
tricks like Manaifestation.FILE.uri or str(Manifestation.FILE)
* adjusted dbus testcases to reflect this
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
get proper category name
2009-12-04 Markus Korn <email address hidden>
* test/test-datamodel.rst:
removed test/test-datamodel.rst as this is not how it is working now
2009-12-04 Markus Korn <email address hidden>
* zeitgeist/datamodel.py:
simpified defenition of Manifestations and Interpretations
2009-12-01 Markus Korn <email address hidden>
* _zeitgeist/engine/resonance_engine.py:
* test/resonance-engine-test.py:
Fixed bug where ResultType.LeastRecentEvents and
ResultType.MostRecentEvents return just the oposite results and added
testcases for the fix.