quetzal.app.api.data package

Submodules

quetzal.app.api.data.file module

quetzal.app.api.data.file._all_metadata(file_id, workspace)

Gather all metadata of a file in a workspace

If a file has metadata of families f1, f2, …, this function returns a dictionary {'f1': {...}, 'f2': {...}, ...}. This structure is suitable for the responses of file fetch metadata operations.

quetzal.app.api.data.file._now()

Get a datetime object with the current datetime (in UTC) as a string

This function is also created for ease of unit test mocks

quetzal.app.api.data.file._verify_filename_path(filename, path)

Perform some security considerations on filename and path

quetzal.app.api.data.file.create(*, wid, content=None, user, token_info=None)

Create a file on a workspace

This function is the implementation of the upload file endpoint in the Quetzal API. After verifying the workspace and user permissions, it will save the contents of the file in the configured file backend. Finally, it initializes the base metadata family entries for the new file.

Parameters:
  • wid (int) – Workspace identifier where the file will be uploaded.
  • content (file-like) – Contents of the file.
  • user (quetzal.app.models.User) – User that owns the file. This parameter is set by connexion.
  • token_info – Authentication token. This parameter is set by connexion.
Returns:

  • details (dict) – File details object.
  • code (int) – HTTP response code.

API endpoints

quetzal.app.api.data.file.delete(*, wid, uuid, user, token_info=None)
quetzal.app.api.data.file.details(*, uuid)

Get the contents or metadata of a file that has been committed

quetzal.app.api.data.file.details_w(*, wid=None, uuid)

Get contents or metadata of a file on a workspace

quetzal.app.api.data.file.fetch(*args, **kwargs)

Get all the files that have been committed.

quetzal.app.api.data.file.fetch_w(*, wid)

Get all the files on a workspace

quetzal.app.api.data.file.set_metadata(*, wid, uuid, body)
quetzal.app.api.data.file.update_metadata(*, wid, uuid, body)

quetzal.app.api.data.query module

quetzal.app.api.data.query.create(*, body, user, token_info=None)
quetzal.app.api.data.query.create_w(*, wid, body, user, token_info=None)
quetzal.app.api.data.query.details(*, qid, user, token_info=None)
quetzal.app.api.data.query.details_w(*, wid, qid, user, token_info=None)
quetzal.app.api.data.query.fetch(*, user, token_info=None)
quetzal.app.api.data.query.fetch_w(*, wid, user, token_info=None)

quetzal.app.api.data.tasks module

quetzal.app.api.data.tasks.merge(ancestor, theirs, mine)

quetzal.app.api.data.workspace module

quetzal.app.api.data.workspace.commit(*, wid)

Request commit of all metadata and files of a workspace

Parameters:wid (int) – Workspace identifier
Returns:
  • dict – Workspace details
  • int – HTTP response code
quetzal.app.api.data.workspace.create(*, body, user, token_info=None)

Create a new workspace

Returns:
  • dict – Workspace details
  • int – HTTP response code
quetzal.app.api.data.workspace.delete(*, user, wid)

Request deletion of a workspace by id

Parameters:wid (int) – Workspace identifier
Returns:
  • dict – Workspace details
  • int – HTTP response code
quetzal.app.api.data.workspace.details(*, wid)

Get workspace details by id

Parameters:wid (int) – Workspace identifier
Returns:
  • dict – Workspace details
  • int – HTTP response code
quetzal.app.api.data.workspace.fetch(*, user)

List workspaces

Returns:
  • list – List of Workspace details as a dictionaries
  • int – HTTP response code
quetzal.app.api.data.workspace.scan(*, wid)

Request an update of the views of a workspace

Parameters:wid (int) – Workspace identifier
Returns:
  • dict – Workspace details
  • int – HTTP response code