<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def expect_file_size_to_be_between(self, minsize=0, maxsize=None, result_format=None, include_config=False, catch_exceptions=None, meta=None):
 """ Expect file size to be between a user specified maxsize and minsize. Args: minsize(integer):
 minimum expected file size maxsize(integer):
 maximum expected file size Keyword Args: result_format (str or None):
 \ Which output mode to use: `BOOLEAN_ONLY`, `BASIC`, `COMPLETE`, or `SUMMARY`. For more detail, see :ref:`result_format <result_format>`. include_config (boolean):
 \ If True, then include the expectation config as part of the result object. \ For more detail, see :ref:`include_config`. catch_exceptions (boolean or None):
 \ If True, then catch exceptions and include them as part of the result object. \ For more detail, see :ref:`catch_exceptions`. meta (dict or None):
 \ A JSON-serializable dictionary (nesting allowed) that will be included in the output without modification. For more detail, see :ref:`meta`. Returns: A JSON-serializable expectation result object. Exact fields vary depending on the values passed to :ref:`result_format <result_format>` and :ref:`include_config`, :ref:`catch_exceptions`, and :ref:`meta`. """


        try:
            size = os.path.getsize(self._path)
        except OSError:
            raise

        # We want string or float or int versions of numbers, but
        # they must be representable as clean integers.
        try:
            if not float(minsize).is_integer():
                raise ValueError('minsize must be an integer')
            minsize = int(float(minsize))

            if maxsize is not None and not float(maxsize).is_integer():
                raise ValueError('maxsize must be an integer')
            elif maxsize is not None:
                maxsize = int(float(maxsize))
        except TypeError:
            raise

        if minsize < 0:
            raise ValueError('minsize must be greater than or equal to 0')

        if maxsize is not None and maxsize < 0:
            raise ValueError('maxsize must be greater than or equal to 0')

        if maxsize is not None and minsize > maxsize:
            raise ValueError('maxsize must be greater than or equal to minsize')

        if maxsize is None and size >= minsize:
            success = True
        elif (size >= minsize) and (size <= maxsize):
            success = True
        else: 
            success = False

        return {
            "success": success,
            "details": {
                "filesize": size
            }
        }