Source code for pymaid.fetch.skeletons
import typing as tp
import datetime as dt
from ..utils import _eval_remote_instance
from ..client import CatmaidInstance
from ..config import get_logger
logger = get_logger(__name__)
[docs]
def get_skeleton_ids(
created_by: tp.Optional[int]=None,
reviewed_by: tp.Optional[int]=None,
from_date: tp.Optional[dt.date]=None,
to_date: tp.Optional[dt.date]=None,
nodecount_gt: tp.Optional[int]=None,
remote_instance: tp.Optional[CatmaidInstance]=None,
) -> tp.Set[int]:
"""Get all skeleton IDs from the project matching given filters.
Parameters
----------
created_by : int, optional
Created by user with this ID.
reviewed_by : int, optional
Reviewed by user with this ID.
from_date : datetime.date, optional
Has nodes created after this date.
to_date : datetime.date, optional
Has nodes created before this date.
nodecount_gt : int, optional
Has greater than this number of nodes.
This will remove all other criteria.
remote_instance : pymaid.CatmaidInstance, optional
Catmaid instance, by default None
Returns
-------
set[int]
Skeleton IDs matching the given criteria.
"""
cm = _eval_remote_instance(remote_instance)
params = dict()
if created_by is not None:
params["created_by"] = int(created_by)
if reviewed_by is not None:
params["reviewed_by"] = int(reviewed_by)
if from_date is not None:
params["from_date"] = from_date.strftime("%Y%m%d")
if to_date is not None:
params["to_date"] = to_date.strftime("%Y%m%d")
if nodecount_gt is not None:
if params:
logger.warning("Including `nodecount_gt` in `get_skeleton_ids` will remove all other criteria: %s were given", sorted(params))
params["nodecount_gt"] = int(nodecount_gt)
url = cm.make_url(
cm.project_id,
"skeletons",
**params,
)
result = cm.fetch(url)
return set(result)