something descriptive
Project description
DataSALad
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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5e9817186a2a3b89fd34c0c8e3aa2f07e69762f9ecdad6350666f2e353e1b4a |
|
MD5 | 1ba5a7dfb7d9e8390845ec2e9cd378b6 |
|
BLAKE2b-256 | 6926ecde73dff89cd793ef84717a57d9427894e22d4215a484bc1ce9287d1394 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4720cc582fa3d836381a3ed040764c00bee55780d615a1fad8b82478d1ad5235 |
|
MD5 | ba16f30c34e37bf37faa48df29a31f13 |
|
BLAKE2b-256 | 44752a380c73b64a9eb3dbc11870ab2c35e1b9ca79b98789fb982b26acf77d8a |