{"id":34102798,"url":"https://github.com/aipescience/uws-client","last_synced_at":"2025-12-14T17:02:52.566Z","repository":{"id":11112401,"uuid":"13468902","full_name":"aipescience/uws-client","owner":"aipescience","description":"IVOA UWS service command line client","archived":false,"fork":false,"pushed_at":"2020-01-31T16:26:12.000Z","size":249,"stargazers_count":11,"open_issues_count":10,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-11-28T10:41:58.835Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aipescience.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-10T10:58:23.000Z","updated_at":"2022-05-24T21:21:42.000Z","dependencies_parsed_at":"2022-07-27T16:33:11.087Z","dependency_job_id":null,"html_url":"https://github.com/aipescience/uws-client","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/aipescience/uws-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aipescience%2Fuws-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aipescience%2Fuws-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aipescience%2Fuws-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aipescience%2Fuws-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aipescience","download_url":"https://codeload.github.com/aipescience/uws-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aipescience%2Fuws-client/sbom","scorecard":{"id":173307,"data":{"date":"2025-08-11","repo":{"name":"github.com/aipescience/uws-client","commit":"433d239e1ec1e08149df23494d90bbd7f9980c74"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/25 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T17:07:19.762Z","repository_id":11112401,"created_at":"2025-08-16T17:07:19.762Z","updated_at":"2025-08-16T17:07:19.762Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27732082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-14T17:01:53.291Z","updated_at":"2025-12-14T17:02:52.561Z","avatar_url":"https://github.com/aipescience.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"uws - A client for UWS IVOA services\n====================================\n\n[![Build Status](https://travis-ci.org/aipescience/uws-client.svg?branch=travis_ci)](https://travis-ci.org/aipescience/uws-client)\n\nThis is a client for IVOA Virtual Observatroy UWS services.\nIt can be used to access UWS services directly or through Basic\nAuthentication.\n\nInstallation:\n-------------\n\nIn a directory of your choice, clone uws-client from the AIP \nE-Science repository:\n\n```\ngit clone https://github.com/aipescience/uws-client\n```\n\nYou might need to install the headers of the xml libraries for your system. e.g for debian/Ubuntu:\n\n```\napt-get install libxml2-dev libxslt1-dev python-dev\n```\n\nMacOS users may need to install `macports` and/or some other software first.\n\nThen install the python packages using pip:\n\n```\ncd uws-client\npip install .\n```\n\nThis will install `uws` into your systems `bin` directory and\nmakes the command available on the command line.\n\nRunning unit tests:\n-------------------\n\nIf you want to make sure that uws client works as we have anticipated\nit, you are free to run the unittests. For this you need to setup the\ndevelopment environment in the `uws-client` directory:\n\n```\npip install -r ./requirements.pip\npip install -r ./requirements-dev.pip\n```\n\nYou can then run the unittests using nosetests:\n\n```\ncd uws\nnosetests .\n```\n\nIf you use MacOS, be aware that pip may install the *nosetests* executable into `/usr/local/bin/` or similar, which may not be in your $PATH. You can use e.g. `find / -name 'nosetests'` for discovering your executable. (If you cannot find it, make sure that the `nose`-module really is installed.)\n\nGeneric usage of the uws client:\n--------------------------------\n\nusage: `uws [-h] -H HOST [-U USER] [-P] {job,list} ...`\n\npositional arguments:  \n    `{job,list}`         commands for UWS  \n    `list`               list all jobs on the UWS service  \n    `job`                access a given job on the UWS service  \n\noptional arguments:  \n  `-h`, `--help`            show this help message and exit  \n  `-H HOST`, `--host HOST`  URL to UWS service  \n  `-U USER`, `--user USER`  user name  \n  `-P` , `--password PWD`   password (`-P`: use prompt)  \n\n\nList all jobs on service:\n-------------------------\n\nusage: `uws list [-h] [-c] [-p] [-q] [-e] [-E] [-a] [--unknown] [--held]\n                   [--suspended] [--archived]`\n\noptional arguments:  \n  `-h`, `--help`       show this help message and exit  \n  `-c`, `--completed`  show completed jobs  \n  `-p`, `--pending`    show pending jobs  \n  `-q`, `--queued`     show queued jobs  \n  `-e`, `--executing`  show executing jobs  \n  `-E`, `--error`      show jobs with errors  \n  `-a`, `--aborted`    show aborted jobs  \n  `--unknown`          show unknown state jobs  \n  `--held`             show held jobs  \n  `--suspended`        show suspended jobs  \n  `--archived`         [UWS1.1] show (deleted) jobs archived on the server  \n  `--after TIMESTAMP`  [UWS1.1] show only jobs started after given UTC time,\n                        also works with local time, if timezone information is added (e.g. --after 2015-09-10T10:00+02:00 for European/Paris, day saving time)  \n  `--last  NUMBER`     [UWS1.1] show only NUMBER most recently started jobs\n\nSpecifying any of the specific job phases will only show those jobs with the\ncorresponding phase. You can even combine two or more phases by appending multiple phase filters, e.g. if you want all jobs with phase ERROR and additionally the ABORTED jobs, then use `--error --aborted`.\n\n\nJob handling:\n-------------\n\nusage: `uws job [-h] {set,run,show,phase,results,abort,new,delete} ...`  \n\npositional arguments:  \n  {`set`,`run`,`show`,`phase`,`results`,`abort`,`new`,`delete`}\n                          commands for manipulating jobs  \n    `show`                show the specific job  \n    `new`                 create a new job  \n    `set`                 set parameters for the specific job  \n    `run`                 run the specific job if its state is pending  \n    `phase`               show the phase of a specific job  \n    `abort`               aborts the execution of a specific job  \n    `delete`              delete a specific job  \n    `results`             download results of a specific job  \n\noptional arguments:  \n  `-h`, `--help`            show this help message and exit  \n\n\nShow job:\n---------\n\nusage: `uws job show [-h] id [-w [WAIT]] [-s PHASE] `\n\npositional arguments:  \n  `id`          `job id`\n\noptional arguments:  \n  `-h`, `--help`                show this help message and exit  \n  `-w [WAIT]`, `--wait [WAIT]`  [UWS1.1] wait for phase change before returning, but at most the specified amount of seconds or infinitely, if no value is given  \n  `-s PHASE`, `--phase PHASE`   [UWS1.1] required phase while waiting  \n\n\nNew job:\n--------\n\nusage: `uws job new [-h] [-r] [job_parameters [job_parameters ...]]`\n\npositional arguments:  \n  `job_parameters`   unspecified list of UWS service parameters in the form\n                   `\u003cparameter\u003e=\u003cvalue\u003e`.  \n                   Default parameters are:  \n                   `destruction` (Destruction time of the job),  \n                   `executionDuration` (Execution duration of the job in seconds)  \n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit  \n  `-r`, `--run`   immediately submits the job on creation  \n\nJob parameters are given at the end of the command in the following format:  \n  `\u003cparameter\u003e=\u003cvalue\u003e`  \neg: `executionDuration=20`, `query=\"SELECT * FROM foo\"`  \n\nBe aware, that a UWS service can have additional parameters for a job than the\nstandardised `destruction` and `executionDuration` parameter.\n\nThere is no way to know which parameters are supported by a UWS service, so the\nservice provider needs to be contacted or its documentation consulted.\n\n\nSet parameters for existing job:\n--------------------------------\n\nusage: `uws job set [-h] id [job_parameters [job_parameters ...]]`  \n\npositional arguments:  \n  `id`          job id  \n  `job_parameters`   unspecified list of UWS service parameters in the form\n                     `\u003cparameter\u003e=\u003cvalue\u003e`.  \n                     Default parameters are:  \n                     `destruction` (Destruction time of the job),  \n                     `executionDuration` (Execution duration of the job in seconds)  \n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit  \n\n\nJob parameters are specified as with creating new jobs.\n\n\nRun / submit an existing job:\n-----------------------------\n\nusage: `uws job run [-h] id`  \n\npositional arguments:  \n  `id`          `job id`\n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit\n\n\nShow phase of job:\n------------------\n\nusage: `uws job phase [-h] id`\n\npositional arguments:  \n  `id`          `job id`\n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit\n\n\nDownload results from a finished job:\n-------------------------------------\n\nusage: `uws job results [-h] id [result_id] [-f file_base]`\n\npositional arguments:  \n  `id`          job id  \n  `result_id`    result id, e.g. for specifying the format  \n\noptional arguments:  \n  `-h`, `--help`           show this help message and exit  \n  `-f`, `--file_base`      basename of output file, will be appended with result_id  \n\nResults are downloaded to the directory from which uws was called!\n(Unless a file_base is given and contains a path.)\n\n\nAbort or delete an existing job:\n--------------------------------\n\nusage: `uws job abort [-h] id`\n\npositional arguments:  \n  `id`          job id\n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit\n\n\nusage: `uws job delete [-h] id`\n\npositional arguments:  \n  `id`          job id\n\noptional arguments:  \n  `-h`, `--help`  show this help message and exit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faipescience%2Fuws-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faipescience%2Fuws-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faipescience%2Fuws-client/lists"}