pepkit / pepdbagent

Database for storing sample metadata
BSD 2-Clause "Simplified" License
2 stars 1 forks source link

`sample_table is missing 'sample_name' column` while fetching projects by namespace #32

Closed nleroy917 closed 2 years ago

nleroy917 commented 2 years ago

I was converting the /pep/demo/{namespace}/projects endpoint to use the latest pepdbagent changes:

@router.get("/projects", summary="Fetch all projects inside a particular namespace.")
async def get_namespace_projects(
    namespace: str, db: Connection = Depends(get_db), limit: int = 100
):
    """Fetch the projects for a particular namespace"""
    projects = db.get_projects_in_namespace(namespace)
    if limit:
        return JSONResponse(content={p.name: p.to_dict() for p in projects[:limit]})
    else:
        return JSONResponse(content=projects)

I get this error when calling db.get_projects_in_namespace():

pephub-server-1  |   File "/app/./pephub/routers/namespace.py", line 43, in get_namespace_projects
pephub-server-1  |     projects = db.get_projects_in_namespace(namespace)
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/pepdbagent/pepdbagent.py", line 340, in get_projects_in_namespace
pephub-server-1  |     return [peppy.Project().from_dict(p[1]) for p in results]
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/pepdbagent/pepdbagent.py", line 340, in <listcomp>
pephub-server-1  |     return [peppy.Project().from_dict(p[1]) for p in results]
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/peppy/project.py", line 279, in from_dict
pephub-server-1  |     self.create_samples(modify=False if self[SAMPLE_TABLE_FILE_KEY] else True)
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/peppy/project.py", line 319, in create_samples
pephub-server-1  |     self.modify_samples()
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/peppy/project.py", line 495, in modify_samples
pephub-server-1  |     self._assert_samples_have_names()
pephub-server-1  |   File "/usr/local/lib/python3.8/site-packages/peppy/project.py", line 615, in _assert_samples_have_names
pephub-server-1  |     raise InvalidSampleTableFileException(message)
pephub-server-1  | peppy.exceptions.InvalidSampleTableFileException: sample_table is missing 'sample_name' column; you must specify sample_tables in sample_name or derive them
khoroshevskyi commented 2 years ago

This is an error in peppy, in project itself, I will add catching exceptions.