Metadata-Version: 2.4
Name: cognite-extractor-utils
Version: 7.12.0
Summary: Utilities for easier development of extractors for CDF
Project-URL: repository, https://github.com/cognitedata/python-extractor-utils
Author-email: Mathias Lohne <mathias.lohne@cognite.com>
License: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Requires-Python: >=3.10
Requires-Dist: arrow>=1.0.0
Requires-Dist: azure-identity>=1.14.0
Requires-Dist: azure-keyvault-secrets>=4.7.0
Requires-Dist: cognite-sdk<8.0.0,>=7.90.0
Requires-Dist: croniter>=6.0.0
Requires-Dist: dacite<1.10.0,>=1.9.2
Requires-Dist: decorator>=5.1.1
Requires-Dist: httpx<1,>=0.27.0
Requires-Dist: jsonlines>=4.0.0
Requires-Dist: more-itertools>=10.0.0
Requires-Dist: orjson>=3.10.3
Requires-Dist: prometheus-client<=1.0.0,>=0.7.0
Requires-Dist: psutil>=6.0.0
Requires-Dist: pydantic>=2.8.2
Requires-Dist: pyhumps>=3.8.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml<7,>=5.3.0
Requires-Dist: simple-winservice>=0.1.0; sys_platform == 'win32'
Requires-Dist: typing-extensions<5,>=3.7.4
Provides-Extra: experimental
Requires-Dist: cognite-sdk-experimental; extra == 'experimental'
Description-Content-Type: text/markdown

<a href="https://cognite.com/">
    <img src="https://github.com/cognitedata/cognite-python-docs/blob/master/img/cognite_logo.png" alt="Cognite logo" title="Cognite" align="right" height="80" />
</a>

Cognite Python `extractor-utils`
================================
[![Build Status](https://github.com/cognitedata/python-extractor-utils/workflows/release/badge.svg)](https://github.com/cognitedata/python-extractor-utils/actions)
[![Documentation Status](https://readthedocs.com/projects/cognite-extractor-utils/badge/?version=latest&token=a9bab88214cbf624706005f6a71bbd77964efc910f8e527c7b3d75edc016397c)](https://cognite-extractor-utils.readthedocs-hosted.com/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/cognitedata/python-extractor-utils/branch/master/graph/badge.svg?token=7AmVCpAh7I)](https://codecov.io/gh/cognitedata/python-extractor-utils)
[![PyPI version](https://badge.fury.io/py/cognite-extractor-utils.svg)](https://pypi.org/project/cognite-extractor-utils)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cognite-extractor-utils)
[![License](https://img.shields.io/github/license/cognitedata/python-extractor-utils)](LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)

The `extractor-utils` package is an extension of the Cognite Python SDK intended to simplify the development of data
extractors or other integrations for Cognite Data Fusion.

Documentation is hosted [here](https://cognite-extractor-utils.readthedocs-hosted.com/en/latest/), including a
[quickstart tutorial](https://cognite-extractor-utils.readthedocs-hosted.com/en/latest/quickstart.html).

The changelog is found [here](./CHANGELOG.md).

## Overview

The best way to start a new extractor project is to use the `cogex` CLI. You can install that from PyPI:

``` bash
pip install cognite-extractor-manager
```

To initialize a new extractor project, run

``` bash
cogex init
```

in the directory you want your extractor project in. The `cogex` CLI will prompt you for some information about your
project, and then set up a poetry environment, git repository, commit hooks with type and style checks and load a
template.


## Contributing

The package is open source under the [Apache 2.0 license](./LICENSE), and contribtuions are welcome.

This project adheres to the [Contributor Covenant v2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct/)
as a code of conduct.


### Development environment

We use [uv](https://docs.astral.sh/uv/) to manage dependencies and to administrate virtual environments. To develop
`extractor-utils`, follow the following steps to set up your local environment:

 1. [Install uv](https://docs.astral.sh/uv/getting-started/installation/) if you haven't already.

 2. Clone repository:
    ```
    $ git clone git@github.com:cognitedata/python-extractor-utils.git
    ```
 3. Move into the newly created local repository:
    ```
    $ cd python-extractor-utils
    ```
 4. Create virtual environment and install dependencies:
    ```
    $ uv sync
    ```


### Code requirements

All code must pass [black](https://github.com/ambv/black) and [isort](https://github.com/timothycrosley/isort) style
checks to be merged. It is recommended to install pre-commit hooks to ensure this locally before commiting code:

```
$ poetry run pre-commit install
```

Each public method, class and module should have docstrings. Docstrings are written in the [Google
style](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings). Please include unit and/or
integration tests for submitted code, and remember to update the [changelog](./CHANGELOG.md).
