Metadata-Version: 2.1
Name: cluedin
Version: 1.0.0
Summary: A Python client for CluedIn API.
Home-page: https://github.com/romaklimenko/cluedin
License: MIT
Keywords: cluedin,mdm,master data management
Author: Roman Klimenko
Author-email: romaklimenko@gmail.com
Maintainer: Roman Klimenko
Maintainer-email: romaklimenko@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: requests (>=2.29.0,<3.0.0)
Project-URL: Repository, https://github.com/romaklimenko/cluedin
Description-Content-Type: text/markdown

# CluedIn

[cluedin](https://pypi.org/project/cluedin/) is a Python client for [CluedIn](https://www.cluedin.com/) API. It can help you with the following:

* getting JWT access tokens to CluedIn
* calling CluedIn REST API
* calling CluedIn GraphQL API

The use is pretty simple. First, install it from [PyPi](https://pypi.org/project/cluedin/):
```shell
pip install cluedin
```

Next, you will need to obtain an access token:
```python
import cluedin

context = {
    "protocol": "http", # if you skip this parameter, it will fall back to `https`
    "domain": "cluedin.local",
    "organization": "foobar",
    "user": "admin@foobar.com",
    "password": "Foobar23!"
}

cluedin.load_token_into_context(context)

print(context['access_token'])
```


Run a GraphQL query:
```python
query = """
    query searchEntities($cursor: PagingCursor, $query: String, $pageSize: Int) {
      search(query: $query, sort: DATE, cursor: $cursor, pageSize: $pageSize) {
        totalResults
        cursor
        entries {
          id
          name
          entityType
        }
      }
    }
"""

variables = {
    "query": "entityType:/Infrastructure/User",
    "pageSize": 1
}

response = cluedin.gql.gql(context, query, variables)
```

Get paged results:
```python
import numpy as np
import pandas as pd

query = """
    query searchEntities($cursor: PagingCursor, $query: String, $pageSize: Int) {
      search(query: $query, sort: DATE, cursor: $cursor, pageSize: $pageSize) {
        totalResults
        cursor
        entries {
          id
          name
          entityType
        }
      }
    }
"""

variables = {
    "query": "*",
    "pageSize": 10000
}

entries = np.array([x for x in cluedin.gql.entries(context, query, variables)])

df = pd.DataFrame(entries.tolist(), columns=list(entries[0].keys()))
```

To be continued...

