Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • nomad-FAIR nomad-FAIR
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 111
    • Issues 111
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • nomad-lab
  • nomad-FAIRnomad-FAIR
  • Issues
  • #561

Closed
Open
Created Jun 18, 2021 by Markus Scheidgen@mscheidgOwner

V1 API client library

In V0 we only had a custom library for accessing archives. For all other parts of the API, you would have to use bravado or requests.

In V0 to get a single or multiple EntryArchive, you would do:

nomad.client.ArchiveQuery(query=dict(entry_id='7QI6WJP3TNtY-AOqbrB5x13qdG9k'), required={...})[0]
nomad.client.ArchiveQuery(query={...}, required={...})

In V1 we should at least cover more of the entries endpoint and provide a more involved library. The same examples could look like this:

nomad.api.entry('7QI6WJP3TNtY-AOqbrB5x13qdG9k').get_archive(required={...})
nomad.api.entries({...}).get_archive({...})

This would be more general and also allow:

nomad.api.entries({...}).get_metadata()
nomad.api.entry('7QI6WJP3TNtY-AOqbrB5x13qdG9k').save_raw_file('INCAR', out='/home/my/nomad/INCAR')

Of course this could be naturally extended to other parts of the API.

Since this is supposed to be for endusers design, documentation, and tutorials are crucial. There should be group discussions in early stages of implementing this.

Edited Jun 18, 2021 by Markus Scheidgen
Assignee
Assign to
Time tracking