Metadata-Version: 2.1
Name: ocean-lib
Version: 2.0.0a3
Summary: 🐳 Ocean protocol library.
Home-page: https://github.com/oceanprotocol/ocean.py
Author: leucothia
Author-email: devops@oceanprotocol.com
License: Apache Software License 2.0
Keywords: ocean-lib
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ocean-contracts (==1.1.7)
Requires-Dist: coloredlogs
Requires-Dist: pyopenssl
Requires-Dist: PyJWT
Requires-Dist: PyYAML (==5.4.1)
Requires-Dist: requests (>=2.21.0)
Requires-Dist: deprecated
Requires-Dist: pycryptodomex
Requires-Dist: tqdm
Requires-Dist: pytz
Requires-Dist: cryptography
Requires-Dist: scipy
Requires-Dist: enforce-typing (==1.0.0.post1)
Requires-Dist: json-sempai (==0.4.0)
Requires-Dist: eciespy
Requires-Dist: eth-brownie (==1.19.1)
Provides-Extra: dev
Requires-Dist: bumpversion ; extra == 'dev'
Requires-Dist: pkginfo ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: watchdog ; extra == 'dev'
Requires-Dist: flake8 (==5.0.4) ; extra == 'dev'
Requires-Dist: isort (==5.10.1) ; extra == 'dev'
Requires-Dist: black (==22.6.0) ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: licenseheaders (==0.8.8) ; extra == 'dev'
Requires-Dist: pytest-env ; extra == 'dev'
Requires-Dist: codacy-coverage ; extra == 'dev'
Requires-Dist: coverage ; extra == 'dev'
Requires-Dist: docker ; extra == 'dev'
Requires-Dist: mccabe ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pytest-watch ; extra == 'dev'
Requires-Dist: Pillow ; extra == 'dev'
Requires-Dist: matplotlib ; extra == 'dev'
Requires-Dist: mkcodes (==0.1.1) ; extra == 'dev'
Provides-Extra: test
Requires-Dist: codacy-coverage ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: docker ; extra == 'test'
Requires-Dist: mccabe ; extra == 'test'
Requires-Dist: pylint ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-watch ; extra == 'test'
Requires-Dist: Pillow ; extra == 'test'
Requires-Dist: matplotlib ; extra == 'test'
Requires-Dist: mkcodes (==0.1.1) ; extra == 'test'

<!--
Copyright 2022 Ocean Protocol Foundation
SPDX-License-Identifier: Apache-2.0
-->

[![banner](https://raw.githubusercontent.com/oceanprotocol/art/master/github/repo-banner%402x.png)](https://oceanprotocol.com)

<h1 align="center">ocean.py</h1>

> Python library to privately & securely publish, exchange, and consume data.

[![Maintainability](https://api.codeclimate.com/v1/badges/a0be65f412a35440c63e/maintainability)](https://codeclimate.com/github/oceanprotocol/ocean.py/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/a0be65f412a35440c63e/test_coverage)](https://codeclimate.com/github/oceanprotocol/ocean.py/test_coverage)

With ocean.py, you can:

- **Publish** data services: downloadable files or compute-to-data. Create an ERC721 **data NFT** for each service, and ERC20 **datatoken** for access (1.0 datatokens to access).
- **Sell** datatokens via for a fixed price. Sell data NFTs.
- **Transfer** data NFTs & datatokens to another owner, and **all other ERC721 & ERC20 actions** using [web3.py](https://web3py.readthedocs.io), [Brownie](https://eth-brownie.readthedocs.io/en/latest/), etc.

ocean.py is part of the [Ocean Protocol](https://www.oceanprotocol.com) toolset.

This is in beta state. If you run into problems, please open up a [new issue](/issues).

- [🏄 Quickstart](#-quickstart): simple flow, marketplace, compute-to-data, more
- [🦑 Development](#-development)
- [🏛 License](#-license)

## 🏄 Quickstart

Here are flows to try out, from simple to specific detailed variants.

- **[Installation flow](READMEs/install.md)** - the required setup to run ocean.py flows.
- **[Simple flow](READMEs/data-nfts-and-datatokens-flow.md)** - the essence of Ocean - creating a data NFT & datatoken.
- **[Publish flow](READMEs/publish-flow.md)** - a dataset is published.
- **[Consume flow](READMEs/consume-flow.md)** - a published dataset is consumed (downloaded).
- **[Marketplace flow](READMEs/marketplace-flow.md)** - a data asset is posted for sale at fixed rate, then purchased.
- **[Dispenser flow](READMEs/dispenser-flow.md)** - here, a datatoken dispenser is created and datatokens are dispensed for free.
- **[Search & filter data assets](READMEs/search-and-filter-assets.md)** - how assets can be found by their `tags` via Aquarius.

### Remote flows

- **[Get test MATIC](READMEs/get-test-MATIC.md)** - from Mumbai network
- **[Simple remote flow](READMEs/simple-remote.md)** - like the simple flow, but using _remote_ services.
- **[Compute-to-data flow](READMEs/c2d-flow.md)** - uses C2D to build an AI model.

### More types of data assets

- **[REST API flow](READMEs/publish-flow-restapi.md)** - publish & consume REST API-style URIs, showing Binance ETH price feed
- **[GraphQL flow](READMEs/publish-flow-graphql.md)** - publish & consume GraphQL-style URIs
- **[On-chain data flow](READMEs/publish-flow-onchain.md)** - publish & consume on-chain data

### Key-value flows

- [Key-value database](READMEs/key-value-flow.md) - use data NFTs to store arbitrary key-value pairs on-chain.
- [Profile NFTs](READMEs/profile-nfts-flow.md) - enable "login with Web3" where Dapp can access private user profile data.

### Use-case flows

- [Predict-eth](https://github.com/oceanprotocol/predict-eth) - data challenges with $ to predict future ETH price.
- [Data Farming](READMEs/df.md) - curate data assets, earn rewards

### Learn more

- [Get test OCEAN](READMEs/get-test-OCEAN.md) - from Goerli
- [Understand config parameters](READMEs/parameters.md) - envvars vs files
- [Learn about off-chain services](READMEs/services.md) - Ocean Provider for data services, Aquarius metadata store

## 🦑 Development

- **[Developers flow](READMEs/developers.md)** - to further develop ocean.py
- [Release process](READMEs/release-process.md) - to do a new release of ocean.py

## 🏛 License

    Copyright ((C)) 2022 Ocean Protocol Foundation

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
