Repository: pandas-dev/pandas

Issue:
DOC: make links actually link to API docs
There are some places in the documentation where a link to the API docs is provided, e.g., `:func:`~pandas.read_html``, but no link is made. This is because the fully resolved name (i.e., the module where the function is defined [no package references]) must be used, i.e., `:func:`~pandas.io.html.read_html``. This particular example is fixed, but @jreback mentioned that he's seen them in other places.



Discussion:
just a couple I guess

```
../io.rst:
   36 : :func:`~pandas.io.parsers.read_csv` and :func:`~pandas.io.parsers.read_table`.
  333 : :func:`~pandas.io.parsers.read_csv` and :func:`~pandas.io.parsers.read_table`
  657 : While `read_csv` reads delimited data, the :func:`~pandas.io.parsers.read_fwf`
  928 : The toplevel :func:`~pandas.io.parsers.read_html` function can accept an HTML
 1837 : connection, just use the :func:`~pandas.io.sql.read_frame` function to get the
 1886 : The function :func:'~pandas.io.StataWriter.write_file' will write a DataFrame 
 1905 : initialization. Its function :func:'~pandas.io.StataReader.data' will 
 1921 : Alternatively, the function :func:'~pandas.io.read_stata' can be used
./missing_data.rst:
   71 : pandas provides the :func:`~pandas.core.common.isnull` and
   72 : :func:`~pandas.core.common.notnull` functions, which are also methods on
```

toplevel isnull and notnull are not linking because there's no API docs generated for them. same for read stata. `read_csv` and `read_table` are working
- [x] `read_csv`
- [x] `read_table`
- [x] `read_html`
- [x] `read_fwf`
- [x] `read_clipboard`
- [x] stata stuff
- [x] put `pandas.io.stata` and `pandas.io.sql` in `pandas.io.__init__`
- [x] correctly link `pandas.io.sql`
- [x] fix up `isnull`, `notnull` docstrings


Resolving patch:
diff --git a/pandas/core/common.py b/pandas/core/common.py
--- a/pandas/core/common.py
+++ b/pandas/core/common.py
@@ -48,17 +48,19 @@ class AmbiguousIndexError(PandasError, KeyError):
 _INT64_DTYPE = np.dtype(np.int64)
 
 def isnull(obj):
-    '''
-    Detect missing values (NaN in numeric arrays, None/NaN in object arrays)
+    """Detect missing values (NaN in numeric arrays, None/NaN in object arrays)
 
     Parameters
     ----------
-    arr: ndarray or object value
+    arr : ndarray or object value
+        Object to check for null-ness
 
     Returns
     -------
-    boolean ndarray or boolean
-    '''
+    isnulled : array-like of bool or bool
+        Array or bool indicating whether an object is null or if an array is
+        given which of the element is null.
+    """
     return _isnull(obj)
 
 
@@ -187,18 +189,20 @@ def _isnull_ndarraylike_old(obj):
 
 
 def notnull(obj):
-    '''
-    Replacement for numpy.isfinite / -numpy.isnan which is suitable
-    for use on object arrays.
+    """Replacement for numpy.isfinite / -numpy.isnan which is suitable for use
+    on object arrays.
 
     Parameters
     ----------
-    arr: ndarray or object value
+    arr : ndarray or object value
+        Object to check for *not*-null-ness
 
     Returns
     -------
-    boolean ndarray or boolean
-    '''
+    isnulled : array-like of bool or bool
+        Array or bool indicating whether an object is *not* null or if an array
+        is given which of the element is *not* null.
+    """
     res = isnull(obj)
     if np.isscalar(res):
         return not res
diff --git a/pandas/io/__init__.py b/pandas/io/__init__.py
--- a/pandas/io/__init__.py
+++ b/pandas/io/__init__.py
@@ -0,0 +1,2 @@
+import sql
+import stata


Test patch: