<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def query(self, files=True):
 """Queries the depot to get the current status of the changelist"""

        if self._change:
            cl = str(self._change)
            self._p4dict = {camel_case(k): v for k, v in six.iteritems(self._connection.run(['change', '-o', cl])[0])}

        if files:
            self._files = []
            if self._p4dict.get('status') == 'pending' or self._change == 0:
                change = self._change or 'default'
                data = self._connection.run(['opened', '-c', str(change)])
                self._files = [Revision(r, self._connection) for r in data]
            else:
                data = self._connection.run(['describe', str(self._change)])[0]
                depotfiles = []
                for k, v in six.iteritems(data):
                    if k.startswith('depotFile'):
                        depotfiles.append(v)
                self._files = self._connection.ls(depotfiles)