Metadata-Version: 2.4
Name: numerous
Version: 0.47.0
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: typing-extensions>=4.12.2
Requires-Dist: requests>=2.32.3
Requires-Dist: httpx<0.28.0,>=0.23
Requires-Dist: pydantic<2.10.0,>=2.9.0
Requires-Dist: websockets>=0.11
Requires-Dist: pathspec
Provides-Extra: dev
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest==8.3.2; extra == "dev"
Requires-Dist: pytest-asyncio==0.24.0; extra == "dev"
Requires-Dist: freezegun==1.4.0; extra == "dev"
Requires-Dist: ruff==0.6.4; extra == "dev"
Requires-Dist: mypy==1.11.2; extra == "dev"
Requires-Dist: types-requests>=2.32.0; extra == "dev"
Requires-Dist: coverage==7.6.1; extra == "dev"
Requires-Dist: twine==5.1.1; extra == "dev"
Requires-Dist: marimo==0.8.14; extra == "dev"
Requires-Dist: types-setuptools>=74.1.0; extra == "dev"
Requires-Dist: build==1.2.2; extra == "dev"
Requires-Dist: ariadne-codegen[subscriptions]>=0.14.0; extra == "dev"
Requires-Dist: mkdocs==1.6.0; extra == "dev"
Requires-Dist: mkdocstrings==0.26.2; extra == "dev"
Requires-Dist: mkdocstrings-python==1.12.2; extra == "dev"
Requires-Dist: mkdocs_snippet_plugin==1.0.2; extra == "dev"
Requires-Dist: mkdocs-material==9.5.46; extra == "dev"
Requires-Dist: mkdocs-gen-files==0.5.0; extra == "dev"
Requires-Dist: mkdocs-section-index==0.3.9; extra == "dev"
Requires-Dist: mkdocs-literate-nav==0.6.1; extra == "dev"
Requires-Dist: flask; extra == "dev"
Requires-Dist: fastapi; extra == "dev"
Requires-Dist: marimo; extra == "dev"
Requires-Dist: streamlit; extra == "dev"
Requires-Dist: dash; extra == "dev"
Requires-Dist: panel; extra == "dev"

# Numerous Software Development Kit

[![pypi badge](https://img.shields.io/pypi/v/numerous)](https://pypi.python.org/pypi/numerous)
[![Validate workflow badge](https://github.com/numerous-com/numerous-sdk/actions/workflows/validate.yml/badge.svg)](https://github.com/numerous-com/numerous-sdk/actions/workflows/validate.yml)
[![Release workflow badge](https://github.com/numerous-com/numerous-sdk/actions/workflows/release.yml/badge.svg)](https://github.com/numerous-com/numerous-sdk/actions/workflows/release.yml)
![cli coverage badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/jfeodor/a9b9bfdfa0620696fba9e76223790f53/raw/cli-coverage.json)
![sdk coverage badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/jfeodor/a9b9bfdfa0620696fba9e76223790f53/raw/sdk-coverage.json)

Welcome to the Numerous Developer Documentation page!

This is the documentation for the Numerous SDK. If you are looking an overview of the
Numerous platform, please visit the
[Numerous platform documentation](https://numerous.com/docs).

📥 To begin, install the SDK into your Python environment with:

    pip install numerous

🛠 The installation includes two main components: the CLI and the Numerous
Python package.

## Command Line Interface (CLI): A tool for managing your apps

Use the CLI to deploy and manage apps on the Numerous platform:

- `numerous init` - Create a new Numerous app
- `numerous deploy` - Deploy your app to production

## Python SDK package: Integrate Numerous features into Python-based web apps

The SDK enables you to interact with Numerous services programmatically in
your Python web applications.

- Store and organize data (JSON documents, and files) with collections.
- Access information about users and manage user interaction with sessions.

# SDK Development

This section contains information about how to develop the SDK itself for
developers interested in contributing to the SDK.

Most common tasks are defined in the `Makefile`. Use `make help` to get an
overview.

To setup pre-commit hooks, use [pre-commit](https://pre-commit.com/)
to setup hooks for linters and tests. This requires pre-commit to be installed and it is included in the Python SDK development dependencies.

To install pre-commit and pre-push hooks:

    pre-commit install

And you can run them on demand:

    pre-commit run --all

## Development of Python SDK 🐍

Create a virtual environment and activate it:

    python -m venv ./venv
    ./venv/bin/activate

Install the package in editable mode (including development dependencies):

    pip install -e ./python[dev]

Run the tests:

    make sdk-test

And the linters:

    make sdk-lint

## Development of Go CLI 🐹

To build, run `make cli-build`. The executable is stored as `build/numerous`.

While developing, you can run the CLI like below:

    # Run the CLI
    go run .

    # e.g.
    go run . init
    go run . dev

You can lint with:

    make cli-lint

And you can run tests with:

    make cli-test
