├── .github └── workflows │ ├── publish.yml │ └── pytest.yml ├── .gitignore ├── .pre-commit-config.yaml ├── Readme.md ├── config_examples ├── example1.yaml └── example2.yaml ├── docs ├── main.md └── providers.md ├── notebooks ├── base3.png ├── base4.png └── decay.ipynb ├── pyproject.toml ├── scripts ├── generate_documentation.py └── templates │ ├── main.md │ └── provider.md ├── setup.cfg ├── tests ├── conftest.py ├── data │ ├── config_files │ │ ├── e2e.yaml │ │ ├── secrets │ │ └── test_secrets.yaml │ ├── file1 │ └── file2 ├── rotation │ ├── test_decaying.py │ ├── test_period.py │ └── test_simple.py ├── test_common.py ├── test_config.py ├── test_config_file.py ├── test_e2e.py ├── test_engine.py ├── test_output_providers.py ├── test_pipe.py └── test_secrets.py └── timebox ├── __init__.py ├── __main__.py ├── common.py ├── config.py ├── engine.py ├── format_report.py ├── input_providers ├── __init__.py ├── base.py ├── command.py ├── folder.py └── postgres.py ├── notification_providers ├── __init__.py ├── base.py ├── command.py ├── smtp.py └── webhook.py ├── output_providers ├── __init__.py ├── base.py ├── folder.py └── rclone.py ├── pipe.py ├── rclone.py ├── rotation_providers ├── __init__.py ├── base.py ├── decaying_rotation.py ├── period_rotation.py └── simple_rotation.py └── utils.py /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/pytest.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/.github/workflows/pytest.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .ipynb_checkpoints 3 | dist/ 4 | *.egg-info/ -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/Readme.md -------------------------------------------------------------------------------- /config_examples/example1.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/config_examples/example1.yaml -------------------------------------------------------------------------------- /config_examples/example2.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/config_examples/example2.yaml -------------------------------------------------------------------------------- /docs/main.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/docs/main.md -------------------------------------------------------------------------------- /docs/providers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/docs/providers.md -------------------------------------------------------------------------------- /notebooks/base3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/notebooks/base3.png -------------------------------------------------------------------------------- /notebooks/base4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/notebooks/base4.png -------------------------------------------------------------------------------- /notebooks/decay.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/notebooks/decay.ipynb -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/pyproject.toml -------------------------------------------------------------------------------- /scripts/generate_documentation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/scripts/generate_documentation.py -------------------------------------------------------------------------------- /scripts/templates/main.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/scripts/templates/main.md -------------------------------------------------------------------------------- /scripts/templates/provider.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/scripts/templates/provider.md -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/setup.cfg -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/data/config_files/e2e.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/data/config_files/e2e.yaml -------------------------------------------------------------------------------- /tests/data/config_files/secrets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/data/config_files/secrets -------------------------------------------------------------------------------- /tests/data/config_files/test_secrets.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/data/config_files/test_secrets.yaml -------------------------------------------------------------------------------- /tests/data/file1: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /tests/data/file2: -------------------------------------------------------------------------------- 1 | test2 2 | -------------------------------------------------------------------------------- /tests/rotation/test_decaying.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/rotation/test_decaying.py -------------------------------------------------------------------------------- /tests/rotation/test_period.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/rotation/test_period.py -------------------------------------------------------------------------------- /tests/rotation/test_simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/rotation/test_simple.py -------------------------------------------------------------------------------- /tests/test_common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_common.py -------------------------------------------------------------------------------- /tests/test_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_config.py -------------------------------------------------------------------------------- /tests/test_config_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_config_file.py -------------------------------------------------------------------------------- /tests/test_e2e.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_e2e.py -------------------------------------------------------------------------------- /tests/test_engine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_engine.py -------------------------------------------------------------------------------- /tests/test_output_providers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_output_providers.py -------------------------------------------------------------------------------- /tests/test_pipe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_pipe.py -------------------------------------------------------------------------------- /tests/test_secrets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/tests/test_secrets.py -------------------------------------------------------------------------------- /timebox/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /timebox/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/__main__.py -------------------------------------------------------------------------------- /timebox/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/common.py -------------------------------------------------------------------------------- /timebox/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/config.py -------------------------------------------------------------------------------- /timebox/engine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/engine.py -------------------------------------------------------------------------------- /timebox/format_report.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/format_report.py -------------------------------------------------------------------------------- /timebox/input_providers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/input_providers/__init__.py -------------------------------------------------------------------------------- /timebox/input_providers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/input_providers/base.py -------------------------------------------------------------------------------- /timebox/input_providers/command.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/input_providers/command.py -------------------------------------------------------------------------------- /timebox/input_providers/folder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/input_providers/folder.py -------------------------------------------------------------------------------- /timebox/input_providers/postgres.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/input_providers/postgres.py -------------------------------------------------------------------------------- /timebox/notification_providers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/notification_providers/__init__.py -------------------------------------------------------------------------------- /timebox/notification_providers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/notification_providers/base.py -------------------------------------------------------------------------------- /timebox/notification_providers/command.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/notification_providers/command.py -------------------------------------------------------------------------------- /timebox/notification_providers/smtp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/notification_providers/smtp.py -------------------------------------------------------------------------------- /timebox/notification_providers/webhook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/notification_providers/webhook.py -------------------------------------------------------------------------------- /timebox/output_providers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/output_providers/__init__.py -------------------------------------------------------------------------------- /timebox/output_providers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/output_providers/base.py -------------------------------------------------------------------------------- /timebox/output_providers/folder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/output_providers/folder.py -------------------------------------------------------------------------------- /timebox/output_providers/rclone.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/output_providers/rclone.py -------------------------------------------------------------------------------- /timebox/pipe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/pipe.py -------------------------------------------------------------------------------- /timebox/rclone.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rclone.py -------------------------------------------------------------------------------- /timebox/rotation_providers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rotation_providers/__init__.py -------------------------------------------------------------------------------- /timebox/rotation_providers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rotation_providers/base.py -------------------------------------------------------------------------------- /timebox/rotation_providers/decaying_rotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rotation_providers/decaying_rotation.py -------------------------------------------------------------------------------- /timebox/rotation_providers/period_rotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rotation_providers/period_rotation.py -------------------------------------------------------------------------------- /timebox/rotation_providers/simple_rotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/rotation_providers/simple_rotation.py -------------------------------------------------------------------------------- /timebox/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sapristi/timebox/HEAD/timebox/utils.py --------------------------------------------------------------------------------