def METHOD_NAME(
        request=None,
        shp_file=None,
        shx_file=None,
        dbf_file=None):
    """Read this shapefile
    """
    if request:
        shp_file = request.FILES['shp_file']
        shx_file = request.FILES['shx_file']
        dbf_file = request.FILES['dbf_file']
    if shp_file.name.endswith('.shp') and shx_file.name.endswith(
            '.shx') and dbf_file.name.endswith('.dbf'):
        shp_filename, ext = os.path.splitext(shp_file.name)
        shp_filename = shp_filename.split('/')[1]
        # save temporary file
        handle_uploaded_file(shp_file, shp_filename + '.shp')
        handle_uploaded_file(shx_file, shp_filename + '.shx')
        handle_uploaded_file(dbf_file, shp_filename + '.dbf')
        sf = shapefile.Reader(os.path.join(
            settings.TEMP_FOLDER, shp_filename + ".dbf")
        )
        fields = sf.fields[1:]
        field_names = [field[0].lower() for field in fields]
        output = []
        for sr in sf.shapeRecords():
            atr = dict(zip(field_names, sr.record))
            geom = sr.shape.__geo_interface__
            output.append(
                dict(type="Feature", geometry=geom, properties=atr))
        # delete that file
        os.remove(os.path.join(
            settings.TEMP_FOLDER, shp_filename + '.shp')
        )
        os.remove(os.path.join(
            settings.TEMP_FOLDER, shp_filename + '.shx')
        )
        os.remove(os.path.join(
            settings.TEMP_FOLDER, shp_filename + '.dbf')
        )
        return output
    else:
        raise WrongExtention