Author: gabrielhurley
Date: 2010-12-05 01:36:40 -0600 (Sun, 05 Dec 2010)
New Revision: 14834

Modified:
   django/branches/releases/1.2.X/docs/ref/files/file.txt
   django/branches/releases/1.2.X/docs/ref/files/index.txt
   django/branches/releases/1.2.X/docs/topics/files.txt
Log:
[1.2.X] Fixed #13162 and #11597 -- Improved the file handling documentation: 
Removed documentation of methods on django.core.files.File that did not exist, 
added documentation for undocumented methods and attributes that did exist, did 
a general cleanup of the text and organization, and added more metadata 
targets. Thanks to amenasse and tyrion.mx for the reports.

Backport of [14833] from trunk.

Modified: django/branches/releases/1.2.X/docs/ref/files/file.txt
===================================================================
--- django/branches/releases/1.2.X/docs/ref/files/file.txt      2010-12-05 
07:35:10 UTC (rev 14833)
+++ django/branches/releases/1.2.X/docs/ref/files/file.txt      2010-12-05 
07:36:40 UTC (rev 14834)
@@ -1,56 +1,54 @@
 The ``File`` object
 ===================
 
+The :mod:`django.core.files` module and its submodules contain built-in classes
+for basic file handling in Django.
+
 .. currentmodule:: django.core.files
 
-``File`` attributes and methods
--------------------------------
+The ``File`` Class
+------------------
 
-The :mod:`django.core.files` module contains a built-in class for basic file
-handling in Django. The :class:`File` class has the following attributes and
-methods:
-
 .. class:: File(file_object)
 
+    The :class:`File` is a thin wrapper around Python's built-in file object
+    with some Django-specific additions. Internally, Django uses this class
+    any time it needs to represent a file.
+    
+    :class:`File` objects have the following attributes and methods:
+
     .. attribute:: name
 
-        The name of file including the relative path from 
:setting:`MEDIA_ROOT`.
+        The name of file including the relative path from
+        :setting:`MEDIA_ROOT`.
 
-    .. attribute:: path
+    .. attribute:: size
 
-        The absolute path to the file's location on a local filesystem.
+        The size of the file in bytes.
 
-        :doc:`Custom file storage systems </howto/custom-file-storage>` may 
not store
-        files locally; files stored on these systems will have a ``path`` of
-        ``None``.
+    .. attribute:: file
 
-    .. attribute:: url
+        The underlying Python ``file`` object passed to
+        :class:`~django.core.files.File`.
 
-        The URL where the file can be retrieved. This is often useful in
-        :doc:`templates </topics/templates>`; for example, a bit of a template 
for
-        displaying a ``Car`` (see above) might look like:
+    .. attribute:: mode
 
-        .. code-block:: html+django
+        The read/write mode for the file.
 
-            <img src='{{ car.photo.url }}' alt='{{ car.name }}' />
-
-    .. attribute:: size
-
-        The size of the file in bytes.
-
     .. method:: open([mode=None])
 
-        Open or reopen the file (which by definition also does 
``File.seek(0)``).
-        The ``mode`` argument allows the same values as Python's standard
-        ``open()``.
+        Open or reopen the file (which by definition also does
+        ``File.seek(0)``). The ``mode`` argument allows the same values
+        as Python's standard ``open()``.
 
-        When reopening a file, ``mode`` will override whatever mode the file 
was
-        originally opened with; ``None`` means to reopen with the original 
mode.
+        When reopening a file, ``mode`` will override whatever mode the file
+        was originally opened with; ``None`` means to reopen with the original
+        mode.
 
     .. method:: read([num_bytes=None])
 
-        Read content from the file. The optional ``size`` is the number of 
bytes to
-        read; if not specified, the file will be read to the end.
+        Read content from the file. The optional ``size`` is the number of
+        bytes to read; if not specified, the file will be read to the end.
 
     .. method:: __iter__()
 
@@ -61,38 +59,65 @@
         Iterate over the file yielding "chunks" of a given size. ``chunk_size``
         defaults to 64 KB.
 
-        This is especially useful with very large files since it allows them 
to be
-        streamed off disk and avoids storing the whole file in memory.
+        This is especially useful with very large files since it allows them to
+        be streamed off disk and avoids storing the whole file in memory.
 
     .. method:: multiple_chunks([chunk_size=None])
 
-        Returns ``True`` if the file is large enough to require multiple 
chunks to
-        access all of its content give some ``chunk_size``.
+        Returns ``True`` if the file is large enough to require multiple chunks
+        to access all of its content give some ``chunk_size``.
 
     .. method:: write([content])
 
-        Writes the specified content string to the file. Depending on the 
storage
-        system behind the scenes, this content might not be fully committed 
until
-        ``close()`` is called on the file.
+        Writes the specified content string to the file. Depending on the
+        storage system behind the scenes, this content might not be fully
+        committed until ``close()`` is called on the file.
 
     .. method:: close()
 
         Close the file.
 
+    In addition to the listed methods, :class:`~django.core.files.File` exposes
+    the following attributes and methods of the underlying ``file`` object:
+    ``encoding``, ``fileno``, ``flush``, ``isatty``, ``newlines``,
+    ``read``, ``readinto``, ``readlines``, ``seek``, ``softspace``, ``tell``,
+    ``truncate``, ``writelines``, ``xreadlines``.
+
+.. currentmodule:: django.core.files.base
+
+The ``ContentFile`` Class
+-------------------------
+
+.. class:: ContentFile(File)
+
+    The ``ContentFile`` class inherits from :class:`~django.core.files.File`,
+    but unlike :class:`~django.core.files.File` it operates on string content,
+    rather than an actual file. For example::
+
+        from django.core.files.base import ContentFile
+
+        f1 = ContentFile("my string content")
+        f2 = ContentFile(u"my unicode content encoded as 
UTF-8".encode('UTF-8'))
+
 .. currentmodule:: django.core.files.images
 
-Additional ``ImageFile`` attributes
-------------------------------------
+The ``ImageFile`` Class
+-----------------------
 
 .. class:: ImageFile(file_object)
 
+    Django provides a built-in class specifically for images.
+    :class:`django.core.files.images.ImageFile` inherits all the attributes
+    and methods of :class:`~django.core.files.File`, and additionally
+    provides the following:
+
     .. attribute:: width
 
-        Width of the image.
+        Width of the image in pixels.
 
     .. attribute:: height
 
-        Height of the image.
+        Height of the image in pixels.
 
 .. currentmodule:: django.core.files
 
@@ -100,7 +125,7 @@
 -----------------------------------------------
 
 Any :class:`File` that's associated with an object (as with ``Car.photo``,
-above) will also have a couple of extra methods:
+below) will also have a couple of extra methods:
 
 .. method:: File.save(name, content, [save=True])
 
@@ -116,23 +141,12 @@
 
         >>> car.photo.save('myphoto.jpg', contents, save=True)
 
-    Note that the ``content`` argument must be an instance of
-    :class:`File` or of a subclass of :class:`File` such as 
:class:`ContentFile`.
+    Note that the ``content`` argument must be an instance of either
+    :class:`File` or of a subclass of :class:`File`, such as
+    :class:`ContentFile`.
 
 .. method:: File.delete([save=True])
 
-    Remove the file from the model instance and delete the underlying file. The
-    ``save`` argument works as above.
-
-``ContentFile`` objects
------------------------
-
-.. class:: ContentFile(File)
-
-A ``ContentFile`` is a File-like object that takes string content, rather
-than an actual file::
-
-    from django.core.files.base import ContentFile
-
-    f1 = ContentFile("my string content")
-    f2 = ContentFile(u"my unicode content encoded as UTF-8".encode('UTF-8'))
+    Removes the file from the model instance and deletes the underlying file.
+    If ``save`` is ``True``, the model's ``save()`` method will be called once
+    the file is deleted.

Modified: django/branches/releases/1.2.X/docs/ref/files/index.txt
===================================================================
--- django/branches/releases/1.2.X/docs/ref/files/index.txt     2010-12-05 
07:35:10 UTC (rev 14833)
+++ django/branches/releases/1.2.X/docs/ref/files/index.txt     2010-12-05 
07:36:40 UTC (rev 14834)
@@ -6,7 +6,7 @@
    :synopsis: File handling and storage
 
 .. toctree::
-   :maxdepth: 1
+   :maxdepth: 2
 
    file
    storage

Modified: django/branches/releases/1.2.X/docs/topics/files.txt
===================================================================
--- django/branches/releases/1.2.X/docs/topics/files.txt        2010-12-05 
07:35:10 UTC (rev 14833)
+++ django/branches/releases/1.2.X/docs/topics/files.txt        2010-12-05 
07:36:40 UTC (rev 14834)
@@ -50,9 +50,9 @@
 The ``File`` object
 ===================
 
-Internally, Django uses a ``django.core.files.File`` any time it needs to
-represent a file. This object is a thin wrapper around Python's `built-in file
-object`_ with some Django-specific additions.
+Internally, Django uses a :class:`django.core.files.File` instance any time it
+needs to represent a file. This object is a thin wrapper around Python's
+`built-in file object`_ with some Django-specific additions.
 
 .. _built-in file object: 
http://docs.python.org/library/stdtypes.html#bltin-file-objects
 
@@ -68,8 +68,8 @@
     >>> f = open('/tmp/hello.world', 'w')
     >>> myfile = File(f)
 
-Now you can use any of the ``File`` attributes and methods documented in
-:doc:`/ref/files/file`.
+Now you can use any of the documented attributes and methods
+of the :class:`~django.core.files.File` class.
 
 File storage
 ============

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to