Skip to main content

something descriptive

Project description

DataSALad

GitHub release PyPI version fury.io Build status codecov Documentation Status

This is a pure-Python library with a collection of utilities for working with data in the vicinity of Git and git-annex. While this is a foundational library from and for the DataLad project, its implementations are standalone, and are meant to be equally well usable outside the DataLad system.

A focus of this library is efficient communication with subprocesses, such as Git or git-annex commands, which read and produce data in some format. The library provides utilities to integrate such subprocess in Python algorithms, for example, to iteratively amend information in JSON-lines formatted data streams that are retrieved in arbitrary chunks over a network connection.

Here is a simple demo how an iterable with inputs can be fed to the cat shell command, while reading its output back as a Python iterable.

>>> with iter_subproc(['cat'], inputs=[b'one', b'two', b'three']) as proc:
...     for chunk in proc:
...         print(chunk)
b'onetwothree'

Developing with datasalad

API stability is important, just as adequate semantic versioning, and informative changelogs.

Public vs internal API

Anything that can be imported directly from any of the sub-packages in datasalad is considered to be part of the public API. Changes to this API determine the versioning, and development is done with the aim to keep this API as stable as possible. This includes signatures and return value behavior.

As an example: from datasalad.runners import iter_git_subproc imports a part of the public API, but from datasalad.runners.git import iter_git_subproc does not.

Use of the internal API

Developers can obviously use parts of the non-public API. However, this should only be done with the understanding that these components may change from one release to another, with no guarantee of transition periods, deprecation warnings, etc.

Developers are advised to never reuse any components with names starting with _ (underscore). Their use should be limited to their individual subpackage.

Contributing

Contributions to this library are welcome! Please see the contributing guidelines for details on scope on styles of potential contributions.

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

datasalad-0.1.0.tar.gz (50.4 kB view details)

Uploaded Source

Built Distribution

datasalad-0.1.0-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file datasalad-0.1.0.tar.gz.

File metadata

  • Download URL: datasalad-0.1.0.tar.gz
  • Upload date:
  • Size: 50.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for datasalad-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f5e9817186a2a3b89fd34c0c8e3aa2f07e69762f9ecdad6350666f2e353e1b4a
MD5 1ba5a7dfb7d9e8390845ec2e9cd378b6
BLAKE2b-256 6926ecde73dff89cd793ef84717a57d9427894e22d4215a484bc1ce9287d1394

See more details on using hashes here.

File details

Details for the file datasalad-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: datasalad-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for datasalad-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4720cc582fa3d836381a3ed040764c00bee55780d615a1fad8b82478d1ad5235
MD5 ba16f30c34e37bf37faa48df29a31f13
BLAKE2b-256 44752a380c73b64a9eb3dbc11870ab2c35e1b9ca79b98789fb982b26acf77d8a

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