ProjectController¶
- class pyinaturalist.controllers.ProjectController(client)¶
Bases:
BaseController
Controller for Project requests
Methods
- __call__(project_id, **kwargs)¶
Get a single project by ID
Example
>>> client.projects(1234)
- __init__(client)¶
- add_observations(project_id, observation_ids, **params)¶
Add an observation to a project
Notes
API reference: POST projects/{id}/add
API reference: POST /project_observations
Example
>>> client.projects.add_observations(24237, 1234)
- add_users(project_id, user_ids, **params)¶
Add users to project observation rules
Notes
This only affects observation rules, not project membership
Example
>>> client.projects.add_users(1234, [1234, 5678])
- delete_users(project_id, user_ids, **params)¶
Remove users from project observation rules
Notes
This only affects observation rules, not project membership
Example
>>> client.projects.delete_users(1234, [1234, 5678])
- from_ids(project_ids, **params)¶
Get projects by ID
Example
>>> client.projects.from_id([1234, 5678])
- search(**params)¶
Search projects
Notes
API reference: GET /projects
- Parameters:
not_id (
Union
[int
,Iterable
[int
],None
]) – Must not have this IDlat (
Optional
[float
]) – Must be within aradius
kilometer circle around this lat/lnglng (
Optional
[float
]) – Must be within aradius
kilometer circle around this lat/lngradius (
int
) – Distance from center ((lat, lng)
) to search, in kilometers. Defaults to 500km.featured (
Optional
[bool
]) – Must be marked featured for the relevant sitenoteworthy (
Optional
[bool
]) – Must be marked noteworthy for the relevant siteplace_id (
Union
[int
,Iterable
[int
],None
]) – Must be in the place with this IDsite_id (
Optional
[int
]) – Site ID that applies tofeatured
andnoteworthy
. Defaults to the site of the authenticated user, or to the main iNaturalist siterule_details (
Optional
[bool
]) – Return more information about project rules, for example return a full taxon object instead of simply an IDtype (
Union
[str
,Iterable
[str
],None
]) – Projects must be of this typemember_id (
Optional
[int
]) – Project must have member with this user IDhas_params (
Optional
[bool
]) – Must have search parameter requirementsorder_by – Sort order.
distance
only applies if lat and lng are specified.featured
only applies iffeatured
ornoteworthy
are true.
Example
Search for projects about invasive species within 400km of Vancouver, BC:
>>> client.projects.search( >>> q='invasive', >>> lat=49.27, >>> lng=-123.08, >>> radius=400, >>> order_by='distance', >>> )
- update(project_id, **params)¶
Update a project
Notes
Undocumented endpoint; may be subject to braking changes in the future
admin_attributes
andproject_observation_rules_attributes
each accept a list of dicts in the formats shown below. These can be obtained fromget_projects()
, modified, and then passed to this function:{ "admin_attributes": [ {"id": int, "role": str, "user_id": int, "_destroy": bool}, ], "project_observation_rules_attributes": [ {"operator": str, "operand_type": str, "operand_id": int, "id": int, "_destroy": bool}, ], }
- Parameters:
project_id (
Union
[int
,str
]) – Numeric project ID or slug (the short name shown in project URL)cover (
Optional
[str
]) – Banner image for project page; ideally 760x320 pxdescription (
Optional
[str
]) – Description shown on project pageicon (
Optional
[str
]) – Image used as project icon. Should be at least 72x72 px and will be cropped to a square.preferred_banner_color (
Optional
[str
]) – Background color for project banner, as a RGB hex value (e.g.,'#74ac00'
)prefers_banner_contain (
Optional
[bool
]) – Fit banner image without cropping
Example
>>> client.projects.update( ... 'api-test-project', ... title='Test Project', ... description='This is a test project', ... prefers_rule_native=True, ... access_token=access_token, ... )
- prefers_hide_umbrella_map_flags:
prefers_rule_d1: Observation date range to include (start) prefers_rule_d2: Observation date range to include (end) prefers_rule_observed_on: Exact observation date to include prefers_rule_introduced: Only include observations of introduced species prefers_rule_native: Only include observations of native species prefers_rule_members_only: Only include observations of project members prefers_rule_month: Only include observations from these months prefers_rule_photos: Only include observations with photos prefers_rule_sounds: Only include observations with sounds prefers_rule_quality_grade: Only include observations with these quality grades prefers_rule_term_id: Only include observations with this annotation (controlled term ID) prefers_rule_term_value_id: Only include observations with this annotation value (controlled term value ID) prefers_user_trust: Only include observations from trusted users project_type: Project type (‘umbrella’ or ‘collection’) title: Project title user_id: User ID of project owner admin_attributes: Admin users and their roles project_observation_rules_attributes: Rules for observations to include in the project
- Return type: