Metadata-Version: 2.4
Name: ccdcoe
Version: 0.0.6
Summary: Package with general devops code
Home-page: https://github.com/ccdcoe/ccdcoe
Author: CCDCOE
Author-email: ccdcoe@invalid.com
License: GNU General Public License v3.0
Project-URL: Code, https://github.com/ccdcoe/ccdcoe
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10,<4.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: setuptools>=68.1.0
Provides-Extra: cli
Requires-Dist: tabulate<0.10.0,>=0.9.0; extra == "cli"
Requires-Dist: click<9.0.0,>=8.1.8; extra == "cli"
Provides-Extra: deployments
Requires-Dist: tqdm<5.0.0,>=4.67.1; extra == "deployments"
Provides-Extra: http-apis
Requires-Dist: requests>=2.31.0; extra == "http-apis"
Provides-Extra: cache-redis
Requires-Dist: redis>=5.0.0; extra == "cache-redis"
Provides-Extra: loggers
Requires-Dist: ansicolors>=1.1.8; extra == "loggers"
Provides-Extra: dumpers
Requires-Dist: pyyaml<7.0.0,>=6.0.2; extra == "dumpers"
Provides-Extra: common
Requires-Dist: python-gitlab<6.0.0,>=5.6.0; extra == "common"
Requires-Dist: python-dotenv<2.0.0,>=1.0.1; extra == "common"
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7; extra == "common"
Provides-Extra: gitlab-bot
Requires-Dist: tqdm<5.0.0,>=4.67.1; extra == "gitlab-bot"
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7; extra == "gitlab-bot"
Requires-Dist: requests>=2.31.0; extra == "gitlab-bot"
Requires-Dist: ansicolors>=1.1.8; extra == "gitlab-bot"
Requires-Dist: python-gitlab<6.0.0,>=5.6.0; extra == "gitlab-bot"
Requires-Dist: python-dotenv<2.0.0,>=1.0.1; extra == "gitlab-bot"
Requires-Dist: redis>=5.0.0; extra == "gitlab-bot"
Provides-Extra: cli-code
Requires-Dist: tqdm<5.0.0,>=4.67.1; extra == "cli-code"
Requires-Dist: click<9.0.0,>=8.1.8; extra == "cli-code"
Requires-Dist: python-dotenv<2.0.0,>=1.0.1; extra == "cli-code"
Requires-Dist: tabulate<0.10.0,>=0.9.0; extra == "cli-code"
Requires-Dist: pyyaml<7.0.0,>=6.0.2; extra == "cli-code"
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7; extra == "cli-code"
Requires-Dist: requests>=2.31.0; extra == "cli-code"
Requires-Dist: ansicolors>=1.1.8; extra == "cli-code"
Requires-Dist: python-gitlab<6.0.0,>=5.6.0; extra == "cli-code"
Provides-Extra: deployment-code
Requires-Dist: tqdm<5.0.0,>=4.67.1; extra == "deployment-code"
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7; extra == "deployment-code"
Requires-Dist: requests>=2.31.0; extra == "deployment-code"
Requires-Dist: ansicolors>=1.1.8; extra == "deployment-code"
Requires-Dist: python-gitlab<6.0.0,>=5.6.0; extra == "deployment-code"
Requires-Dist: python-dotenv<2.0.0,>=1.0.1; extra == "deployment-code"
Provides-Extra: all
Requires-Dist: tqdm<5.0.0,>=4.67.1; extra == "all"
Requires-Dist: click<9.0.0,>=8.1.8; extra == "all"
Requires-Dist: python-dotenv<2.0.0,>=1.0.1; extra == "all"
Requires-Dist: redis>=5.0.0; extra == "all"
Requires-Dist: tabulate<0.10.0,>=0.9.0; extra == "all"
Requires-Dist: pyyaml<7.0.0,>=6.0.2; extra == "all"
Requires-Dist: dataclasses-json<0.7.0,>=0.6.7; extra == "all"
Requires-Dist: requests>=2.31.0; extra == "all"
Requires-Dist: ansicolors>=1.1.8; extra == "all"
Requires-Dist: python-gitlab<6.0.0,>=5.6.0; extra == "all"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# CCDCOE package

[![GitHub Release](https://img.shields.io/github/release/ccdcoe/ccdcoe.svg?style=flat)]()
[![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://opensource.org/licenses/)

![pypi](https://github.com/ccdcoe/ccdcoe/actions/workflows/package_to_pypi.yaml/badge.svg)

This package contains generic re-usable code.

Install the full package:

```
pip install ccdcoe[all]
```

Package has several modules which can be installed separately by specifying them 
as an extra requirement. To install the http_apis module only, specify:

```
pip install ccdcoe[http_apis]
```
Or for multiple modules:
```
pip install ccdcoe[http_apis, loggers]
```

## Modules

The following modules are available in the ccdcoe package:

* http_apis
* loggers
* dumpers
* deployments
* cli

### HTTP apis

Baseclass for http api communication is present under 
ccdcoe.http_apis.base_class.api_base_class.ApiBaseClass

## Adding modules and/or groups

Everything for this package is defined in the pyproject.toml file. Dependencies are managed by poetry and grouped in, you guessed it, groups. Every poetry group can be installed as an extra using pip. 

Extra extras or group on group/extra dependencies can also be defined in the [tool.ccdcoe.group.dependencies] section. Everything defined here will also become an extra if no group already exists. You can use everything defined here as dependency for another group, order does **not** matter.

example:
```toml
[tool.ccdcoe.group.dependencies]
my_awesome_extra = ["my_awesome_group", "my_other_group"]
my_awesome_group = ["my_logging_group"]

[tool.poetry.group.my_awesome_group.dependencies]
<dependency here>

[tool.poetry.group.my_other_group.dependencies]
<dependency here>

[tool.poetry.group.my_logging_group.dependencies]
<dependency here>
```

Using this example the following extras exist with the correct dependencies:
```
pip install ccdcoe[all]
pip install ccdcoe[my-awesome-extra]
pip install ccdcoe[my-awesome-group]
pip install ccdcoe[my-other-group]
pip install ccdcoe[my-logging-group]
```
