Package: im-squonk2-client
Informatics Matters Squonk2 Python ClientA Python 3 package that provides simplified access to key parts of the
Informatics Matters Squonk2 service, consisting of the Authentication, and
Data Manager and Account Server REST interfaces. The functions provide
access to some of the key API methods, implemented initially to support
execution of Jobs from a Fragalysis stackbackend.Simplified AuthenticationThe following Squonk2 Authentication functions are available: -Auth.get_access_token()Simplified Data Manager APIThe following Squonk2 Data Manager API functions are available: -DmApi.set_api_url()DmApi.get_api_url()DmApi.ping()DmApi.create_project()DmApi.delete_instance()DmApi.delete_instance_token()DmApi.delete_project()DmApi.delete_unmanaged_project_files()DmApi.get_account_server_namespace()DmApi.get_account_server_registration()DmApi.get_available_instances()DmApi.get_available_datasets()DmApi.get_available_jobs()DmApi.get_available_projects()DmApi.get_available_tasks()DmApi.get_job()DmApi.get_job_exchange_rates()DmApi.get_job_by_version()DmApi.get_instance()DmApi.get_project()DmApi.get_project_instances()DmApi.get_service_errors()DmApi.get_task()DmApi.get_unmanaged_project_file()DmApi.get_unmanaged_project_file_with_token()DmApi.get_version()DmApi.list_project_files()DmApi.put_unmanaged_project_files()DmApi.set_admin_state()DmApi.set_job_exchange_rates()DmApi.start_job_instance()Anamedtupleis used as the return value for many of the methods: -DmApiRvIt contains a booleansuccessfield and a dictionarymsgfield. Themsgtypically contains the underlying REST API response content
(rendered as a Python dictionary), or an error message if the call failed.Simplified Account Server APIThe following Squonk2 Account Server API functions are available: -AsApi.set_api_url()AsApi.get_api_url()AsApi.ping()AsApi.create_product()AsApi.create_unit()AsApi.delete_product()AsApi.delete_unit()AsApi.get_available_assets()AsApi.get_available_units()AsApi.get_available_products()AsApi.get_merchants()AsApi.get_organisation()AsApi.get_product()AsApi.get_product_charges()AsApi.get_unit()AsApi.get_units()AsApi.get_version()Anamedtupleis used as the return value for many of the methods: -AsApiRvIt contains a booleansuccessfield and a dictionarymsgfield. Themsgtypically contains the underlying REST API response content
(rendered as a Python dictionary), or an error message if the call failed.Simplified UI APIThe following Squonk2 UI API functions are available: -UiApi.set_api_url()UiApi.get_version()Anamedtupleis used as the return value for many of the methods: -UiApiRvIt contains a booleansuccessfield and a dictionarymsgfield. Themsgtypically contains the underlying REST API response content
(rendered as a Python dictionary), or an error message if the call failed.Debugging the API requestsFor development purposes you can expose detailed debug information relating to
the underlying API requests by setting the environment variableSQUONK2_API_DEBUG_REQUESTS:export SQUONK2_API_DEBUG_REQUESTS=yesThis will enable detailed debug of both the DM and AS API calls.InstallationThe Squonk2 package is published onPyPIand can be installed from
there:pip install im-squonk2-client~=2.0Environment moduleThe API contains a convenientEnvironmentmodule that allows you to
keep your environment variables in a file so that you don’t need to
declare them in the shell. The default location of the file is~/.squonk2/environments. If you have multiple installations this
allows you to keep all your environment settings together in one file.You can use an alternative file  by settingSQUONK2_ENVIRONMENT_FILE,
e.g.exportSQUONK2_ENVIRONMENT_FILE=~/my-env'---# An example Squeck environments file.## It provides all the connection details for one or more Squonk2 environments.# It is expected to be found in the user's home directory# as '~/.squonk2/environments' or the user can 'point' to it by setting# 'SQUONK2_ENVIRONMENT_FILE', e.g. 'export SQUONK2_ENVIRONMENT_FILE=~/my-env'# The 'environments' block defines one or more environments.# Each has a name. Here we define an environment called 'site-a'# but environments can be called anything YAML accepts as a key,# although it would aid consistency if you restrict your names to letters# and hyphens.environments:site-a:# The hostname of the keycloak server, without a 'http' prefix# and without a '/auth' suffix.keycloak-hostname:example.com# The realm name used for the Squonk2 environment.keycloak-realm:squonk2# The Keycloak client IDs of the Account Server and Data Manager.# The Account Server client ID is optional.keycloak-as-client-id:account-server-apikeycloak-dm-client-id:data-manager-api# The hostnames of the Account Server and Data Manager APIs,# without a 'http' prefix and without an 'api' suffix.# If you have not provided an Account Server client ID its# hostname value is not required.as-hostname:as.example.comdm-hostname:dm.example.com# The username and password of an admin user that has access# to the Account Server and Data Manager.# The user *MUST* have admin rights.admin-user:dlisteradmin-password:blob1234# The hostname of the Squonk2 web application, without a 'http' prefix.# if present, this is used to obtain the UI version.ui-hostname:ui.example.com# The final part of the file is a 'default' property,# which Squeck uses to select the an environment from the block above# when all else fails. It's simply the name of one of the environment# declarations above.default:site-aUsing the Environmentfromsquonk2.environmentimportEnvironment_=Environment.load()environment:Environment=Environment('site-a')# Get the AS API for 'local'# The hostname is augmented so you will get (for the above example)# the value 'https://as.example.com/account-server-api'as_api:str=environment.as_api()DocumentationDocumentation is available in thesquonk2-python-clientproject onRead the DocsGet in touchReport bugs, suggest features or view the source codeon GitHub.