<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def import_txt(file_name, two_dimensional=False, **kwargs):
 """ Reads control points from a text file and generates a 1-dimensional list of control points. The following code examples illustrate importing different types of text files for curves and surfaces: .. code-block:: python :linenos: # Import curve control points from a text file curve_ctrlpts = exchange.import_txt(file_name="control_points.txt") # Import surface control points from a text file (1-dimensional file) surf_ctrlpts = exchange.import_txt(file_name="control_points.txt") # Import surface control points from a text file (2-dimensional file) surf_ctrlpts, size_u, size_v = exchange.import_txt(file_name="control_points.txt", two_dimensional=True) If argument ``jinja2=True`` is set, then the input file is processed as a `Jinja2 <http://jinja.pocoo.org/>`_ template. You can also use the following convenience template functions which correspond to the given mathematical equations: * ``sqrt(x)``: :math:`\\sqrt{x}` * ``cubert(x)``: :math:`\\sqrt[3]{x}` * ``pow(x, y)``: :math:`x^{y}` You may set the file delimiters using the keyword arguments ``separator`` and ``col_separator``, respectively. ``separator`` is the delimiter between the coordinates of the control points. It could be comma ``1, 2, 3`` or space ``1 2 3`` or something else. ``col_separator`` is the delimiter between the control points and is only valid when ``two_dimensional`` is ``True``. Assuming that ``separator`` is set to space, then ``col_operator`` could be semi-colon ``1 2 3; 4 5 6`` or pipe ``1 2 3| 4 5 6`` or comma ``1 2 3, 4 5 6`` or something else. The defaults for ``separator`` and ``col_separator`` are *comma (,)* and *semi-colon (;)*, respectively. The following code examples illustrate the usage of the keyword arguments discussed above. .. code-block:: python :linenos: # Import curve control points from a text file delimited with space curve_ctrlpts = exchange.import_txt(file_name="control_points.txt", separator=" ") # Import surface control points from a text file (2-dimensional file) w/ space and comma delimiters surf_ctrlpts, size_u, size_v = exchange.import_txt(file_name="control_points.txt", two_dimensional=True, separator=" ", col_separator=",") Please note that this function does not check whether the user set delimiters to the same value or not. :param file_name: file name of the text file :type file_name: str :param two_dimensional: type of the text file :type two_dimensional: bool :return: list of control points, if two_dimensional, then also returns size in u- and v-directions :rtype: list :raises GeomdlException: an error occurred reading the file """

    # Read file
    content = exch.read_file(file_name)

    # Are we using a Jinja2 template?
    j2tmpl = kwargs.get('jinja2', False)
    if j2tmpl:
        content = exch.process_template(content)

    # File delimiters
    col_sep = kwargs.get('col_separator', ";")
    sep = kwargs.get('separator', ",")

    return exch.import_text_data(content, sep, col_sep, two_dimensional)