Grano¶
- class granoclient.Grano(api_host=None, api_key=None, api_prefix='/api/1/')¶
Grano client library. This class provides basic access to many of the core APIs for grano, including projects, and a global view of entities and relations (seldomly useful, consider using the project-filtered versions instead.)
The client library can be configured directly, or through a configuration file (~/.grano.ini) and a set of environment variables.
Parameters: - api_host – (optional) host name URL to connect to, without any path information (e.g. http://grano.io).
- api_key – (optional) API key of the user which is running the requests.
- api_prefix – (optional) path prefix of the grano API, usually /api/1/.
- entities¶
Returns a granoclient.EntityCollection of all available entities in this instance of grano.
Consider using the entities property of a specific granoclient.Project instead.
- get(slug)¶
Get a project. Shortcut to Grano.projects.by_slug().
Parameters: slug – the slug identifying the project to be retrieved.
- projects¶
Returns a granoclient.ProjectCollection of all available projects in this instance of grano.
- relations¶
Returns a granoclient.RelationCollection of all available relation in this instance of grano.
Consider using the relations property of a specific granoclient.Project instead.
Projects¶
- class granoclient.ProjectCollection(client)¶
Represents all the granoclient.Project currently available in this instance of grano. Provides functionality to search for, filter and create elements.
- all()¶
Iterate over all available resources in the collection. This can also be done by just iterating over the collection:
for resource in collection: ...
- by_slug(slug)¶
Load a project based on its slug, i.e. its unique designation.
Parameters: slug – the slug of the project to be retrieved.
- create(data)¶
Create a new project.
Parameters: data – A dictionary with the projects attributes, slug and label are required.
- query(params=None)¶
Begin querying the collection. The query can further be refined using the methods of the returned granoclient.Query.
- class granoclient.Project(*args, **kwargs)¶
A project within grano. This type serves as a namespace for use cases of the application. Each project has its own schemata, entities and relations.
- entities¶
A collection of the granoclient.Entity associated with this project.
- relations¶
A collection of the granoclient.Relation associated with this project.
- reload()¶
Reload the resource from the server. This is useful when the resource is a shortened index representation which needs to be traded in for a complete representation of the resource.
- save()¶
Update the server with any local changes, then update the local version with the returned value from the server.
- schemata¶
A collection of the granoclient.Schema associated with this project.
Schemata¶
- class granoclient.SchemaCollection(client, project_slug)¶
Represents all the granoclient.Schema currently available in a given project. Provides functionality to search for, filter and create elements.
- all()¶
Iterate over all available resources in the collection. This can also be done by just iterating over the collection:
for resource in collection: ...
- by_name(name)¶
Load a schema based on its name, i.e. its unique designation.
Parameters: name – the name of the project to be retrieved.
- create(data)¶
Create a new schema.
Parameters: data – A dictionary with the schemas attributes, name and label are required, but several attributes should be given. See schema for details.
- query(params=None)¶
Begin querying the collection. The query can further be refined using the methods of the returned granoclient.Query.
- class granoclient.Schema(client, base_endpoint, data)¶
A schema within grano. Schemata define the types of entities and relations that are stored within a grano project. See also schema.
- reload()¶
Reload the resource from the server. This is useful when the resource is a shortened index representation which needs to be traded in for a complete representation of the resource.
- save()¶
Update the server with any local changes, then update the local version with the returned value from the server.
Entities¶
- class granoclient.EntityCollection(client, params={})¶
Represents all the granoclient.Entity currently available in this instance of grano. Provides functionality to search for, filter and create elements.
- all()¶
Iterate over all available resources in the collection. This can also be done by just iterating over the collection:
for resource in collection: ...
- by_id(id)¶
Load an entity based on its id, i.e. its unique designation.
Parameters: id – the id of the entity to be retrieved.
- create(data)¶
Create a new entity.
Parameters: data – A dictionary with the entity attributes, schema and properties are required.
- query(params=None)¶
Begin querying the collection. The query can further be refined using the methods of the returned granoclient.Query.
- class granoclient.Entity(*args, **kwargs)¶
An entity within grano. This type serves as a node, which can be used to store data (in the form of properties), and can be part of relations..
- inbound¶
Inbound relations as a filtered granoclient.RelationCollection.
- outbound¶
Outbound relations as a filtered granoclient.RelationCollection.
- project¶
The granoclient.Project to which this entity belongs.
- reload()¶
Reload the resource from the server. This is useful when the resource is a shortened index representation which needs to be traded in for a complete representation of the resource.
- save()¶
Update the server with any local changes, then update the local version with the returned value from the server.
Relations¶
- class granoclient.RelationCollection(client, params={})¶
Represents all the granoclient.Relation currently available in this instance of grano. Provides functionality to search for, filter and create elements.
- all()¶
Iterate over all available resources in the collection. This can also be done by just iterating over the collection:
for resource in collection: ...
- by_id(id)¶
Load a relation based on its id, i.e. its unique designation.
Parameters: id – the id of the relation to be retrieved.
- create(data)¶
Create a new relation.
Parameters: data – A dictionary with the relation attributes, schema source, target and properties are required.
- query(params=None)¶
Begin querying the collection. The query can further be refined using the methods of the returned granoclient.Query.
- class granoclient.Relation(*args, **kwargs)¶
A relation within grano. This type serves as a connection between two entities, it can also be used to store data (in the form of properties).
- project¶
The granoclient.Project to which this relation belongs.
- reload()¶
Reload the resource from the server. This is useful when the resource is a shortened index representation which needs to be traded in for a complete representation of the resource.
- save()¶
Update the server with any local changes, then update the local version with the returned value from the server.
- source¶
The source granoclient.Entity.
- target¶
The target granoclient.Entity.
Queries¶
Queries are re-used whenever a result set needs to be paginated and filtered.
- class granoclient.Query(client, clazz, endpoint, params=None)¶
A query is a mechanism to store query state and paginate through result sets returned by the server.
- filter(name, value)¶
Apply a filter to the query and return a modified version.
Parameters: - name – the name of the query argument to add.
- value – the value of the query argument to add.
- has_next¶
Check to see if a next page is available.
- has_prev¶
Check to see if a previous page is available.
- next¶
Return a derived query for the next page of elements.
- prev¶
Return a derived query for the previous page of elements.
- results¶
The current page’s results.
- total¶
The total number of results available (across all pages).
Exceptions¶
- class granoclient.GranoException(message)¶
An exception produced by the grano client library, possibly as part of it’s interaction with the server.
- class granoclient.GranoServerException(response)¶
An exception produced by the grano server. The most common types of errors include:
- Missing objects (404), i.e. the client requested data that does not exist on the server.
- Invalid inputs (400), i.e. the data submitted by the client did not pass validation - it may be incomplete.
- class granoclient.NotFound(response)¶
- class granoclient.InvalidRequest(response)¶