Skip to main content

CADC VOS Class Libraries

Project description

https://img.shields.io/pypi/v/vos.svg

vos is a set of python modules and scripts that ease access to VOSpace.

The default installation of vos is tuned for accessing the VOSpace provided by the Canadian Advanced Network For Astronomical Research (CANFAR)

VOSpace is a Distributed Cloud storage service for use in Astronomy.

There are two ways to use vos:

  1. access VOSpace using the command-line script: eg. vcp

  2. use the vos module inside a Python script: import vos

Authentication to the CANFAR VOSpace service is performed using X509 security certificates, header tokens or username/password pairs. The authentication system is managed by the CADC Group Management Service (GMS).

To retrieve an X509 security certificate for use with the vos tools use the cadc-get-cert script included with this package.

Additional information is available in the CANFAR documentation

System Requirments

  • A CANFAR VOSpace account (required for WRITE access, READ access can be anonymous)

  • fuse OR OSX-FUSE (see additional documentation, only required for filesystem based access, not for command line or programmatic)

  • python2.6 or later

Installation

vos is distributed via PyPI/vos and PyPI is the most direct way to get the latest stable release:

pip install vos --upgrade --user

Or, you can retrieve the github distribution and use

python setup.py install --user

Tutorial

  1. Get a CANFAR account

  2. Install the vos package.

  3. Retrieve a X509/SSL certificate using the cadc-get-cert script installed as part of the cadcutils package that is automatically installed wiht vos.

  4. Example Usage.

    1. Commandline usage:

      • vls -l vos: [List a vospace]

      • vcp vos:jkavelaars/test.txt ./ [copies test.txt to the local directory from vospace]

      • vchmod g+q vos:VOSPACE/foo/bar.txt 'GROUP1, GROUP2, GROUP3' to give three user GROUPs permission to write to this file.

      • vmkdir --help [get a list of command line options and arguments]

      • vmkdir, vrm, vrmdir, vsync vcat, vchmod and vln

      • The complete list of vos commmand line tools can be found using pydoc vos.commands

    2. In a Python script (the example below provides a listing of a vospace container)

      #!python
      import vos
      client = vos.Client()
      client.listdir('vos:jkavelaars')

Development

A virtual environment (venv) is recommended to set up external dependencies without installing them system-wide. Following these instructions, install virtualenv:

$ pip install virtualenv

Next, create, and activate a local venv (this example uses bash):

$ virtualenv venv
$ source venv/bin/activate

Setup the new development environment for testing by installing the appropriate packages:

$ pip install -r dev_requirements.txt

The test environment is built into the setup.py so that conducting unit-tests can be achieved like so:

$ python setup.py test

If you would like versbose output formated as a web page, for example, you can add options to the test call:

$ python setup.py test --addopts '--cov-report html:cov_html --cov=vos'

The same option attribute can be used to pass other arguments to py.test that is executing the test. To run specific only tests for example:

$ python setup.py test --addopts 'vos/test/Test_vos.py::TestClient::test_transfer_error'

Each time you resume work on the project and want to use the venv (e.g., from a new shell), simply re-activate it:

$ source venv/bin/activate

When done, just issue a

$ deactivate

command to deactivate the virtual environment.

Integration Tests

The integration tests are, at present, designed to run only with the CADC VOSpace. Tests assume that vos and/or vofs packages have been installed.

Activate the venv and install vos

$ source venv/bin/activate.csh
$ pip install vos

Run the tests:

$ ./test/scripts/vospace-all.tcsh

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vos-3.3.6.tar.gz (98.0 kB view details)

Uploaded Source

Built Distribution

vos-3.3.6-py3-none-any.whl (112.2 kB view details)

Uploaded Python 3

File details

Details for the file vos-3.3.6.tar.gz.

File metadata

  • Download URL: vos-3.3.6.tar.gz
  • Upload date:
  • Size: 98.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for vos-3.3.6.tar.gz
Algorithm Hash digest
SHA256 15393f499ccb631188b5a334ea76e80163931268618a6f949cce9c4e60c583e1
MD5 09c2ec15084ef6c4480dbc39d68f4bed
BLAKE2b-256 3a2efe840e6924c948bb95797be91567a3ae205f7f8a188d7e1645b7742f01a2

See more details on using hashes here.

File details

Details for the file vos-3.3.6-py3-none-any.whl.

File metadata

  • Download URL: vos-3.3.6-py3-none-any.whl
  • Upload date:
  • Size: 112.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for vos-3.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2c2e304c00cc05ea7da188a8adf70f68b37f10240823313b83a2e27fb6cfca1b
MD5 081ed5a7dcc30e60584f2c46bbd3c2b8
BLAKE2b-256 c20cd9308d4466e0f3c64c190abb118bb994dc29119c9ca2bdfd0e83a5ea6591

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page