Skip to content

JMA Client

  • Refactoring to have a “module” based import: from pinexq.client.<...>
  • Allow filtering ProcessingSteps by ProCon version property, by exact string match
  • Improved some error messages
  • Adopt to new API (query and sort by version, new register action for ProcessingSteps)
  • Add missing properties in ProcessingStep HCO
  • Handle error on upload
  • Add deployment properties to ProcessingStep HCO
  • Add remote endpoint to Info->Remote
  • Add missing name property to In/OutputDataSlotHco
  • Fix naming processing_step_hco.deprecated_on -> processing_step_hco.deprecated_at
  • Adapt to new jma api with processing step deployment features.
  • Integrate API events into client
    • Wait for job completion will now use API events (SSE) removing the need for polling
    • Extend and improve JobGroup to use API event for monitoring the progress
      • new function: wait_any()
      • Use set to ensure uniqueness of monitored jobs
      • better error messages
  • Add client side caching so some long lived resources (determined by cache headers of API)
  • Timeouts are now provided in seconds
  • Expose endpoints for API events and image registry in Info endpoint
  • Processing steps can now be deprecated. Jobs using deprecated processing steps can not be started.
  • Separate admin and normal query for used tags for Jobs, steps and Workdatas.
  • Fix for select_processing function in job convenience class in case multiple processing steps with same name exist
  • Can delete Processing step if the step is not used by any job.
  • Can copy WorkData and Processing steps from organization to user and conversely user to organization.
  • Add organizaion_id to InfoHco
  • Rename user groups to user grants everywhere
  • Adapt to new capabilities in API version 7.6.0
  • Can execute new action RapidJobSetup to create and configure the job in a single request.
  • Add helper function in job helper to execute this action and return Job instance.
  • Add a new function ‘wait_for_completion’ in job convenience class to wait for job completion
  • Uploaded WorkData file can now have non-ascii characters in its filename
  • Adapt to new capabilities in API version 7.5.0
  • Can hide processing steps, ability to query processing steps by IsConfigured parameter
  • Job now keeps track of its started time, if it has been started
  • Expose owner id on WorkData, Job and ProcessingStep
  • Refactored import structure in __init__.py files to ease usage
  • Bugfixes in integration tests
  • Added integration tests for API helpers in ProCon
  • Added version selection for Job.select_processing()
  • Fix missing Name property for DataSlots in Job
  • Fix: relax deserialization so additional fields can be ignored (for DataSlots)
  • Adapt to new capabilities in API version 7.3.0
  • Adapt to new API
  • Extend ProcessingStep registration and editing parameters to allow versions to be set and edited
  • ProcessingStep versions are now used everywhere

Convenience wrappers:

  • expose wrapped hco for Job, WorkFlow and ProcessingStep. Rename e.g. job._job -> job.job_hco
  • on delete of Job, WorkFlow and ProcessingStep the internal HCO will be set to None, added checks for better error messages
  • from_hco() functions no longer require a client, the one from the hco is extracted
  • Job.delete_subjobs_with_data() now is recursive. It calls itself for subjobs (with same parameters)

Link:

  • All Link now have a exists() function which returns true if the resource can be retrieved
  • Link equality now uses target URL for comparison (not object reference)

Misc:

  • Added media types for workflows WORKFLOW_DEFINITION and WORKFLOW_REPORT
  • Fix job_hco now exposes current parameters of the job
  • add access to new admin features to manage broken jobs
  • links and actions can now be checked for availability by using .is_available() or overloaded __bool__ which allows use in if statements directly
  • added new filter for jobs createdBefore and createdAfter
  • Automatic configuration of API version is set on the build of the PDM package.
  • Updated processing step create and from_name functionality are default to version “0”.
  • Added convenience functionality to assist user to get all the versions in case of version collision with processing step function name.
  • Improved handling error states so messages by the API are passed as exceptions and pretty printed
  • Improved error message when action or link is used that is not available
  • enter_api() now gives proper error messages
  • Introduced exceptions to allow better error handling:
    • ClientExceptionand derived: NotAvailableException
    • ApiException and derived: TemporarilyNotAvailableException, TooManyRequestsException
  • Removed logger for now and replace with warnings for user convenience (see errors without configuring a logger)
  • Added convenience class: JobGroup
    • start all
    • wait for all
  • Added convenience function to delete a job and related data: job.delete_with_associated(...)
  • Added convenience function to download a WorkData: workdata.download()
  • Made query result of WorkData, Jobs and ProcessingSteps iterable so navigation to the next page of results is done automatically:
    • iter() giving the query pages
    • iter_flat() giving the flat objects
  • Added delete job action.
  • Implemented missing ProcessingStep actions: edit properties, upload configuration, configure default parameters and clear default parameters.
  • Add convenience classes for WorkData and ProcessingStep similar to Job’s convenience class.
  • Changed package name from datacybernetics-job-management-hypermedia-client to pinexq-client
  • Changed module name for import from hypermedia_client to pinexq_client
  • Package now available on PyPi
  • WorkData for a job’s input/output DataSlots can now be collections. Configure DataSlots with WorkData now accepts multiple WorkData
  • Rename of inconsistent Property in Job CreatedOn-> CreatedAt
  • job helper can now add tags
  • version check ignores patch versions when comparing client to API versions