code: def build(self, parent_step=None, force_sequence=None):
          
          # TODO: Handle "batch build" natively
          pre, post = parse_declarations(
              self.extras,
              base_pre=self.factory_meta.pre_declarations,
              base_post=self.factory_meta.post_declarations,
          )
  
          if force_sequence is not None:
              sequence = force_sequence
          elif self.force_init_sequence is not None:
              sequence = self.force_init_sequence
          else:
              sequence = self.factory_meta.next_sequence()
  
          step = BuildStep(
              builder=self,
              sequence=sequence,
              parent_step=parent_step,
          )
          step.resolve(pre)
  
          args, kwargs = self.factory_meta.prepare_arguments(step.attributes)
  
          instance = self.factory_meta.instantiate(
              step=step,
              args=args,
              kwargs=kwargs,
          )
  
          postgen_results = {}
          for declaration_name in post.sorted():
              declaration = post[declaration_name]
              unrolled_context = declaration.declaration.unroll_context(
                  instance=instance,
                  step=step,
                  context=declaration.context,
              )
  
              postgen_context = PostGenerationContext(
                  value_provided='' in unrolled_context,
                  value=unrolled_context.get(''),
                  extra={k: v for k, v in unrolled_context.items() if k != ''},
              )
              postgen_results[declaration_name] = declaration.declaration.call(
                  instance=instance,
                  step=step,
                  context=postgen_context,
              )
          self.factory_meta.use_postgeneration_results(
              instance=instance,
              step=step,
              results=postgen_results,
          )
          return instance
docs: Build a factory instance.