# Introduction to the CPL Docs

The Common Python Library (CPL) is a package for python and a development platform meant to help you create simple and efficient server and desktop applications.

This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises.

## Features

- cpl-core

    - Expandle

    - Application base

        - Standardized application classes

        - Application object builder

        - Application extension classes

        - Startup classes

        - Startup extension classes

    - Configuration

        - Configure via object mapped JSON

        - Console argument handling

    - Console class for in and output

        - Banner

        - Spinner

        - Options (menu)

        - Table

        - Write

        - Write_at

        - Write_line

        - Write_line_at

    - Dependency injection

        - Service lifetimes: singleton, scoped and transient

    - Providing of application environment

        - Environment (development, staging, testing, production)

        - Appname

        - Customer

        - Hostname

        - Runtime directory

        - Working directory

    - Logging

        - Standardized logger

        - Log-level (FATAL, ERROR, WARN, INFO, DEBUG & TRACE)

    - Mail handling

        - Send mails

    - Pipe classes

        - Convert input

    - Utils
        - Credential manager

            - Encryption via BASE64

        - PIP wrapper class based on subprocess

            - Run pip commands

        - String converter to different variants

            - to_lower_case

            - to_camel_case

            - …

- cpl-cli

    - Expandle

    - Code generation

    - Package managing

    - Build & Publishing

- cpl-discord

    - Utils for discord.py

    - Connector between cpl-core and discord.py

    - Prepared services for dependency injection

- cpl-query

    - Python list extensions

    - Functions for sorting and filtering

    - Like linq from C# but in python xD

- cpl-translate

    - Generic translations

    - Prepared translation service and translate pipe

    - Get translation from JSON files key dot.key notation

## Manuals

These pages go into great detail about everything the Library can do.

- Introduction to the CPL Docs
- Getting started
- Contributing to CPL
- CLI reference
- API reference
- Discord Reference
- Query reference
- Translation reference