ipfs/py-ipfs-api

Name: py-ipfs-api

Owner: IPFS

Description: A python client library for the IPFS API

Created: 2015-09-04 00:23:43.0

Updated: 2018-01-12 16:15:55.0

Pushed: 2018-01-17 14:50:19.0

Homepage:

Size: 511

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

py-ipfs-api

standard-readme compliant Build Status

Python IPFS HTTP Client Library

Check out the client API reference for the full command reference.

Important: The py-ipfs-api PIP package and Python module have both been renamed to ipfsapi (no dash, lower-case a).
The legacy ipfs-api/ipfsApi package/module will only work for IPFS 0.3.x and Python 2 and is deprecated. Please upgrade!

Note: This library constantly has to change to stay compatible with the IPFS HTTP API. Currently, this library is tested against go-ipfs v0.4.10. You may experience compatibility issues when attempting to use it with other versions of go-ipfs.

Table of Contents
Install

Install with pip:

install ipfsapi
Usage

Basic use-case (requires a running instance of IPFS daemon):

import ipfsapi
api = ipfsapi.connect('127.0.0.1', 5001)
res = api.add('test.txt')
res
sh': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
api.cat(res['Hash'])
afkljdskafjaksdjf\n'

Administrative functions:

api.id()
dresses': ['/ip4/127.0.0.1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
           '/ip6/::1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS'],
entVersion': 'go-ipfs/0.4.10',
': 'QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
otocolVersion': 'ipfs/0.1.0',
blicKey': 'CAASpgIwgg ... 3FcjAgMBAAE='}

Pass in API options:

api.pin_ls(type='all')
ys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,
                                                         'Type': 'indirect'},
      'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,
                                                         'Type': 'indirect'},
      ?

Add a directory and match against a filename pattern:

api.add('photos', match='*.jpg')
ash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',
ame': 'photos/photo1.jpg'},
ash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',
ame': 'photos/photo2.jpg'},
ash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',
ame': 'photos/photo3.jpg'}]

Or add a directory recursively:

api.add('fake_dir', recursive=True)
ash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX',
ame': 'fake_dir/fsdfgh'},
ash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ',
ame': 'fake_dir/test2/llllg'},
ash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ',
ame': 'fake_dir/test2'},
ash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M',
ame': 'fake_dir'}]

This module also contains some helper functions for adding strings and JSON to IPFS:

lst = [1, 77, 'lol']
client.add_json(lst)
4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'
client.get_json(_)
77, 'lol']
Documentation

Documentation (currently mostly API documentation unfortunately) is available on IPFS:

https://ipfs.io/ipns/QmZ86ow1byeyhNRJEatWxGPJKcnQKG7s51MtbHdxxUddTH/Software/Python/ipfsapi/

The ipfs command-line Client documentation may also be useful in some cases.

Important changes from ipfsApi 0.2.x
Featured Projects

Projects that currently use py-ipfs-api. If your project isn't here, feel free to submit a PR to add it!

Contribute
IRC

Join us on IRC at #ipfs on chat.freenode.net if you have any suggestions or questions, or if you just want to discuss IPFS and python.

Bug reports

You can submit bug reports using the GitHub issue tracker.

Pull requests

Pull requests are welcome. Before submitting a new pull request, please make sure that your code passes both the code formatting check:

$ tox -e codestyle

And the unit tests:

$ tox

You can arrange to run the code style tests automatically before each commit by installing a pre-commit hook:

$ ./tools/pre-commit --install

Please make sure to include new unit tests for new features or changes in behavior.

License

This code is distributed under the terms of the MIT license. Details can be found in the file LICENSE in this repository.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.