code: func (p *Project) Parse() error {
  	err := p.context.open()
  	if err != nil {
  		return err
  	}
  
  	p.Name = p.context.ProjectName
  
  	p.Files = p.context.ComposeFiles
  
  	if len(p.Files) == 1 && p.Files[0] == "-" {
  		p.Files = []string{"."}
  	}
  
  	if p.context.ComposeBytes != nil {
  		for i, composeBytes := range p.context.ComposeBytes {
  			file := ""
  			if i < len(p.context.ComposeFiles) {
  				file = p.Files[i]
  			}
  			if err := p.load(file, composeBytes); err != nil {
  				return err
  			}
  		}
  	}
  
  	return nil
  }
docs: // Parse populates project information based on its context. It sets up the name,
  // the composefile and the composebytes (the composefile content).