Index: source/python/classes/MarsRetrieval.py
===================================================================
--- source/python/classes/MarsRetrieval.py	(revision bc1720f0347e00059834b93d823d83c770942bb9)
+++ source/python/classes/MarsRetrieval.py	(revision 6f951ca0346aa6a2c3e11ee62df85214a290d838)
@@ -17,44 +17,14 @@
 #        - added documentation
 #        - applied some minor modifications in programming style/structure
+#        - added writing of mars request attributes to a csv file
 #
 # @License:
-#    (C) Copyright 2015-2018.
+#    (C) Copyright 2014-2019.
+#    Anne Philipp, Leopold Haimberger
 #
-#    This software is licensed under the terms of the Apache Licence Version 2.0
-#    which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
-#
-# @Class Description:
-#    A MARS revtrieval has a specific syntax with a selection of keywords and
-#    their corresponding values. This class provides the necessary functions
-#    by displaying the selected parameters and their values and the actual
-#    retrievement of the data through a mars request or a Python web api
-#    interface. The initialization already expects all the keyword values.
-#
-# @Class Content:
-#    - __init__
-#    - display_info
-#    - data_retrieve
-#
-# @Class Attributes:
-#    - server
-#    - marsclass
-#    - dtype
-#    - levtype
-#    - levelist
-#    - repres
-#    - date
-#    - resol
-#    - stream
-#    - area
-#    - time
-#    - step
-#    - expver
-#    - number
-#    - accuracy
-#    - grid
-#    - gaussian
-#    - target
-#    - param
-#
+#    This work is licensed under the Creative Commons Attribution 4.0
+#    International License. To view a copy of this license, visit
+#    http://creativecommons.org/licenses/by/4.0/ or send a letter to
+#    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
 #*******************************************************************************
 
@@ -73,5 +43,11 @@
 # ------------------------------------------------------------------------------
 class MarsRetrieval(object):
-    '''Class for submitting MARS retrievals.
+    '''Specific syntax and content for submission of MARS retrievals.
+
+    A MARS revtrieval has a specific syntax with a selection of keywords and
+    their corresponding values. This class provides the necessary functions
+    by displaying the selected parameters and their values and the actual
+    retrievement of the data through a mars request or a Python web api
+    interface. The initialization already expects all the keyword values.
 
     A description of MARS keywords/arguments and examples of their
@@ -79,4 +55,77 @@
     https://software.ecmwf.int/wiki/display/UDOC/\
                    Identification+keywords#Identificationkeywords-class
+
+    Attributes
+    ----------
+    server : ECMWFService or ECMWFDataServer
+        This is the connection to the ECMWF data servers.
+
+    public : int
+        Decides which Web API Server version is used.
+
+    marsclass : str, optional
+        Characterisation of dataset.
+
+    dataset : str, optional
+        For public datasets there is the specific naming and parameter
+        dataset which has to be used to characterize the type of
+        data.
+
+    type : str, optional
+        Determines the type of fields to be retrieved.
+
+    levtype : str, optional
+        Denotes type of level.
+
+    levelist : str, optional
+        Specifies the required levels.
+
+    repres : str, optional
+        Selects the representation of the archived data.
+
+    date : str, optional
+        Specifies the Analysis date, the Forecast base date or
+        Observations date.
+
+    resol : str, optional
+        Specifies the desired triangular truncation of retrieved data,
+        before carrying out any other selected post-processing.
+
+    stream : str, optional
+        Identifies the forecasting system used to generate the data.
+
+    area : str, optional
+        Specifies the desired sub-area of data to be extracted.
+
+    time : str, optional
+        Specifies the time of the data in hours and minutes.
+
+    step : str, optional
+        Specifies the forecast time step from forecast base time.
+
+    expver : str, optional
+        The version of the dataset.
+
+    number : str, optional
+        Selects the member in ensemble forecast run.
+
+    accuracy : str, optional
+        Specifies the number of bits per value to be used in the
+        generated GRIB coded fields.
+
+    grid : str, optional
+        Specifies the output grid which can be either a Gaussian grid
+        or a Latitude/Longitude grid.
+
+    gaussian : str, optional
+        This parameter is deprecated and should no longer be used.
+        Specifies the desired type of Gaussian grid for the output.
+
+    target : str, optional
+        Specifies a file into which data is to be written after
+        retrieval or manipulation.
+
+    param : str, optional
+        Specifies the meteorological parameter.
     '''
 
@@ -96,9 +145,9 @@
         Parameters
         ----------
-        server : :obj:`ECMWFService`
+        server : ECMWFService or ECMWFDataServer
             This is the connection to the ECMWF data servers.
             It is needed for the pythonic access of ECMWF data.
 
-        public : :obj:`integer`
+        public : int
             Decides which Web API version is used:
             0: member-state users and full archive access
@@ -107,10 +156,10 @@
             Default is "0" and for member-state users.
 
-        marsclass : :obj:`string`, optional
+        marsclass : str, optional
             Characterisation of dataset. E.g. EI (ERA-Interim),
             E4 (ERA40), OD (Operational archive), ea (ERA5).
             Default is the ERA-Interim dataset "ei".
 
-        dataset : :obj:`string`, optional
+        dataset : str, optional
             For public datasets there is the specific naming and parameter
             dataset which has to be used to characterize the type of
@@ -119,5 +168,5 @@
             Default is an empty string.
 
-        type : :obj:`string`, optional
+        type : str, optional
             Determines the type of fields to be retrieved.
             Selects between observations, images or fields.
@@ -126,5 +175,5 @@
             Default is an empty string.
 
-        levtype : :obj:`string`, optional
+        levtype : str, optional
             Denotes type of level. Has a direct implication on valid
             levelist values!
@@ -134,5 +183,5 @@
             Default is an empty string.
 
-        levelist : :obj:`string`, optional
+        levelist : str, optional
             Specifies the required levels. It has to have a valid
             correspondence to the selected levtype.
@@ -140,5 +189,5 @@
             Default is an empty string.
 
-        repres : :obj:`string`, optional
+        repres : str, optional
             Selects the representation of the archived data.
             E.g. sh - spherical harmonics, gg - Gaussian grid,
@@ -146,5 +195,5 @@
             Default is an empty string.
 
-        date : :obj:`string`, optional
+        date : str, optional
             Specifies the Analysis date, the Forecast base date or
             Observations date. Valid formats are:
@@ -152,5 +201,5 @@
             Default is an empty string.
 
-        resol : :obj:`string`, optional
+        resol : str, optional
             Specifies the desired triangular truncation of retrieved data,
             before carrying out any other selected post-processing.
@@ -169,10 +218,10 @@
             Default is an empty string.
 
-        stream : :obj:`string`, optional
+        stream : str, optional
             Identifies the forecasting system used to generate the data.
             E.g. oper (Atmospheric model), enfo (Ensemble forecats), ...
             Default is an empty string.
 
-        area : :obj:`string`, optional
+        area : str, optional
             Specifies the desired sub-area of data to be extracted.
             Areas can be defined to wrap around the globe.
@@ -192,5 +241,5 @@
             Default is an empty string.
 
-        time : :obj:`string`, optional
+        time : str, optional
             Specifies the time of the data in hours and minutes.
             Valid values depend on the type of data: Analysis time,
@@ -202,5 +251,5 @@
             Default is an empty string.
 
-        step : :obj:`string`, optional
+        step : str, optional
             Specifies the forecast time step from forecast base time.
             Valid values are hours (HH) from forecast base time. It also
@@ -210,5 +259,5 @@
             Default is an empty string.
 
-        expver : :obj:`string`, optional
+        expver : str, optional
             The version of the dataset. Each experiment is assigned a
             unique code (version). Production data is assigned 1 or 2,
@@ -218,5 +267,5 @@
             Default is "1".
 
-        number : :obj:`string`, optional
+        number : str, optional
             Selects the member in ensemble forecast run. (Only then it
             is necessary.) It has a different meaning depending on
@@ -225,5 +274,5 @@
             Default is an empty string.
 
-        accuracy : :obj:`string`, optional
+        accuracy : str, optional
             Specifies the number of bits per value to be used in the
             generated GRIB coded fields.
@@ -236,5 +285,5 @@
             Default is an empty string.
 
-        grid : :obj:`string`, optional
+        grid : str, optional
             Specifies the output grid which can be either a Gaussian grid
             or a Latitude/Longitude grid. MARS requests specifying
@@ -257,5 +306,5 @@
             Default is an empty string.
 
-        gaussian : :obj:`string`, optional
+        gaussian : str, optional
             This parameter is deprecated and should no longer be used.
             Specifies the desired type of Gaussian grid for the output.
@@ -265,5 +314,5 @@
             Default is an empty string.
 
-        target : :obj:`string`, optional
+        target : str, optional
             Specifies a file into which data is to be written after
             retrieval or manipulation. Path names should always be
@@ -279,5 +328,5 @@
             Default is an empty string.
 
-        param : :obj:`string`, optional
+        param : str, optional
             Specifies the meteorological parameter.
             The list of meteorological parameters in MARS is extensive.
@@ -352,8 +401,8 @@
         Parameters
         ----------
-        inputdir : :obj:`string`
+        inputdir : str
             The path where all data from the retrievals are stored.
 
-        request_number : :obj:`integer`
+        request_number : int
             Number of mars requests for flux and non-flux data.
 
