mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05:00 
			
		
		
		
	Add API docs for the Metadata object to the template tutorial
This commit is contained in:
		
							parent
							
								
									fed64f9a17
								
							
						
					
					
						commit
						0a31b52a42
					
				@ -68,7 +68,19 @@ composite_formatter = SafeFormat()
 | 
			
		||||
class Metadata(object):
 | 
			
		||||
 | 
			
		||||
    '''
 | 
			
		||||
    A class representing all the metadata for a book.
 | 
			
		||||
    A class representing all the metadata for a book. The various standard metadata
 | 
			
		||||
    fields are available as attributes of this object. You can also stick
 | 
			
		||||
    arbitrary attributes onto this object.
 | 
			
		||||
 | 
			
		||||
    Metadata from custom columns should be accessed via the get() method,
 | 
			
		||||
    passing in the lookup name for the column, for example: "#mytags".
 | 
			
		||||
 | 
			
		||||
    Use the :meth:`is_null` method to test if a filed is null.
 | 
			
		||||
 | 
			
		||||
    This object also has functions to format fields into strings.
 | 
			
		||||
 | 
			
		||||
    The list of standard metadata fields grows with time is in
 | 
			
		||||
    :data:`STANDARD_METADATA_FIELDS`.
 | 
			
		||||
 | 
			
		||||
    Please keep the method based API of this class to a minimum. Every method
 | 
			
		||||
    becomes a reserved field name.
 | 
			
		||||
@ -88,11 +100,19 @@ class Metadata(object):
 | 
			
		||||
            if title:
 | 
			
		||||
                self.title = title
 | 
			
		||||
            if authors:
 | 
			
		||||
                #: List of strings or []
 | 
			
		||||
                # List of strings or []
 | 
			
		||||
                self.author = list(authors) if authors else []# Needed for backward compatibility
 | 
			
		||||
                self.authors = list(authors) if authors else []
 | 
			
		||||
 | 
			
		||||
    def is_null(self, field):
 | 
			
		||||
        '''
 | 
			
		||||
        Return True if the value of filed is null in this object.
 | 
			
		||||
        'null' means it is unknown or evaluates to False. So a title of
 | 
			
		||||
        _('Unknown') is null or a language of 'und' is null.
 | 
			
		||||
 | 
			
		||||
        Be careful with numeric fields since this will return True for zero as
 | 
			
		||||
        well as None.
 | 
			
		||||
        '''
 | 
			
		||||
        null_val = NULL_VALUES.get(field, None)
 | 
			
		||||
        val = getattr(self, field, None)
 | 
			
		||||
        return not val or val == null_val
 | 
			
		||||
@ -547,13 +567,16 @@ class Metadata(object):
 | 
			
		||||
        return unicode(self.rating)
 | 
			
		||||
 | 
			
		||||
    def format_field(self, key, series_with_index=True):
 | 
			
		||||
        '''
 | 
			
		||||
        Returns the tuple (display_name, formatted_value)
 | 
			
		||||
        '''
 | 
			
		||||
        name, val, ign, ign = self.format_field_extended(key, series_with_index)
 | 
			
		||||
        return (name, val)
 | 
			
		||||
 | 
			
		||||
    def format_field_extended(self, key, series_with_index=True):
 | 
			
		||||
        from calibre.ebooks.metadata import authors_to_string
 | 
			
		||||
        '''
 | 
			
		||||
        returns the tuple (field_name, formatted_value, original_value,
 | 
			
		||||
        returns the tuple (display_name, formatted_value, original_value,
 | 
			
		||||
        field_metadata)
 | 
			
		||||
        '''
 | 
			
		||||
 | 
			
		||||
@ -637,6 +660,10 @@ class Metadata(object):
 | 
			
		||||
        return (None, None, None, None)
 | 
			
		||||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        '''
 | 
			
		||||
        A string representation of this object, suitable for printing to
 | 
			
		||||
        console
 | 
			
		||||
        '''
 | 
			
		||||
        from calibre.ebooks.metadata import authors_to_string
 | 
			
		||||
        ans = []
 | 
			
		||||
        def fmt(x, y):
 | 
			
		||||
@ -680,6 +707,9 @@ class Metadata(object):
 | 
			
		||||
        return u'\n'.join(ans)
 | 
			
		||||
 | 
			
		||||
    def to_html(self):
 | 
			
		||||
        '''
 | 
			
		||||
        A HTML representation of this object.
 | 
			
		||||
        '''
 | 
			
		||||
        from calibre.ebooks.metadata import authors_to_string
 | 
			
		||||
        ans = [(_('Title'), unicode(self.title))]
 | 
			
		||||
        ans += [(_('Author(s)'), (authors_to_string(self.authors) if self.authors else _('Unknown')))]
 | 
			
		||||
 | 
			
		||||
@ -396,3 +396,19 @@ You might find the following tips useful.
 | 
			
		||||
    * In a plugboard, you can set a field to empty (or whatever is equivalent to empty) by using the special template ``{null}``. This template will always evaluate to an empty string.
 | 
			
		||||
    * The technique described above to show numbers even if they have a zero value works with the standard field series_index.
 | 
			
		||||
    
 | 
			
		||||
API of the Metadata objects
 | 
			
		||||
----------------------------
 | 
			
		||||
 | 
			
		||||
.. module:: calibre.ebooks.metadata.book.base
 | 
			
		||||
 | 
			
		||||
.. autoclass:: Metadata
 | 
			
		||||
   :members:
 | 
			
		||||
   :member-order: bysource
 | 
			
		||||
 | 
			
		||||
.. data:: STANDARD_METADATA_FIELDS
 | 
			
		||||
 | 
			
		||||
    The set of standard metadata fields.
 | 
			
		||||
 | 
			
		||||
.. literalinclude:: ../ebooks/metadata/book/__init__.py
 | 
			
		||||
   :lines: 7-
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user