class Standard2(djp.Part):
     enable_hashing = True
     add_hash_info_to_header = True #default = True
     hash_name = hash_name
     hashed_attrs = list(kwargs_dict.keys())
     
     
     definition=du.method_part_definition(
         kwargs_dict,
         kwargs_datatype_dict = None,
         definition_description = "# decomposition cell type table",
         verbose = True,
     )
     
     @classmethod
     def fill(cls,
              kwargs = None,
             name=None,
             description=None,):
         if kwargs is None:
             kwargs = kwargs_dict.copy()
             
         for k,v in kwargs_dict.items():
             if type(v) == bool:
                 kwargs_dict[k] = int(v)
         
         cls.insert1(dict(kwargs_dict,
             
                     name = name,
                     description = description,
                     ),insert_to_master=True,
                     skip_duplicates=True,
         )
    class ExapnsionStitch3(djp.Part):
        enable_hashing = True
        add_hash_info_to_header = True  #default = True
        hash_name = "decomposition_method"
        hashed_attrs = list(kwargs_dict.keys())
        definition = du.method_part_definition(
            kwargs_dict,
            kwargs_datatype_dict=None,
            definition_description=
            "combination of decimation ratio and decimation algorithm",
            verbose=True,
        )

        @classmethod
        def fill(cls, kwargs_dict=None, name=None, description=None, **kwargs):

            if kwargs_dict is None:
                kwargs_dict = kwargs_dict_decomp.copy()

            kwargs_dict = dict(kwargs_dict)
            for k, v in kwargs.items():
                kwargs_dict[k] = v

            for k, v in kwargs_dict.items():
                if type(v) == bool:
                    kwargs_dict[k] = int(v)

            cls.insert1(dict(
                kwargs_dict,
                name=name,
                description=description,
            ),
                        insert_to_master=True,
                        skip_duplicates=True)
    class StandardSplit(djp.Part):
        enable_hashing = True
        add_hash_info_to_header = True  #default = True
        hash_name = "decomposition_split_method"
        hashed_attrs = list(kwargs_dict.keys())

        definition = du.method_part_definition(
            kwargs_dict,
            kwargs_datatype_dict=None,
            definition_description=(
                "decomposition split parameters "
                f"for separating multi touches and multi-somas"),
            verbose=True,
        )

        @classmethod
        def fill(
            cls,
            kwargs=None,
            name=None,
            description=None,
        ):
            if kwargs is None:
                kwargs = kwargs_dict.copy()

            for k, v in kwargs_dict.items():
                if type(v) == bool:
                    kwargs_dict[k] = int(v)

            cls.insert1(
                dict(
                    kwargs_dict,
                    name=name,
                    description=description,
                ),
                insert_to_master=True,
                skip_duplicates=True,
            )