Organization module
Organization client methods.
Source code in kili/presentation/client/organization.py
class OrganizationClientMethods(BaseClientMethods):
"""Organization client methods."""
@overload
def organizations(
self,
email: Optional[str] = None,
organization_id: Optional[str] = None,
fields: ListOrTuple[str] = ("id", "name"),
first: Optional[int] = None,
skip: int = 0,
disable_tqdm: Optional[bool] = None,
*,
as_generator: Literal[True],
) -> Generator[Dict, None, None]:
...
@overload
def organizations(
self,
email: Optional[str] = None,
organization_id: Optional[str] = None,
fields: ListOrTuple[str] = ("id", "name"),
first: Optional[int] = None,
skip: int = 0,
disable_tqdm: Optional[bool] = None,
*,
as_generator: Literal[False] = False,
) -> List[Dict]:
...
@typechecked
def organizations(
self,
email: Optional[str] = None,
organization_id: Optional[str] = None,
fields: ListOrTuple[str] = ("id", "name"),
first: Optional[int] = None,
skip: int = 0,
disable_tqdm: Optional[bool] = None,
*,
as_generator: bool = False,
) -> Iterable[Dict]:
# pylint: disable=line-too-long
"""Get a generator or a list of organizations that match a set of criteria.
Args:
email: Email of a user of the organization
organization_id: Identifier of the organization
fields: All the fields to request among the possible fields for the organizations.
See [the documentation](https://docs.kili-technology.com/reference/graphql-api#organization) for all possible fields.
first: Maximum number of organizations to return.
skip: Number of skipped organizations (they are ordered by creation date)
disable_tqdm: If `True`, the progress bar will be disabled
as_generator: If `True`, a generator on the organizations is returned.
Returns:
An iterable of organizations.
Examples:
>>> kili.organizations(organization_id=organization_id, fields=['users.email'])
[{'users': [{'email': 'john@doe.com'}]}]
"""
organization_use_cases = OrganizationUseCases(self.kili_api_gateway)
organization_gen = organization_use_cases.list_organizations(
OrganizationFilters(
email=email,
organization_id=OrganizationId(organization_id) if organization_id else None,
),
fields,
QueryOptions(disable_tqdm=disable_tqdm, first=first, skip=skip),
)
if as_generator:
return organization_gen
return list(organization_gen)
@typechecked
def count_organizations(
self, email: Optional[str] = None, organization_id: Optional[str] = None
) -> int:
"""Count organizations that match a set of criteria.
Args:
email: Email of a user of the organization
organization_id: Identifier of the organization
Returns:
An integer corresponding to the number of organizations that match the criteria.
"""
where = OrganizationFilters(
email=email,
organization_id=OrganizationId(organization_id) if organization_id else None,
)
return OrganizationUseCases(self.kili_api_gateway).count_organizations(where)
@typechecked
def organization_metrics(
self,
organization_id: str,
start_date: Optional[datetime] = None,
end_date: Optional[datetime] = None,
fields: ListOrTuple[str] = (
"numberOfAnnotations",
"numberOfHours",
"numberOfLabeledAssets",
),
) -> Dict:
"""Get organization metrics.
Args:
organization_id: Identifier of the organization
start_date: Start date of the metrics computation
end_date: End date of the metrics computation
fields: Fields to request for the organization metrics.
Returns:
A dictionary containing the metrics of the organization.
"""
if start_date is None:
start_date = datetime.now(tz=pytz.UTC)
if end_date is None:
end_date = datetime.now(tz=pytz.UTC)
filters = OrganizationMetricsFilters(
id=OrganizationId(organization_id), start_datetime=start_date, end_datetime=end_date
)
return OrganizationUseCases(self.kili_api_gateway).get_organization_metrics(filters, fields)
count_organizations(self, email=None, organization_id=None)
Count organizations that match a set of criteria.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
email |
Optional[str] |
Email of a user of the organization |
None |
organization_id |
Optional[str] |
Identifier of the organization |
None |
Returns:
Type | Description |
---|---|
int |
An integer corresponding to the number of organizations that match the criteria. |
Source code in kili/presentation/client/organization.py
def count_organizations(
self, email: Optional[str] = None, organization_id: Optional[str] = None
) -> int:
"""Count organizations that match a set of criteria.
Args:
email: Email of a user of the organization
organization_id: Identifier of the organization
Returns:
An integer corresponding to the number of organizations that match the criteria.
"""
where = OrganizationFilters(
email=email,
organization_id=OrganizationId(organization_id) if organization_id else None,
)
return OrganizationUseCases(self.kili_api_gateway).count_organizations(where)
organization_metrics(self, organization_id, start_date=None, end_date=None, fields=('numberOfAnnotations', 'numberOfHours', 'numberOfLabeledAssets'))
Get organization metrics.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
organization_id |
str |
Identifier of the organization |
required |
start_date |
Optional[datetime.datetime] |
Start date of the metrics computation |
None |
end_date |
Optional[datetime.datetime] |
End date of the metrics computation |
None |
fields |
Union[List[str], Tuple[str, ...]] |
Fields to request for the organization metrics. |
('numberOfAnnotations', 'numberOfHours', 'numberOfLabeledAssets') |
Returns:
Type | Description |
---|---|
Dict |
A dictionary containing the metrics of the organization. |
Source code in kili/presentation/client/organization.py
def organization_metrics(
self,
organization_id: str,
start_date: Optional[datetime] = None,
end_date: Optional[datetime] = None,
fields: ListOrTuple[str] = (
"numberOfAnnotations",
"numberOfHours",
"numberOfLabeledAssets",
),
) -> Dict:
"""Get organization metrics.
Args:
organization_id: Identifier of the organization
start_date: Start date of the metrics computation
end_date: End date of the metrics computation
fields: Fields to request for the organization metrics.
Returns:
A dictionary containing the metrics of the organization.
"""
if start_date is None:
start_date = datetime.now(tz=pytz.UTC)
if end_date is None:
end_date = datetime.now(tz=pytz.UTC)
filters = OrganizationMetricsFilters(
id=OrganizationId(organization_id), start_datetime=start_date, end_datetime=end_date
)
return OrganizationUseCases(self.kili_api_gateway).get_organization_metrics(filters, fields)
organizations(self, email=None, organization_id=None, fields=('id', 'name'), first=None, skip=0, disable_tqdm=None, *, as_generator=False)
Get a generator or a list of organizations that match a set of criteria.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
email |
Optional[str] |
Email of a user of the organization |
None |
organization_id |
Optional[str] |
Identifier of the organization |
None |
fields |
Union[List[str], Tuple[str, ...]] |
All the fields to request among the possible fields for the organizations. See the documentation for all possible fields. |
('id', 'name') |
first |
Optional[int] |
Maximum number of organizations to return. |
None |
skip |
int |
Number of skipped organizations (they are ordered by creation date) |
0 |
disable_tqdm |
Optional[bool] |
If |
None |
as_generator |
bool |
If |
False |
Returns:
Type | Description |
---|---|
Iterable[Dict] |
An iterable of organizations. |
Examples:
>>> kili.organizations(organization_id=organization_id, fields=['users.email'])
[{'users': [{'email': 'john@doe.com'}]}]
Source code in kili/presentation/client/organization.py
def organizations(
self,
email: Optional[str] = None,
organization_id: Optional[str] = None,
fields: ListOrTuple[str] = ("id", "name"),
first: Optional[int] = None,
skip: int = 0,
disable_tqdm: Optional[bool] = None,
*,
as_generator: bool = False,
) -> Iterable[Dict]:
# pylint: disable=line-too-long
"""Get a generator or a list of organizations that match a set of criteria.
Args:
email: Email of a user of the organization
organization_id: Identifier of the organization
fields: All the fields to request among the possible fields for the organizations.
See [the documentation](https://docs.kili-technology.com/reference/graphql-api#organization) for all possible fields.
first: Maximum number of organizations to return.
skip: Number of skipped organizations (they are ordered by creation date)
disable_tqdm: If `True`, the progress bar will be disabled
as_generator: If `True`, a generator on the organizations is returned.
Returns:
An iterable of organizations.
Examples:
>>> kili.organizations(organization_id=organization_id, fields=['users.email'])
[{'users': [{'email': 'john@doe.com'}]}]
"""
organization_use_cases = OrganizationUseCases(self.kili_api_gateway)
organization_gen = organization_use_cases.list_organizations(
OrganizationFilters(
email=email,
organization_id=OrganizationId(organization_id) if organization_id else None,
),
fields,
QueryOptions(disable_tqdm=disable_tqdm, first=first, skip=skip),
)
if as_generator:
return organization_gen
return list(organization_gen)