Metadata-Version: 2.1
Name: opvia-scripts
Version: 1.5.3
Summary: 
Home-page: https://github.com/opvia/opvia-scripts
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: docs
Requires-Dist: Pyrebase4 (>=4.5.0,<5.0.0)
Requires-Dist: altair (>=4.2.0,<5.0.0)
Requires-Dist: fastapi-camelcase (>=1.0.2,<2.0.0)
Requires-Dist: pandas (>=1.3.2,<1.5)
Requires-Dist: pydantic (>=1.8.2,<2.0.0)
Requires-Dist: requests (>=2.27.0,<3.0.0)
Requires-Dist: setuptools (==61.2.0)
Project-URL: Repository, https://github.com/opvia/opvia-scripts
Description-Content-Type: text/markdown

# Opvia Scripts

[![CI](https://github.com/opvia/opvia-scripts/actions/workflows/ci.yml/badge.svg)](https://github.com/opvia/opvia-scripts/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/opvia/opvia-scripts/branch/main/graph/badge.svg?token=NSNITDCIUW)](https://codecov.io/gh/opvia/opvia-scripts)

This repo is used to build custom cards on the Opvia platform.

## Developing

_This project requires Poetry version 1.2.2 or newer and Python 3.9.x._

Install [Poetry](https://python-poetry.org/) and [pyenv](https://github.com/pyenv/pyenv#installation):

```bash
curl -sSL https://install.python-poetry.org | python3 -
brew install pyenv
```

and then follow instructions from `pyenv init` to setup your shell. Once that's done, install the correct version of python and set up poetry:

```bash
pyenv install 3.9 && pyenv local 3.9 && poetry env use python3.9
```

You can then use poetry as usual to install your dependencies:

```bash
poetry install
```

If you are using VSCode, it will notice that poetry has created a new virtualenv and prompt you to use it. If it doesn't, you can `cmd+shift+p` -> `Python: Select Interpreter` -> `Python 3.9.15 ('.venv': poetry) ./venv/bin/python` at any point. If you then open up a new shell, vscode will automatically activate this venv for you.

PRs made to this repo require approval from another developer. There should be reasonable tests for all functionality. Tests should protect backwards-compatibility of all of our changes.

New changes should be accompanied by appropriate updates to the [docs](docs/), covering:

- Relevant class and function definitions for custom card writers
- Simple examples covering installed script functionality
- Independently readable in-app scripting versions of the same examples

### Useful Commands

Note: if you are not inside the virtual environment created by poetry, you may need to use `poetry run poe` instead of `poe`

- `poe autoformat` - Autoformat code
- `poe lint` - Linting
- `poe test` - Run Tests
- `poe docs` - Build docs

### Release

Release a new version by manually running the release action on GitHub with a 'major', 'minor', or 'patch' version bump selected.
This will create an push a new semver tag of the format `v1.2.3`.

Pushing this tag will trigger an action to release a new version of your library to PyPI.

Optionally create a release from this new tag to let users know what changed.

