Skip to main content

Basic library for interacting with the REST interface of XNAT.

Project description

# The Boring XNAT Library (BXL)

[![PyPI version](https://badge.fury.io/py/bxl.svg)](https://badge.fury.io/py/bxl)
[![pipeline status](https://gitlab.com/bbrc/xnat/bxl/badges/master/pipeline.svg)](https://gitlab.com/bbrc/xnat/bxl/commits/master)
[![coverage report](https://gitlab.com/bbrc/xnat/bxl/badges/master/coverage.svg)](https://gitlab.com/bbrc/xnat/bxl/commits/master)


BXL is a library for interacting with the REST interface of XNAT ([Extensible Neuroimaging Archive Toolkit](https://www.xnat.org/)),
an open-source imaging informatics software platform.

## Usage

### Installation

BXL is available at [PyPI](https://pypi.org/project/bxl/), the Python Package Index.

With [pip](https://pypi.org/project/pip/) package management system:
```commandline
pip install bxl
```

Without pip:
```commandline
git clone https://gitlab.com/bbrc/xnat/bxl.git .
cd ./bxl
python setup.py install

```

### Credentials handling

The `xnat.Connection()` class constructor expects a `credentials` argument to be passed when instantiated,
* If is a `tuple`, it will proceed to a basic authentication procedure against the `host` XNAT instance.
* If is a `basestring`, it will reuse it as a cookie for authentication against the `host` XNAT instance.
* Otherwise (or if authentication procedure failed in the aforementioned cases), it will remain offline.

### Examples

Connect to XNAT instance using an existing JSESSIONID token and get a list of user-visible XNAT projects
```python
import bxl.xnat as xlib

c = xlib.Connection(hostname='http://myxnat.org',credentials='1A12346385E876546C99B4179E20986A')

data = c.get_json_data(URL=c.host + '/data/projects')
projects = { item['ID'] : item['URI'] for item in data }
print projects

c.close_jsession()

```

Connect via ['with' statement](https://docs.python.org/2.5/whatsnew/pep-343.html) to create a new Female subject 'dummy' in the 'test' project
```python
from bxl import xnat

with xnat.Connection(hostname='http://myxnat.org',credentials=(usr,pwd)) as c :
response = c._put_data(URL=c.host + '/data/projects/test/subjects/dummy', data="",options= {'gender' : 'female'} )
subject_uid = response.content
print 'New subject %s created!' %subject_uid

```


Project details


Download files

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

Source Distribution

bxl-0.3.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

bxl-0.3.0-py2-none-any.whl (13.2 kB view details)

Uploaded Python 2

File details

Details for the file bxl-0.3.0.tar.gz.

File metadata

  • Download URL: bxl-0.3.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.14

File hashes

Hashes for bxl-0.3.0.tar.gz
Algorithm Hash digest
SHA256 62eb7ababb5a3ad079565ca196668cc5bd5b59fca0abb6e713eb8741a3d1b508
MD5 40a89d3c9c159084578b4dcee07a3e4a
BLAKE2b-256 aeb45578896d0fb56eb8ef7d8fc6518ea6dc2b6a75bb72911d95fd7a699ca707

See more details on using hashes here.

File details

Details for the file bxl-0.3.0-py2-none-any.whl.

File metadata

  • Download URL: bxl-0.3.0-py2-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.14

File hashes

Hashes for bxl-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 05c1b3370df5dc0f975fe6e827676cbefb063bd31ab5ce5161b5b7b1db3da404
MD5 b7a7257bd054b7f57bd53a06c3a34a69
BLAKE2b-256 277c0f212e1f4eeb3e7cccacbed8a2a71dc8d15af4599685d9cca2f5c76ebea3

See more details on using hashes here.

Supported by

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