Metadata-Version: 2.1
Name: pylone
Version: 1.0.0
Summary: A Python Serverless framework
Home-page: https://github.com/mathix420/pylone
Author: Arnaud Gissinger
Author-email: agissing@student.42.fr
License: MIT
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: InquirerLib>=0.0.2
Requires-Dist: requests>=2.32.3
Requires-Dist: boto3>=1.35.2
Requires-Dist: PyYAML>=6.0.2

<img src="https://em-content.zobj.net/thumbs/160/google/350/tokyo-tower_1f5fc.png" width="100" height="100" align="right" alt="Pylone icon">

# PYLONE

**Python CD framework**

[![Pypi](https://badgen.net/pypi/v/pylone)](https://pypi.org/project/pylone/)
[![Docker Pulls](https://badgen.net/docker/pulls/plsr/pylone?icon=docker&label=pulls)](https://hub.docker.com/r/plsr/pylone/)

[![wakatime](https://wakatime.com/badge/github/mathix420/pylone.svg)](https://wakatime.com/badge/github/mathix420/pylone)
[![Maintainability](https://api.codeclimate.com/v1/badges/fc078176e896556db324/maintainability)](https://codeclimate.com/github/mathix420/pylone/maintainability)

# Features

- Publish, update and delete Lambdas
- Publish, update and delete Layers
- [Doppler](https://doppler.com) integration
- Simple and light wieght
- Multi stages lambdas
- Before/after deploy hooks

# Install

```bash
pip install pylone
```

# Usage

## Pylone usage

```bash
pylone -h
```

# Template reference

## `stages` global parameter

You can set the `stages` parameter to have a multistage project
```yaml
stages:
    - dev # first one is used as default stage
    - prod # all other stages are more advanced stages
```

## `source` parameter

You can use the `source` parameter to force a directory to be used as source
```yaml
source: ./bin
```

## `before-script` parameter

You can use the `before-script` parameter to execute a bash script before processing an entity
```yaml
before-script: ./script.sh
# OR
before-script: "echo 'Starting ...'"
```

## `after-script` parameter

Similar as `before-script` but launch script at the end of process
```yaml
after-script: ./script.sh
# OR
after-script: "echo 'END of process'"
```

## `bucket-name` parameter

> Default value: `pylone-bucket`

Allows you to choose the bucket name where pylone will upload zip files.
```yaml
bucket-name: tmp-pylone-files
```

# DX

## VSCode config

`.vscode/settings.json`
```json
{
    "yaml.customTags": [
        "!env scalar"
    ]
}
```
