Changes

Jump to navigation Jump to search
m
Line 1: Line 1: −
{{Sugar Almanac}}
+
{{Almanac}}
{{Sugar Almanac TOC}}
+
{{Almanac TOC}}
    
= High Level Functionality of the Datastore =
 
= High Level Functionality of the Datastore =
Line 32: Line 32:     
=== How do I provide a query to the datastore.find() method so that I can find datastore objects with a particular property? ===
 
=== How do I provide a query to the datastore.find() method so that I can find datastore objects with a particular property? ===
 +
 +
'''IMPORTANT''' Do not rely on datastore.find() method in all cases, its behaviour could be changed in future releases;<br>there is only on thing for sure: to treat jobjects that were created within activity use:<br>datastore.find({'activity_id': <activity-id-of(and only of)-current-activity>, ...})
 +
 
The datastore package includes a find() helper function that allows you to find things in the datastore. Belows is a very simple example use of find where I simply search for journal entries that have a title of 'file1.txt'. I think print out the title and file path for each retreived entry.  
 
The datastore package includes a find() helper function that allows you to find things in the datastore. Belows is a very simple example use of find where I simply search for journal entries that have a title of 'file1.txt'. I think print out the title and file path for each retreived entry.  
   Line 41: Line 44:  
         print "Number of Objects: " + str(num_objects)
 
         print "Number of Objects: " + str(num_objects)
   −
         for i in xrange (0, num_objects, 1):
+
         for i in xrange (num_objects):
 
             print "File Path: " + ds_objects[i].get_file_path()
 
             print "File Path: " + ds_objects[i].get_file_path()
 
             print "Title: " + ds_objects[i].metadata['title']
 
             print "Title: " + ds_objects[i].metadata['title']
Line 74: Line 77:     
         #loop through and delete each datastore object found.  
 
         #loop through and delete each datastore object found.  
         for i in xrange (0, num_objects, 1):
+
         for i in xrange (num_objects):
 
             print 'DELETING ' + ds_objects[i].metadata['title'] + '...'
 
             print 'DELETING ' + ds_objects[i].metadata['title'] + '...'
 
             ds_objects[i].destroy()
 
             ds_objects[i].destroy()
Line 95: Line 98:     
         #loop through list of values and print them out.  
 
         #loop through list of values and print them out.  
         for i in xrange(0, len(unique_val_array), 1):
+
         for x in unique_val_array:
             print str(unique_val_array[i])
+
             print x
 
</pre>
 
</pre>
   Line 119: Line 122:  
         print '------------------------MOUNTS--------------------------------'
 
         print '------------------------MOUNTS--------------------------------'
 
         ds_mounts = datastore.mounts()
 
         ds_mounts = datastore.mounts()
         for i in xrange(0, len(ds_mounts), 1):
+
         for x in ds_mounts:
 
             print '---------MOUNT---------'
 
             print '---------MOUNT---------'
             print 'title: '+ ds_mounts[i]['title']
+
             print 'title: '+ x['title']
             print 'uri: '+ ds_mounts[i]['uri']
+
             print 'uri: '+ x['uri']
             print 'id: ' + ds_mounts[i]['id']
+
             print 'id: ' + x['id']
 
          
 
          
 
</pre>
 
</pre>
Line 135: Line 138:     
=== How do I access the metadata entries for a datastore object? ===
 
=== How do I access the metadata entries for a datastore object? ===
Every DSObject created by datastore.create() has a metadata property. This property refers to a [[#Class: DSMetadata | DSMetadata object]], which contains the metadata for your datastore object. The code below shows how to read metadata values by referring to the metadata property of a DSObject. metadata is a Python dictionary object.
+
Every DSObject created by datastore.create() has a metadata property. This property refers to a [[Low-level_Activity_API#Meta_Data|DS Object]], which contains the metadata for your datastore object. The code below shows how to read metadata values by referring to the metadata property of a DSObject. metadata is a Python dictionary object.
 
<pre>
 
<pre>
 
from sugar.datastore import datastore
 
from sugar.datastore import datastore
 
...
 
...
 
         #my_dsobject is of type datastore.DSObject
 
         #my_dsobject is of type datastore.DSObject
         #object_id is a datastore object (returned from the datastore Chooser
+
         #object_id is a datastore object (e.g., returned from the datastore Chooser)
 
         my_dsobject = datastore.get(object_id)
 
         my_dsobject = datastore.get(object_id)
 
          
 
          
Line 146: Line 149:  
         print my_dsobject.metadata['description']
 
         print my_dsobject.metadata['description']
   −
         #other standard objects in the metadata dictionary include 'tags', 'title', 'mimetypes', ...
+
</pre>
 +
This code snippet shows how to create a pixbuf from the preview entry in the datastore:
 +
<pre>
 +
from sugar.datastore import datastore
 +
...
 +
        #my_dsobject is of type datastore.DSObject
 +
         #object_id is a datastore object
 +
        my_dsobject = datastore.get(object_id)
 +
 
 +
        pixbufloader = gtk.gdk.pixbuf_loader_new_with_mime_type('image/png')
 +
        #Access the 'preview' property
 +
        #Note that the preview image is 300x225
 +
        pixbufloader.write(dsobject.metadata['preview'])
 +
        pixbufloader.close()
 +
        pixbuf = pixbufloader.get_pixbuf()
 
</pre>
 
</pre>
  

Navigation menu