docs: def _fill_empty_sessions(self, fill_subjects, fill_visits):
          """
          Fill in tree with additional empty subjects and/or visits to
          allow the study to pull its inputs from external repositories
          """
          if fill_subjects is None:
              fill_subjects = [s.id for s in self.subjects]
          if fill_visits is None:
              fill_visits = [v.id for v in self.complete_visits]
          for subject_id in fill_subjects:
              try:
                  subject = self.subject(subject_id)
              except ArcanaNameError:
                  subject = self._subjects[subject_id] = Subject(
                      subject_id, [], [], [])
              for visit_id in fill_visits:
                  try:
                      subject.session(visit_id)
                  except ArcanaNameError:
                      session = Session(subject_id, visit_id, [], [])
                      subject._sessions[visit_id] = session
                      try:
                          visit = self.visit(visit_id)
                      except ArcanaNameError:
                          visit = self._visits[visit_id] = Visit(
                              visit_id, [], [], [])
                      visit._sessions[subject_id] = session