# DataSHIELD Python 0.2.0

**URL:** <https://datashield.discourse.group/t/datashield-python-0-2-0/1456>\
**Category:** Releases\
**Created:** [18 February 2026 11:09 UTC](https://datashield.discourse.group/t/datashield-python-0-2-0/1456 "2026-02-18T11:09:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![yannick](https://yyz2.discourse-cdn.com/free1/user_avatar/datashield.discourse.group/yannick/32/19_2.png) [@yannick](https://datashield.discourse.group/u/yannick)\
**Post date:** [18 February 2026 11:09 UTC](https://datashield.discourse.group/t/datashield-python-0-2-0/1456/1 "2026-02-18T11:09:16Z")

</div>

Hi,

I just updated the DataSHIELD **Client API in Python** : [datashield package on Pypi](https://pypi.org/project/datashield/) along with its Opal implementation [datashield-opal package on Pypi](https://pypi.org/project/datashield-opal/).

See usage example at: [DataSHIELD Python Demo - Jupyter notebook](https://github.com/datashield/datashield-opal-python/blob/master/examples/datashield.py.ipynb)

Note that for now there is no higher level API such as the ones provided by dsBaseClient or dsTidyverseClient in R. Contributions are welcomed 🙂

As a general recommendation for DS package developers, to facilitate portability to other languages:

- put as little logic as possible in client packages
- make server side packages return standard data structures (vectors and lists), i.e. avoid complex R object serialization (for instance for graphics)

Regards  
Yannick
