<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def grab_project_data(prj):
 """ From the given Project, grab Sample-independent data. There are some aspects of a Project of which it's beneficial for a Sample to be aware, particularly for post-hoc analysis. Since Sample objects within a Project are mutually independent, though, each doesn't need to know about any of the others. A Project manages its, Sample instances, so for each Sample knowledge of Project data is limited. This method facilitates adoption of that conceptual model. :param Project prj: Project from which to grab data :return Mapping: Sample-independent data sections from given Project """

    if not prj:
        return {}
    data = {}
    for section in SAMPLE_INDEPENDENT_PROJECT_SECTIONS:
        try:
            data[section] = getattr(prj, section)
        except AttributeError:
            _LOGGER.debug("Project lacks section '%s', skipping", section)
    return data