Metadata-Version: 2.4
Name: satnogs-proto
Version: 0.1.1
Summary: SatNOGS Protocol Buffers for gRPC interfaces
Author-email: SatNOGS project <dev@satnogs.org>
License-Expression: AGPL-3.0
Project-URL: homepage, https://satnogs.org
Project-URL: documentation, https://docs.satnogs.org
Project-URL: repository, https://gitlab.com/librespacefoundation/satnogs/satnogs-proto
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Communications :: Ham Radio
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: grpcio[protobuf]~=1.83.0
Requires-Dist: versioneer[toml]~=0.29.0
Provides-Extra: dev
Requires-Dist: build~=1.5.0; extra == "dev"
Requires-Dist: tox~=4.56.0; extra == "dev"
Requires-Dist: twine~=6.2.0; extra == "dev"
Dynamic: license-file

# SatNOGS Proto #

SatNOGS Protocol Buffers for gRPC interfaces

## Python ##

### Installation ###

To install the latest development version in editable mode run `pip install -e .` in the current directory.
This will generate the python stubs inside the proto directory. For uninstall must be removed by hand.
Python stubs can also be generated with `python -m grpc_tools.protoc -I. --python_out=. --pyi_out=. --grpc_python_out=. *.proto`
inside the proto directory.

### Building ###

To build the project, run:

```
$ tox run -e build
```

To re-build in a re-created environment, run:

```
$ tox run -r -e build
```

### Maintenance ###

#### Dependencies ####

Python dependencies are defined in the `python/pyproject.toml` file.
Only top-level dependencies shall be defined, with the exception of overrides needed to workaround dependency incompatibilities.
Each dependency is defined using the appropriate compatible version specifier.
The compatible version specifiers shall be such that any newer compatible version can be installed, taking into account the versioning schema followed by each dependency.
When a dependency has been added, removed or updated in `pyproject.toml`, the requirements and constraints files must be manually regenerated.
To regenerate these files run:

```
$ cd python
$ .scm-ci-helpers/refresh-requirements-docker.sh
```

Changes on the `requirements.txt`, `requirements-dev.txt` and `constraints.txt` files shall be committed together with the changes in `pyproject.toml`.

## License ##

[![license](https://img.shields.io/badge/license-AGPL%203.0-6672D8.svg)](LICENSE)
[![Libre Space Foundation](https://img.shields.io/badge/%C2%A9%202026-Libre%20Space%20Foundation-6672D8.svg)](https://librespacefoundation.org/)
