def METHOD_NAME(self, *args, **options):
    verbosity = options.get('verbosity')
    file_path = options.get('file_path')
    area_type_name = options.get('area_type')
    name_column = options.get('name')
    encoding = options.get('encoding')
    srid = options.get('srid')
    do_intersect = options.get('intersect')
    bbox = Polygon.from_bbox(settings.SPATIAL_EXTENT)
    bbox.srid = settings.SRID
    ds = DataSource(file_path, encoding=encoding)
    count_error = 0
    area_type, created = RestrictedAreaType.objects.get_or_create(name=area_type_name)
    if verbosity > 0:
        self.stdout.write("RestrictedArea Type's %s created" % area_type_name if created else "Get %s" % area_type_name)
    for layer in ds:
        for feat in layer:
            try:
                geom = feat.geom.geos
                if not isinstance(geom, Polygon) and not isinstance(geom, MultiPolygon):
                    if verbosity > 0:
                        self.stdout.write("%s's geometry is not a polygon" % feat.get(name_column))
                    break
                elif isinstance(geom, Polygon):
                    geom = MultiPolygon(geom)
                self.check_srid(srid, geom)
                geom.dim = 2
                if geom.valid:
                    if do_intersect and bbox.intersects(geom) or not do_intersect and geom.within(bbox):
                        instance, created = RestrictedArea.objects.update_or_create(name=feat.get(name_column),
                                                                                    area_type=area_type,
                                                                                    defaults={
                                                                                        'geom': geom})
                        if verbosity > 0:
                            self.stdout.write("%s %s" % ('Created' if created else 'Updated', feat.get(name_column)))
                else:
                    if verbosity > 0:
                        self.stdout.write("%s's geometry is not valid" % feat.get(name_column))
            except IndexError:
                if count_error == 0:
                    self.stdout.write(
                        "Name's attribute do not correspond with options\n"
                        "Please, use --name to fix it.\n"
                        "Fields in your file are : %s" % ', '.join(layer.fields))
                count_error += 1