<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def open_zip(cls, dbname, zipped, encoding=None, fieldnames_lower=True, case_sensitive=True):
 """Context manager. Allows opening a .dbf file from zip archive. .. code-block:: with Dbf.open_zip('some.dbf', 'myarch.zip') as dbf: :param str|unicode dbname: .dbf file name :param str|unicode|file zipped: .zip file path or a file-like object. :param str|unicode encoding: Encoding used by DB. This will be used if there's no encoding information in the DB itself. :param bool fieldnames_lower: Lowercase field names. :param bool case_sensitive: Whether DB filename is case sensitive. :rtype: Dbf """

        with ZipFile(zipped, 'r') as zip_:

            if not case_sensitive:
                dbname = pick_name(dbname, zip_.namelist())

            with zip_.open(dbname) as f:
                yield cls(f, encoding=encoding, fieldnames_lower=fieldnames_lower)