# py-ipfs-http-client
[![Made by the IPFS Community](https://img.shields.io/badge/made%20by-IPFS%20Community-blue.svg?style=flat-square)](https://docs.ipfs.io/community/)
[![IRC #py-ipfs on chat.freenode.net](https://img.shields.io/badge/freenode%20IRC-%23py--ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23py-ipfs)
[![Matrix #py-ipfs:ninetailed.ninja](https://img.shields.io/matrix/py-ipfs:ninetailed.ninja?color=blue&label=matrix%20chat&server_fqdn=matrix.ninetailed.ninja&style=flat-square)](https://matrix.to/#/#py-ipfs:ninetailed.ninja?via=matrix.ninetailed.ninja&via=librem.one)
[![Standard README Compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
[![PyPI Package ipfshttpclient](https://img.shields.io/pypi/dm/ipfshttpclient.svg?style=flat-square)](https://pypi.python.org/pypi/ipfshttpclient)
[![Build Status](https://img.shields.io/travis/com/ipfs-shipyard/py-ipfs-http-client/master.svg?style=flat-square)](https://travis-ci.com/github/ipfs-shipyard/py-ipfs-http-client)
![Python IPFS HTTP Client Library](https://ipfs.io/ipfs/QmQJ68PFMDdAsgCZvA1UVzzn18asVcf7HVvCDgpjiSCAse)
Check out [the HTTP Client reference](https://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/docs/) for the full command reference.
**Note**: The `ipfsapi` PIP package and Python module have both been renamed to `ipfshttpclient`!
See the [relevant section of the CHANGELOG](CHANGELOG.md#py-ipfs-http-client-0411-13052019) for details. There is also a `ipfsApi` library from which this library originated that is completely
unmaintained and does not work with any recent go-IPFS version.
**Note**: This library occasionally has to change to stay compatible with the IPFS HTTP API.
Currently, this library is tested against [go-ipfs v0.7.0](https://github.com/ipfs/go-ipfs/releases/tag/v0.7.0).
We strive to support the last 5 releases of go-IPFS at any given time; go-IPFS v0.4.23 therefore
being to oldest supported version at this time.
## Table of Contents
- [Install](#install)
- [Usage](#usage)
- [Documentation](#documentation)
- [Migrating from 0.4.x to 0.6.0](#migrating-from-04x-to-060)
- [Featured Projects](#featured-projects)
- [Contributing](#contributing)
- [Bug reports](#bug-reports)
- [Pull requests](#pull-requests)
- [Chat with Us (IRC/Matrix)](#chat-with-us-ircmatrix)
- [License](#license)
## Install
Install with pip:
```sh
pip install ipfshttpclient
```
### Development install from Source
```sh
# Clone the source repository
git clone https://github.com/ipfs/py-ipfs-http-client.git
cd py-ipfs-http-client
# Link ipfs-api-client into your Python Path
flit install --pth-file
```
## Usage
Basic use-case (requires a running instance of IPFS daemon):
```py
>>> import ipfshttpclient
>>> client = ipfshttpclient.connect() # Connects to: /dns/localhost/tcp/5001/http
>>> res = client.add('test.txt')
>>> res
{'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
>>> client.cat(res['Hash'])
'fdsafkljdskafjaksdjf\n'
```
*Please note*: You should specify the address for an IPFS *API server*, using the address of a *gateway* (such as the public `ipfs.io` one at `/dns/ipfs.io/tcp/443/https`) will only give you [extremely limited access](https://github.com/ipfs/go-ipfs/blob/master/docs/gateway.md#read-only-api) and may not work at all. If you are only interested in downloading IPFS content through public gateway servers then this library is unlikely of being of much help.
For real-world scripts you can reuse TCP connections using a context manager or manually closing the session after use:
```py
import ipfshttpclient
# Share TCP connections using a context manager
with ipfshttpclient.connect() as client:
hash = client.add('test.txt')['Hash']
print(client.stat(hash))
# Share TCP connections until the client session is closed
class SomeObject:
def __init__(self):
self._client = ipfshttpclient.connect(session=True)
def do_something(self):
hash = self._client.add('test.txt')['Hash']
print(self._client.stat(hash))
def close(self): # Call this when your done
self._client.close()
```
Administrative functions:
```py
>>> client.id()
{'Addresses': ['/ip4/127.0.0.1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
'/ip6/::1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS'],
'AgentVersion': 'go-ipfs/0.4.10',
'ID': 'QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
'ProtocolVersion': 'ipfs/0.1.0',
'PublicKey': 'CAASpgIwgg ... 3FcjAgMBAAE='}
```
Pass in API options:
```py
>>> client.pin.ls(type='all')
{'Keys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,
'Type': 'indirect'},
'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,
'Type': 'indirect'},
…
```
Add a directory and match against a filename pattern:
```py
>>> client.add('photos', pattern='*.jpg')
[{'Hash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',
'Name': 'photos/photo1.jpg'},
{'Hash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',
'Name': 'photos/photo2.jpg'},
{'Hash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',
'Name': 'photos/photo3.jpg'}]
```
Or add a directory recursively:
```py
>>> client.add('fake_dir', recursive=True)
[{'Hash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX',
'Name': 'fake_dir/fsdfgh'},
{'Hash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ',
'Name': 'fake_dir/test2/llllg'},
{'Hash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ',
'Name': 'fake_dir/test2'},
{'Hash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M',
'Name': 'fake_dir'}]
```
This module also contains some helper functions for adding strings and JSON to IPFS:
```py
>>> lst = [1, 77, 'lol']
>>> client.add_json(lst)
'QmQ4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'
>>> client.get_json(_)
[1, 77, 'lol']
```
Use an IPFS server with basic auth (replace username and password with real creds):
```py
>>> import ipfshttpclient
>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', auth=("username", "password"))
```
Pass custom headers to the IPFS daemon with each request:
```py
>>> import ipfshttpclient
>>> headers = {"CustomHeader": "foobar"}
>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', headers=headers)
```
Connect to the IPFS daemon using a Unix domain socket (plain HTTP only):
```py
>>> import ipfshttpclient
>>> client = ipfshttpclient.connect("/unix/run/ipfs/ipfs.sock")
```
## Documentation
Documentation (currently mostly API documentation unfortunately) is available on IPFS:
https://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/docs/
The `ipfs` [command-line Client documentation](https://ipfs.io/docs/commands/) may also be useful in some cases.
### Migrating from `0.4.x` to `0.6.0`
Please see the CHANGELOG for [the minor breaking changes between these releases](CHANGELOG.md#py-ipfs-http-client-060-30062020).
## Featured Projects
Projects that currently use py-ipfs-http-client. If your project isn't here, feel free to submit a PR to add it!
- [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) interfaces web archive ([WARC](https://www.iso.org/standard/44717.html)) files for distributed indexing and replay using IPFS.
## Contributing
### Easy Tasks
Over time many smaller day-to-day tasks have piled up (mostly supporting some
newer APIs). If want to help out without getting too involved picking up one
of tasks of our [help wanted issue list](https://github.com/ipfs-shipyard/py-ipfs-http-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
would go a long way towards making this library more feature-complete. 👍
### Bug reports
You can submit bug reports using the
[GitHub issue tracker](https://github.com/ipfs/py-ipfs-http-client/issues).
### Pull requests
Pull requests are welcome. Before submitting a new pull request, please
make sure that your code passes both the
[code formatting](https://www.python.org/dev/peps/pep-0008/)
(PEP-8 with tab indentation) and
[typing](https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html)
(PEP-484 using mypy) checks:
$ tox -e styleck -e typeck
As well as the unit tests:
$ tox -e py3 -e py3-httpx
If you are unsure, don't hasitate to just submit your code and a human will
take a look. 🙂
If you can, Please make sure to include new unit tests for new features or
changes in behavior. We aim to bring coverage to 100% at some point.
#### Installing the pre-commit Hook
You can arrange for the code style and typing tests to be run automatically
before each commit by installing the GIT `pre-commit` hook:
$ ./tools/pre-commit --install
### Chat with Us (IRC/Matrix)
You can find us on [#py-ipfs on chat.freenode.org](http://webchat.freenode.net/?channels=%23py-ipfs)
or in our [Matrix chat room](https://matrix.to/#/#py-ipfs:ninetailed.ninja?via=ninetailed.ninja&via=librem.one).
Join us if you have any suggestions, questions or if you just want to discuss
IPFS and Python in general.
Please note that the channel is not monitored all the time and hence you may
only receive a reply to your message later that day. Using Matrix makes it
easier to stay connected in the background, so please prefer the Matrix option
or use an IRC bouncer.
## License
This code is distributed under the terms of the [MIT license](https://opensource.org/licenses/MIT). Details can be found in the file
[LICENSE](LICENSE) in this repository.
Raw data
{
"_id": null,
"home_page": "https://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/",
"name": "ipfshttpclient",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5.4,!=3.6.0,!=3.6.1,!=3.7.0,!=3.7.1",
"maintainer_email": "",
"keywords": "ipfs storage distribution development",
"author": "py-ipfs-http-client team",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/5e/c2/179b22ebf1ba5a4ea788fa72c65e4aebec4bf7b0b5e5f7621d938a311f0c/ipfshttpclient-0.7.0.tar.gz",
"platform": "",
"description": "# py-ipfs-http-client\n\n[![Made by the IPFS Community](https://img.shields.io/badge/made%20by-IPFS%20Community-blue.svg?style=flat-square)](https://docs.ipfs.io/community/)\n[![IRC #py-ipfs on chat.freenode.net](https://img.shields.io/badge/freenode%20IRC-%23py--ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23py-ipfs)\n[![Matrix #py-ipfs:ninetailed.ninja](https://img.shields.io/matrix/py-ipfs:ninetailed.ninja?color=blue&label=matrix%20chat&server_fqdn=matrix.ninetailed.ninja&style=flat-square)](https://matrix.to/#/#py-ipfs:ninetailed.ninja?via=matrix.ninetailed.ninja&via=librem.one)\n[![Standard README Compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n[![PyPI Package ipfshttpclient](https://img.shields.io/pypi/dm/ipfshttpclient.svg?style=flat-square)](https://pypi.python.org/pypi/ipfshttpclient)\n[![Build Status](https://img.shields.io/travis/com/ipfs-shipyard/py-ipfs-http-client/master.svg?style=flat-square)](https://travis-ci.com/github/ipfs-shipyard/py-ipfs-http-client)\n\n![Python IPFS HTTP Client Library](https://ipfs.io/ipfs/QmQJ68PFMDdAsgCZvA1UVzzn18asVcf7HVvCDgpjiSCAse)\n\nCheck out [the HTTP Client reference](https://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/docs/) for the full command reference.\n\n**Note**: The `ipfsapi` PIP package and Python module have both been renamed to `ipfshttpclient`!\nSee the [relevant section of the CHANGELOG](CHANGELOG.md#py-ipfs-http-client-0411-13052019) for details. There is also a `ipfsApi` library from which this library originated that is completely\nunmaintained and does not work with any recent go-IPFS version.\n\n**Note**: This library occasionally has to change to stay compatible with the IPFS HTTP API.\nCurrently, this library is tested against [go-ipfs v0.7.0](https://github.com/ipfs/go-ipfs/releases/tag/v0.7.0).\nWe strive to support the last 5 releases of go-IPFS at any given time; go-IPFS v0.4.23 therefore\nbeing to oldest supported version at this time.\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n- [Documentation](#documentation)\n - [Migrating from 0.4.x to 0.6.0](#migrating-from-04x-to-060)\n- [Featured Projects](#featured-projects)\n- [Contributing](#contributing)\n - [Bug reports](#bug-reports)\n - [Pull requests](#pull-requests)\n - [Chat with Us (IRC/Matrix)](#chat-with-us-ircmatrix)\n- [License](#license)\n\n## Install\n\nInstall with pip:\n\n```sh\npip install ipfshttpclient\n```\n\n### Development install from Source\n\n```sh\n# Clone the source repository\ngit clone https://github.com/ipfs/py-ipfs-http-client.git\ncd py-ipfs-http-client\n\n# Link ipfs-api-client into your Python Path\nflit install --pth-file\n```\n\n## Usage\n\nBasic use-case (requires a running instance of IPFS daemon):\n\n```py\n>>> import ipfshttpclient\n>>> client = ipfshttpclient.connect() # Connects to: /dns/localhost/tcp/5001/http\n>>> res = client.add('test.txt')\n>>> res\n{'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}\n>>> client.cat(res['Hash'])\n'fdsafkljdskafjaksdjf\\n'\n```\n\n*Please note*: You should specify the address for an IPFS *API server*, using the address of a *gateway* (such as the public `ipfs.io` one at `/dns/ipfs.io/tcp/443/https`) will only give you [extremely limited access](https://github.com/ipfs/go-ipfs/blob/master/docs/gateway.md#read-only-api) and may not work at all. If you are only interested in downloading IPFS content through public gateway servers then this library is unlikely of being of much help.\n\nFor real-world scripts you can reuse TCP connections using a context manager or manually closing the session after use:\n\n```py\nimport ipfshttpclient\n\n# Share TCP connections using a context manager\nwith ipfshttpclient.connect() as client:\n\thash = client.add('test.txt')['Hash']\n\tprint(client.stat(hash))\n\n# Share TCP connections until the client session is closed\nclass SomeObject:\n\tdef __init__(self):\n\t\tself._client = ipfshttpclient.connect(session=True)\n\n\tdef do_something(self):\n\t\thash = self._client.add('test.txt')['Hash']\n\t\tprint(self._client.stat(hash))\n\n\tdef close(self): # Call this when your done\n\t\tself._client.close()\n```\n\nAdministrative functions:\n\n```py\n>>> client.id()\n{'Addresses': ['/ip4/127.0.0.1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',\n '/ip6/::1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS'],\n 'AgentVersion': 'go-ipfs/0.4.10',\n 'ID': 'QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',\n 'ProtocolVersion': 'ipfs/0.1.0',\n 'PublicKey': 'CAASpgIwgg ... 3FcjAgMBAAE='}\n```\n\nPass in API options:\n\n```py\n>>> client.pin.ls(type='all')\n{'Keys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,\n 'Type': 'indirect'},\n 'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,\n 'Type': 'indirect'},\n \u2026\n```\n\nAdd a directory and match against a filename pattern:\n\n```py\n>>> client.add('photos', pattern='*.jpg')\n[{'Hash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',\n 'Name': 'photos/photo1.jpg'},\n {'Hash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',\n 'Name': 'photos/photo2.jpg'},\n {'Hash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',\n 'Name': 'photos/photo3.jpg'}]\n```\n\nOr add a directory recursively:\n\n```py\n>>> client.add('fake_dir', recursive=True)\n[{'Hash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX',\n 'Name': 'fake_dir/fsdfgh'},\n {'Hash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ',\n 'Name': 'fake_dir/test2/llllg'},\n {'Hash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ',\n 'Name': 'fake_dir/test2'},\n {'Hash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M',\n 'Name': 'fake_dir'}]\n```\n\nThis module also contains some helper functions for adding strings and JSON to IPFS:\n\n```py\n>>> lst = [1, 77, 'lol']\n>>> client.add_json(lst)\n'QmQ4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'\n>>> client.get_json(_)\n[1, 77, 'lol']\n```\n\nUse an IPFS server with basic auth (replace username and password with real creds):\n\n```py\n>>> import ipfshttpclient\n>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', auth=(\"username\", \"password\"))\n```\n\nPass custom headers to the IPFS daemon with each request:\n```py\n>>> import ipfshttpclient\n>>> headers = {\"CustomHeader\": \"foobar\"}\n>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', headers=headers)\n```\n\nConnect to the IPFS daemon using a Unix domain socket (plain HTTP only):\n```py\n>>> import ipfshttpclient\n>>> client = ipfshttpclient.connect(\"/unix/run/ipfs/ipfs.sock\")\n```\n\n\n\n## Documentation\n\nDocumentation (currently mostly API documentation unfortunately) is available on IPFS:\n\nhttps://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/docs/\n\nThe `ipfs` [command-line Client documentation](https://ipfs.io/docs/commands/) may also be useful in some cases.\n\n### Migrating from `0.4.x` to `0.6.0`\n\nPlease see the CHANGELOG for [the minor breaking changes between these releases](CHANGELOG.md#py-ipfs-http-client-060-30062020).\n\n## Featured Projects\n\nProjects that currently use py-ipfs-http-client. If your project isn't here, feel free to submit a PR to add it!\n\n- [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) interfaces web archive ([WARC](https://www.iso.org/standard/44717.html)) files for distributed indexing and replay using IPFS.\n\n## Contributing\n\n### Easy Tasks\n\nOver time many smaller day-to-day tasks have piled up (mostly supporting some\nnewer APIs). If want to help out without getting too involved picking up one\nof tasks of our [help wanted issue list](https://github.com/ipfs-shipyard/py-ipfs-http-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)\nwould go a long way towards making this library more feature-complete. \ud83d\udc4d\n\n### Bug reports\n\nYou can submit bug reports using the\n[GitHub issue tracker](https://github.com/ipfs/py-ipfs-http-client/issues).\n\n### Pull requests\n\nPull requests are welcome. Before submitting a new pull request, please\nmake sure that your code passes both the\n[code formatting](https://www.python.org/dev/peps/pep-0008/)\n(PEP-8 with tab indentation) and\n[typing](https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html)\n(PEP-484 using mypy) checks:\n\n $ tox -e styleck -e typeck\n\nAs well as the unit tests:\n\n $ tox -e py3 -e py3-httpx\n\nIf you are unsure, don't hasitate to just submit your code and a human will\ntake a look. \ud83d\ude42\n\nIf you can, Please make sure to include new unit tests for new features or\nchanges in behavior. We aim to bring coverage to 100% at some point.\n\n#### Installing the pre-commit Hook\n\nYou can arrange for the code style and typing tests to be run automatically\nbefore each commit by installing the GIT `pre-commit` hook:\n\n $ ./tools/pre-commit --install\n\n### Chat with Us (IRC/Matrix)\n\nYou can find us on [#py-ipfs on chat.freenode.org](http://webchat.freenode.net/?channels=%23py-ipfs)\nor in our [Matrix chat room](https://matrix.to/#/#py-ipfs:ninetailed.ninja?via=ninetailed.ninja&via=librem.one).\nJoin us if you have any suggestions, questions or if you just want to discuss\nIPFS and Python in general.\n\nPlease note that the channel is not monitored all the time and hence you may\nonly receive a reply to your message later that day. Using Matrix makes it\neasier to stay connected in the background, so please prefer the Matrix option\nor use an IRC bouncer.\n\n## License\n\nThis code is distributed under the terms of the [MIT license](https://opensource.org/licenses/MIT). Details can be found in the file\n[LICENSE](LICENSE) in this repository.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Python IPFS HTTP CLIENT library",
"version": "0.7.0",
"split_keywords": [
"ipfs",
"storage",
"distribution",
"development"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "93b0ac961a2739af1cdc318b85777c95",
"sha256": "161c348e91cdc194c06c8725446a51a2d758ff2cc5ea97ec98f49e2af2465405"
},
"downloads": -1,
"filename": "ipfshttpclient-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "93b0ac961a2739af1cdc318b85777c95",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5.4,!=3.6.0,!=3.6.1,!=3.7.0,!=3.7.1",
"size": 82698,
"upload_time": "2021-03-15T10:33:37",
"upload_time_iso_8601": "2021-03-15T10:33:37.324881Z",
"url": "https://files.pythonhosted.org/packages/54/c8/0cbde4f343764848485298a45d1ab603a888f0162d5320cce8fc761a0dcd/ipfshttpclient-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "d76dc0a32abc1984633137d80eceae32",
"sha256": "feb1033c14c3ac87ee81264176c5beefeaf386385804427160466117ccc43693"
},
"downloads": -1,
"filename": "ipfshttpclient-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "d76dc0a32abc1984633137d80eceae32",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5.4,!=3.6.0,!=3.6.1,!=3.7.0,!=3.7.1",
"size": 111742,
"upload_time": "2021-03-15T10:33:39",
"upload_time_iso_8601": "2021-03-15T10:33:39.776953Z",
"url": "https://files.pythonhosted.org/packages/5e/c2/179b22ebf1ba5a4ea788fa72c65e4aebec4bf7b0b5e5f7621d938a311f0c/ipfshttpclient-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-03-15 10:33:39",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "ipfshttpclient"
}