Metadata-Version: 2.1
Name: nesso_cli
Version: 0.11.2
Summary: A CLI tool for managing data models.
Keywords: cli,dbt,dyvenia,data,nesso,models
Author-email: Michał Zawadzki <mzawadzki@dyvenia.com>
Requires-Python: >=3.10, <3.13
Description-Content-Type: text/markdown
Requires-Dist: loguru==0.7.2
Requires-Dist: python-dotenv==1.0.0
Requires-Dist: ruamel.yaml==0.18.5
Requires-Dist: pydantic>=1.10.11,<2
Requires-Dist: typer>=0.9.0
Requires-Dist: nesso_cli[trino] ; extra == "all"
Requires-Dist: nesso_cli[redshift] ; extra == "all"
Requires-Dist: nesso_cli[databricks] ; extra == "all"
Requires-Dist: nesso_cli[sqlserver] ; extra == "all"
Requires-Dist: nesso_cli[postgres] ; extra == "all"
Requires-Dist: nesso_cli[duckdb] ; extra == "all"
Requires-Dist: dbt-databricks==1.3.2 ; extra == "databricks"
Requires-Dist: nesso_cli[test] ; extra == "dev"
Requires-Dist: nesso_cli[docs] ; extra == "dev"
Requires-Dist: dbt-osmosis>=0.12.4 ; extra == "dev"
Requires-Dist: sqlfluff>=2.3.5 ; extra == "dev"
Requires-Dist: mkdocs-material[imaging]>=9.4.3 ; extra == "docs"
Requires-Dist: mkdocs-mermaid2-plugin>=1.1.0 ; extra == "docs"
Requires-Dist: mkdocs-include-dir-to-nav>=1.2.0 ; extra == "docs"
Requires-Dist: neoteroi-mkdocs>=1.0.4 ; extra == "docs"
Requires-Dist: mkdocs-jupyter>=0.24.4 ; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.23.0 ; extra == "docs"
Requires-Dist: mkdocs>=1.5.3 ; extra == "docs"
Requires-Dist: mike>=1.1.2 ; extra == "docs"
Requires-Dist: mkdocs-table-reader-plugin>=2.0.3 ; extra == "docs"
Requires-Dist: mkdocs-include-markdown-plugin>=5.1.0 ; extra == "docs"
Requires-Dist: mkdocs-git-revision-date-plugin>=0.3.2 ; extra == "docs"
Requires-Dist: mkdocs-glightbox>=0.4.0 ; extra == "docs"
Requires-Dist: dbt-duckdb==1.7.4 ; extra == "duckdb"
Requires-Dist: duckdb>=1.0.0 ; extra == "duckdb"
Requires-Dist: dbt-postgres==1.7.12 ; extra == "postgres"
Requires-Dist: dbt-redshift==1.3.0 ; extra == "redshift"
Requires-Dist: dyvenia-dbt-sqlserver==1.3.2 ; extra == "sqlserver"
Requires-Dist: pytest==7.4.3 ; extra == "test"
Requires-Dist: pytest-cov==4.1.0 ; extra == "test"
Requires-Dist: pytest-env==1.1.1 ; extra == "test"
Requires-Dist: coverage==7.3.2 ; extra == "test"
Requires-Dist: black==22.12.0 ; extra == "test"
Requires-Dist: mypy==1.7.0 ; extra == "test"
Requires-Dist: sqlalchemy==1.4.50 ; extra == "test"
Requires-Dist: faker==20.1.0 ; extra == "test"
Requires-Dist: getkey==0.6.5 ; extra == "test"
Requires-Dist: pandas>=1.5.3,<2.0.0 ; extra == "test"
Requires-Dist: mock==5.1.0 ; extra == "test"
Requires-Dist: genbadge[coverage]==1.1.0 ; extra == "test"
Requires-Dist: flake8==6.1.0 ; extra == "test"
Requires-Dist: Flake8-pyproject==1.2.3 ; extra == "test"
Requires-Dist: tomlkit==0.12.3 ; extra == "test"
Requires-Dist: interrogate[png]==1.5.0 ; extra == "test"
Requires-Dist: dbt-postgres==1.7.12 ; extra == "test"
Requires-Dist: numpy>=1.26.4,<2.0 ; extra == "test"
Requires-Dist: dbt-trino==1.3.2 ; extra == "trino"
Provides-Extra: all
Provides-Extra: databricks
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: duckdb
Provides-Extra: postgres
Provides-Extra: redshift
Provides-Extra: sqlserver
Provides-Extra: test
Provides-Extra: trino

# nesso-cli

![coverage](coverage/coverage-badge.svg)![docs_coverage](coverage/docstring_coverage.svg)

---
**Documentation**: 📚 [dyvenia docs (internal)][mkdocs page]

**Source Code**: 💾 [dyvenia/nesso-cli][github page]

---

<!-- body-begin -->

The [CLI](https://www.w3schools.com/whatis/whatis_cli.asp) interface of the [nesso data platform].

## Features

- [x] simplify and automate data modelling
- [x] simplify and automate metadata generation
- [x] manage nesso project configuration
- [ ] simplify and automate job scheduling (coming soon!)

## Where does nesso-cli fit in?

Currently, nesso-cli contains a single module, `models` (`nesso models`), which is used for the T in ELTC (Extract, Load, Transform, Catalog), sitting between data ingestion (`viadot`) and metadata ingestion (`luma-cli`):

![Where does nesso-cli fit](docs/_static/where_nesso_cli_fits.png)

In the future, nesso-cli will include additional modules to allow interacting with different components of the nesso data platform through a unified interface.

The next planned module is `jobs`, which will allow creating and scheduling EL and ELTC jobs via a simple CLI interface. Currently, this is done by creating jobs manually in Python and then manually scheduling them in Prefect. We hope to replace this tedious and error-prone (though repeatable) process with simple commands, such as `nesso jobs deployment create --job my_job --schedule "0 0 * * *"`, as well as interactive commands which will guide user through a set of limited choices, such as `nesso jobs job create`.

[github page]: https://github.com/dyvenia/nesso-cli
[mkdocs page]: https://nesso-cli.docs.dyvenia.com/
[nesso data platform]: https://nesso.docs.dyvenia.com/

<!-- body-end -->
