From 0ae0845c81b00a296d786809a13bb11310a6515d Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 5 Jun 2025 19:57:06 -0400 Subject: [PATCH 01/30] Add Mac OS setup instructions --- Makefile | 23 +- docs/setup.md | 250 +--- docs/setup/docker.md | 52 + docs/setup/linux.md | 178 +++ docs/setup/mac.md | 168 +++ mkdocs.yml | 6 +- .../proto/smart_control_building_pb2.py | 1146 +---------------- .../proto/smart_control_normalization_pb2.py | 124 +- .../proto/smart_control_reward_pb2.py | 621 +-------- 9 files changed, 515 insertions(+), 2053 deletions(-) create mode 100644 docs/setup/docker.md create mode 100644 docs/setup/linux.md create mode 100644 docs/setup/mac.md diff --git a/Makefile b/Makefile index c20a9f6e..3eda2d21 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,7 @@ # NOTE: you have to use tabs (not spaces) to define commands in the Makefile # these are commands to be run, not files to be created: -.PHONY: activate docs docs-build docs-quiet mdformat pyink isort pylint lint test - -# variable pointing to the virtual environment executable files: -VENV_BIN := .venv/bin +.PHONY: venv-activate docs docs-build docs-quiet mdformat pyink isort pylint lint test # # ENVIRONMENT @@ -13,7 +10,7 @@ VENV_BIN := .venv/bin # https://stackoverflow.com/questions/33839018/activate-virtualenv-in-makefile # this command uses a different shell, so you must run it manually: # bash -c "source .venv/bin/activate" -activate: +venv-activate: @echo "Run this command to activate the environment: source .venv/bin/activate" # @@ -21,16 +18,16 @@ activate: # mdformat: - ${VENV_BIN}/mdformat README.md docs/ + poetry run mdformat README.md docs/* pyink: - ${VENV_BIN}/pyink . + poetry run pyink . isort: - $(VENV_BIN)/isort . + poetry run isort . pylint: - $(VENV_BIN)/pylint --rcfile=.pylintrc --ignore=proto smart_control + poetry run pylint --rcfile=.pylintrc --ignore=proto smart_control # mega-command for running all formatters: format: mdformat pyink isort pylint @@ -40,17 +37,17 @@ format: mdformat pyink isort pylint # test: - $(VENV_BIN)/pytest --disable-pytest-warnings + poetry run pytest --disable-pytest-warnings # # DOCS # docs: - $(VENV_BIN)/mkdocs serve + poetry run mkdocs serve docs-quiet: - ${VENV_BIN}/mkdocs serve --quiet + poetry run mkdocs serve --quiet docs-build: - $(VENV_BIN)/mkdocs build + poetry run mkdocs build diff --git a/docs/setup.md b/docs/setup.md index 91f34a06..4d2cfbe6 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,246 +1,24 @@ # Local Development Setup Guide -This document provides instructions for getting the repository set up for local -development. By default, we use Linux OS, as some dependencies are not supported -by other operating systems, however we are also providing a "Dockerfile" to -facilitate running the code on non-Linux (Mac and Windows) systems. +This document provides instructions for getting the project set up for local +development. -This project requires the following dependencies: - -- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (i.e. - "protoc") -- [FFmpeg](https://ffmpeg.org/) -- Python (>=3.10.12 and \<3.12), as installed using - [Pyenv](https://github.com/pyenv/pyenv) -- [Venv](https://docs.python.org/3/library/venv.html), for managing a Python - virtual environment - -## Repository Setup - -Clone the repository, for example using an SSH approach: - -```sh -git clone git@github.com:google/sbsim.git -cd sbsim/ -``` - -## Linux Package Installation - -Install Linux package dependencies: - -```sh -sudo apt install -y protobuf-compiler -sudo apt install -y ffmpeg -``` - -You may need to also install `venv`: - -```sh -sudo apt install python3.12-venv -``` - -## Python Installation - -We are using `pyenv` to manage and install specific versions of Python. - -First -[install and configure `pyenv`](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation). - -The configuration results in adding some lines like the following to your -"~/.bashrc" file: - -```sh -# this is the "~/.bashrc" file... - -# Load pyenv automatically: -export PYENV_ROOT="$HOME/.pyenv" -[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init - bash)" - -# Load pyenv-virtualenv automatically: -eval "$(pyenv virtualenv-init -)" -``` - -Remember to restart your shell afterwards. - -Then use `pyenv` to install a compatible Python version (e.g. Python 3.11): - -```sh -pyenv install 3.11 -``` - -Listing the installed versions: - -```sh -pyenv versions -``` - -Use a specific version that was installed (e.g. 3.11.11): - -```sh -pyenv global 3.11.11 -``` - -## Virtual Environment Setup - -Create a Python virtual environment: - -```sh -python -m venv .venv -``` - -> NOTE: on Google machines you may need to use `python3` instead of `python`. - -Activate the virtual environment: - -```sh -source .venv/bin/activate -``` - -## Python Package Installation - -We are using [Poetry](https://python-poetry.org/) to manage, install, and -configure Python package dependencies. - -Install poetry: - -```sh -pip install poetry -``` - -You may need to specify a Python version that is compatible with this project -(e.g. Python version 3.11): +## Prerequisites -```sh -poetry env use 3.11 -``` - -Use poetry to install dependencies, including development dependencies: - -```sh -poetry install --with dev -``` - -## Protocol Buffer Compilation - -Build the ".proto" files defined in the "smart_control/proto" directory into -Python files: - -```bash -cd smart_control/proto - -protoc --python_out=. smart_control_building.proto \ - smart_control_normalization.proto \ - smart_control_reward.proto - -cd ../.. -``` - -## Environment Variable Setup - -By default, simulation videos are stored in the "simulator/videos" directory -(which is ignored from version control). If you would like to customize this -location, use the `SIM_VIDEOS_DIRPATH` environment variable. - -You can pass environment variable(s) at runtime, or create a local ".env" file -and set your desired value(s) there: - -```bash -# this is the ".env" file... - -# customizing the directory where simulation videos are stored: -SIM_VIDEOS_DIRPATH="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" -``` - -## Notebook Setup - -If you are running the Demo notebooks in the "smart_control/notebooks" -directory, you must modify the values of `data_path`, `metrics_path`, -`output_data_path` and `root_dir` in those notebooks. Specifically, the -`data_path` should point to the directory where the "sim_config.gin" file is -located (i.e. "smart_control/configs/sim_config.gin"). - -> NOTE: in the future we plan on refactoring notebook code to leverage the local -> module code and simplify this notebook setup experience. See -> [issue #83](https://github.com/google/sbsim/issues/83) (contributions -> welcome)! - -You can run the notebooks using Jupyter or VS Code. Either approach requires you -to first install Jupyter. We have defined a separate installation group for -notebook-related dependencies: - -```sh -poetry install --with notebooks -``` - -Create a kernel (required for VS Code, optional for Jupyter): - -```sh -poetry run python -m ipykernel install --user --name=sbsim-kernel -``` - -Finally you can run the notebook using Jupyter or VS Code: - -A. Run the notebooks using Jupyter (then visit the resulting -[localhost:8000](localhost:8000) URL in the browser, and optionally choose the -"sbsim-kernel" from the kernel drop-down menu): - -```sh -poetry run jupyter notebook -``` - -B. Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from the -kernel drop-down menu). - -
- -# Docker (Alternative Setup) - -To avoid OS compatibility issues, and get the repository set up on non-Linux -environments, you can use the pre-configured Docker environment (Linux/amd64) -specified by the "Dockerfile". - -Build the image: - -```bash -docker build -t sbsim-env . -``` - -Run the container, in interactive mode, with open ports: - -```bash -docker run -it -p 8888:8888 -v $(pwd):/workspace sbsim-env -``` - -> NOTE: the container will copy the repository into "/workspace/sbsim" on the -> first run. Use -v to persist changes. - -To access Jupyter notebooks, visit -[http://localhost:8888](http://localhost:8888) in the browser. - -To run scripts or tests inside the actively running docker container: - -```sh -# activate the virtual environment: -source /opt/venv/bin/activate +This project requires the following dependencies: -# navigate to the repository: -cd /workspace/sbsim +- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (v 3.21.12) +- [FFmpeg](https://ffmpeg.org/) (v 7.1.1) +- Python (>=3.10.12 and \<3.12) and a Python Virtual Environment -# running scripts: -python path/to/script.py +## System-specific Setup -# running tests: -pytest -``` +By default, we use Linux OS for development. However it is also possible to develop on Mac OS. We are also providing a "Dockerfile" to facilitate development on non-Linux systems (Mac or Windows). Windows users can alternatively use [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install). -To stop the container: +Consult one of the following system-specific setup guides, based on your operating system and preferred tools: -```sh -docker stop sbsim-env -``` + + [Linux OS Setup](./setup/linux.md) + + [Mac OS Setup](./setup/mac.md) + + [Docker Setup](./setup/docker.md) -> NOTE: in the future we would like to further update these instructions and -> improve the Dockerfile. See -> [issue #80](https://github.com/google/sbsim/issues/80) (contributions -> welcome)! +After completing the setup, you should be able to run notebooks or scripts as desired. diff --git a/docs/setup/docker.md b/docs/setup/docker.md new file mode 100644 index 00000000..b9923778 --- /dev/null +++ b/docs/setup/docker.md @@ -0,0 +1,52 @@ +# Docker Setup Guide + +To get the repository set up on non-Linux +environments, you can use the pre-configured Docker environment ("Linux/amd64") +specified by the "Dockerfile". + +First, install [Docker Desktop](https://www.docker.com/products/docker-desktop/). + +Build the image: + +```bash +docker build -t sbsim-env . +``` + +Run the container, in interactive mode, with open ports: + +```bash +docker run -it -p 8888:8888 -v $(pwd):/workspace sbsim-env +``` + +> NOTE: the container will copy the repository into "/workspace/sbsim" on the +> first run. Use -v to persist changes. + +To access Jupyter notebooks, visit +[http://localhost:8888](http://localhost:8888) in the browser. + +To run scripts or tests inside the actively running docker container: + +```sh +# activate the virtual environment: +source /opt/venv/bin/activate + +# navigate to the repository: +cd /workspace/sbsim + +# running scripts: +python path/to/script.py + +# running tests: +pytest +``` + +To stop the container: + +```sh +docker stop sbsim-env +``` + +> NOTE: in the future we would like to further update these instructions and +> improve the Dockerfile. See +> [issue #80](https://github.com/google/sbsim/issues/80) (contributions +> welcome)! diff --git a/docs/setup/linux.md b/docs/setup/linux.md new file mode 100644 index 00000000..8ca38e42 --- /dev/null +++ b/docs/setup/linux.md @@ -0,0 +1,178 @@ + +# Linux OS Setup Guide + +This guide helps you get the project setup on Linux OS. + +## Repository Setup + +Clone the repository, for example using an SSH approach: + +```sh +git clone git@github.com:google/sbsim.git +cd sbsim/ +``` + +## System Package Installation + +Install Linux package dependencies: + +```sh +sudo apt install -y protobuf-compiler +sudo apt install -y ffmpeg +sudo apt install -y python3.12-venv +``` + +## Python Installation + +We are using Pyenv to manage and install specific versions of Python. + +First +[install and configure Pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation). + +The configuration results in adding some lines like the following to your +"~/.bashrc" file: + +```sh +# this is the "~/.bashrc" file... + +# Load pyenv automatically: +export PYENV_ROOT="$HOME/.pyenv" +[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" +eval "$(pyenv init - bash)" + +# Load pyenv-virtualenv automatically: +eval "$(pyenv virtualenv-init -)" +``` + +Remember to restart your shell afterwards. + +Then use Pyenv to install a compatible Python version (e.g. Python 3.11): + +```sh +pyenv install 3.11 +``` + +Listing the installed versions: + +```sh +pyenv versions +``` + +Use a specific version that was installed (e.g. 3.11.11): + +```sh +pyenv global 3.11.11 +``` + +## Virtual Environment Setup + +Create a Python virtual environment: + +```sh +python -m venv .venv +``` + +> NOTE: on Google machines you may need to use `python3` instead of `python`. + +Activate the virtual environment: + +```sh +source .venv/bin/activate +``` + +## Python Package Installation + +We are using [Poetry](https://python-poetry.org/) to manage, install, and +configure Python package dependencies. + +Install poetry: + +```sh +pip install poetry +``` + +You may need to specify a Python version that is compatible with this project +(e.g. Python version 3.11): + +```sh +poetry env use 3.11 +``` + +Use poetry to install dependencies, including development dependencies: + +```sh +poetry install --with dev +``` + +## Protocol Buffer Compilation + +Build the ".proto" files defined in the "smart_control/proto" directory into +Python files: + +```bash +cd smart_control/proto + +protoc --python_out=. smart_control_building.proto +protoc --python_out=. smart_control_normalization.proto +protoc --python_out=. smart_control_reward.proto + +cd ../.. +``` + +> NOTE: the generated "*pb2.py" files have been checked in to the repository to facilitate publishing this package on PyPI. + +## Environment Variable Setup + +By default, simulation videos are stored in the "simulator/videos" directory +(which is ignored from version control). If you would like to customize this +location, use the `SIM_VIDEOS_DIRPATH` environment variable. + +You can pass environment variable(s) at runtime, or create a local ".env" file +and set your desired value(s) there: + +```bash +# this is the ".env" file... + +# customizing the directory where simulation videos are stored: +SIM_VIDEOS_DIRPATH="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" +``` + +## Notebook Setup + +If you are running the Demo notebooks in the "smart_control/notebooks" +directory, you must modify the values of `data_path`, `metrics_path`, +`output_data_path` and `root_dir` in those notebooks. Specifically, the +`data_path` should point to the directory where the "sim_config.gin" file is +located (i.e. "smart_control/configs/sim_config.gin"). + +> NOTE: in the future we plan on refactoring notebook code to leverage the local +> module code and simplify this notebook setup experience. See +> [issue #83](https://github.com/google/sbsim/issues/83) (contributions +> welcome)! + +You can run the notebooks using Jupyter or VS Code. Either approach requires you +to first install Jupyter. We have defined a separate installation group for +notebook-related dependencies: + +```sh +poetry install --with notebooks +``` + +Create a kernel (required for VS Code, optional for Jupyter): + +```sh +poetry run python -m ipykernel install --user --name=sbsim-kernel +``` + +Finally you can run the notebook using Jupyter or VS Code: + +A. Run the notebooks using Jupyter (then visit the resulting +[localhost:8000](localhost:8000) URL in the browser, and choose the +"sbsim-kernel" from the kernel drop-down menu): + +```sh +poetry run jupyter notebook +``` + +B. Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from the +kernel drop-down menu). diff --git a/docs/setup/mac.md b/docs/setup/mac.md new file mode 100644 index 00000000..8f0c50e6 --- /dev/null +++ b/docs/setup/mac.md @@ -0,0 +1,168 @@ + +# Mac OS Setup Guide + +This guide helps you get the project setup on Mac OS. + +## Repository Setup + +Clone the repository, for example using an SSH approach: + +```sh +git clone git@github.com:google/sbsim.git +cd sbsim/ +``` + +## System Package Installation + +First install [Homebrew](https://brew.sh/) (i.e. `brew`). + +Then use Homebrew to install system dependencies: + +```sh +brew install protobuf@21 +brew install ffmpeg +``` + +Checking installations: + +```sh +$(brew --prefix protobuf@21)/bin/protoc --version +#> libprotoc 3.21.12 + +ffmpeg -version +#> 7.1.1 +``` + +NOTE: by installing a pinned version of Protobuf, it may not be symlinked, so normal `protoc` commands may not work without using a prefix of `$(brew --prefix protobuf@21)/bin/protoc`. To avoid needing the prefix, as a one time setup step, update the ".zshrc" file to add the installed location to the path: + +```sh +# this is the "~/.zshrc" file: +export PATH="$(brew --prefix protobuf@21)/bin:$PATH" +``` + +Remember to restart your shell afterwards: + +```sh +source ~/.zshrc +``` + +Then you should be able to run normal `protoc` commands without the prefix: + +```sh +protoc --version +#> libprotoc 3.21.12 +``` + +## Anaconda Installation + +Install [Anaconda](https://www.anaconda.com/download), which we will use to install Python and manage a virtual environment. + +The installation results in automatically adding some content to your "~/.zshrc" file. You may need to run a `conda init bash` or `conda init zsh` command, if prompted to do so. + +Remember to restart your shell afterwards. + +## Virtual Environment Setup + +Create the virtual environment: + +```sh +conda create -n sbsim-env python=3.11 +``` + +Activate the virtual environment: + +```sh +conda activate sbsim-env +``` + + + +## Python Package Installation + +We are using [Poetry](https://python-poetry.org/) to manage, install, and +configure Python package dependencies. + +Install poetry: + +```sh +pip install poetry +``` + +Use poetry to install dependencies, including development dependencies: + +```sh +poetry install --with dev +``` + +## Protocol Buffer Compilation + +Build the ".proto" files defined in the "smart_control/proto" directory into +Python files: + +```bash +cd smart_control/proto + +protoc --python_out=. smart_control_building.proto +protoc --python_out=. smart_control_normalization.proto +protoc --python_out=. smart_control_reward.proto + +cd ../.. +``` + +> NOTE: the generated "*pb2.py" files have been checked in to the repository to facilitate publishing this package on PyPI. + +## Environment Variable Setup + +By default, simulation videos are stored in the "simulator/videos" directory +(which is ignored from version control). If you would like to customize this +location, use the `SIM_VIDEOS_DIRPATH` environment variable. + +You can pass environment variable(s) at runtime, or create a local ".env" file +and set your desired value(s) there: + +```bash +# this is the ".env" file... + +# customizing the directory where simulation videos are stored: +SIM_VIDEOS_DIRPATH="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" +``` + +## Notebook Setup + +If you are running the Demo notebooks in the "smart_control/notebooks" +directory, you must modify the values of `data_path`, `metrics_path`, +`output_data_path` and `root_dir` in those notebooks. Specifically, the +`data_path` should point to the directory where the "sim_config.gin" file is +located (i.e. "smart_control/configs/sim_config.gin"). + +> NOTE: in the future we plan on refactoring notebook code to leverage the local +> module code and simplify this notebook setup experience. See +> [issue #83](https://github.com/google/sbsim/issues/83) (contributions +> welcome)! + +You can run the notebooks using Jupyter or VS Code. Either approach requires you +to first install Jupyter. We have defined a separate installation group for +notebook-related dependencies: + +```sh +poetry install --with notebooks +``` + +Create a kernel: + +```sh +poetry run python -m ipykernel install --user --name=sbsim-kernel +``` + +Finally you can run the notebook using Jupyter or VS Code: + +A. Run the notebooks using Jupyter (then visit the resulting +[localhost:8000](localhost:8000) URL in the browser, and choose the +"sbsim-kernel" from the kernel drop-down menu): + +```sh +poetry run jupyter notebook +``` + +B. Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from the +kernel drop-down menu). diff --git a/mkdocs.yml b/mkdocs.yml index c02886e8..64085330 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,7 +72,11 @@ theme: nav: - 'Home': index.md - 'Local Development': - - 'Setup': setup.md + - 'Setup': + - 'Overview': setup.md + - 'Linux': setup/linux.md + - 'Mac': setup/mac.md + - 'Docker': setup/docker.md - 'Contributing': contributing.md - 'Documentation Site': docs-site.md - 'API Reference': diff --git a/smart_control/proto/smart_control_building_pb2.py b/smart_control/proto/smart_control_building_pb2.py index 10a1b84f..cb47b30d 100644 --- a/smart_control/proto/smart_control_building_pb2.py +++ b/smart_control/proto/smart_control_building_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_building.proto - +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,1101 +14,47 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor.FileDescriptor( - name='smart_control_building.proto', - package='smart_buildings.smart_control.proto', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x1csmart_control_building.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x01\n\x08ZoneInfo\x12\x0f\n\x07zone_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62uilding_id\x18\x02 \x01(\t\x12\x18\n\x10zone_description\x18\x03 \x01(\t\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x02\x12\x0f\n\x07\x64\x65vices\x18\x05 \x03(\t\x12I\n\tzone_type\x18\x06 \x01(\x0e\x32\x36.smart_buildings.smart_control.proto.ZoneInfo.ZoneType\x12\r\n\x05\x66loor\x18\x07 \x01(\x05\"9\n\x08ZoneType\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04ROOM\x10\x01\x12\t\n\x05\x46LOOR\x10\x02\x12\t\n\x05OTHER\x10\n\"\xa5\x07\n\nDeviceInfo\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07zone_id\x18\x04 \x01(\t\x12O\n\x0b\x64\x65vice_type\x18\x05 \x01(\x0e\x32:.smart_buildings.smart_control.proto.DeviceInfo.DeviceType\x12`\n\x11observable_fields\x18\x06 \x03(\x0b\x32\x45.smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry\x12X\n\raction_fields\x18\x07 \x03(\x0b\x32\x41.smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry\x1ar\n\x15ObservableFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\x1an\n\x11\x41\x63tionFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\"\xe7\x01\n\nDeviceType\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03\x46\x41N\x10\x01\x12\x07\n\x03PMP\x10\x02\x12\x07\n\x03\x46\x43U\x10\x03\x12\x07\n\x03VAV\x10\x04\x12\x06\n\x02\x44H\x10\x05\x12\x07\n\x03\x41HU\x10\x06\x12\x07\n\x03\x42LR\x10\x07\x12\x08\n\x04\x43\x44WS\x10\x08\x12\x06\n\x02\x43H\x10\t\x12\x08\n\x04\x43HWS\x10\n\x12\x06\n\x02\x43T\x10\x0b\x12\x06\n\x02\x44\x43\x10\x0c\x12\x07\n\x03\x44\x46R\x10\r\x12\x07\n\x03\x44MP\x10\x0e\x12\x07\n\x03HWS\x10\x0f\x12\x06\n\x02HX\x10\x10\x12\x07\n\x03MAU\x10\x11\x12\x07\n\x03SDC\x10\x12\x12\x06\n\x02UH\x10\x13\x12\x07\n\x03PWR\x10\x14\x12\x07\n\x03GAS\x10\x15\x12\x06\n\x02\x41\x43\x10\x16\x12\t\n\x05OTHER\x10\x17\"w\n\tValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_CONTINUOUS\x10\x01\x12\x11\n\rVALUE_INTEGER\x10\x02\x12\x15\n\x11VALUE_CATEGORICAL\x10\x03\x12\x10\n\x0cVALUE_BINARY\x10\x04\"G\n\x18SingleObservationRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x18\n\x10measurement_name\x18\x02 \x01(\t\"\xdf\x02\n\x19SingleObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x61\n\x1asingle_observation_request\x18\x02 \x01(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\x12\x19\n\x11observation_valid\x18\x03 \x01(\x08\x12\x1a\n\x10\x63ontinuous_value\x18\x04 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x05 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x06 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x07 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x08 \x01(\tH\x00\x42\x13\n\x11observation_value\"\xa7\x01\n\x12ObservationRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x62\n\x1bsingle_observation_requests\x18\x02 \x03(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\"\xf4\x01\n\x13ObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x07request\x18\x02 \x01(\x0b\x32\x37.smart_buildings.smart_control.proto.ObservationRequest\x12\x64\n\x1csingle_observation_responses\x18\x03 \x03(\x0b\x32>.smart_buildings.smart_control.proto.SingleObservationResponse\"\xd3\x01\n\x13SingleActionRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x15\n\rsetpoint_name\x18\x02 \x01(\t\x12\x1a\n\x10\x63ontinuous_value\x18\x03 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x04 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x06 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x07 \x01(\tH\x00\x42\x10\n\x0esetpoint_value\"\xdd\x03\n\x14SingleActionResponse\x12I\n\x07request\x18\x01 \x01(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\x12\x63\n\rresponse_type\x18\x02 \x01(\x0e\x32L.smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType\x12\x17\n\x0f\x61\x64\x64itional_info\x18\x03 \x01(\t\"\xfb\x01\n\x12\x41\x63tionResponseType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\r\n\tTIMED_OUT\x10\x03\x12\x1c\n\x18REJECTED_INVALID_SETTING\x10\x04\x12%\n!REJECTED_NOT_ENABLED_OR_AVAILABLE\x10\x05\x12\x15\n\x11REJECTED_OVERRIDE\x10\x06\x12\x1b\n\x17REJECTED_INVALID_DEVICE\x10\x07\x12\x1b\n\x17REJECTED_DEVICE_OFFLINE\x10\x08\x12\x0b\n\x07UNKNOWN\x10\t\x12\t\n\x05OTHER\x10\n\"\x98\x01\n\rActionRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12X\n\x16single_action_requests\x18\x02 \x03(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\"\xe0\x01\n\x0e\x41\x63tionResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x07request\x18\x02 \x01(\x0b\x32\x32.smart_buildings.smart_control.proto.ActionRequest\x12Z\n\x17single_action_responses\x18\x03 \x03(\x0b\x32\x39.smart_buildings.smart_control.proto.SingleActionResponseb\x06proto3' - , - dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) - - - -_ZONEINFO_ZONETYPE = _descriptor.EnumDescriptor( - name='ZoneType', - full_name='smart_buildings.smart_control.proto.ZoneInfo.ZoneType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='ROOM', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='FLOOR', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='OTHER', index=3, number=10, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=300, - serialized_end=357, -) -_sym_db.RegisterEnumDescriptor(_ZONEINFO_ZONETYPE) - -_DEVICEINFO_DEVICETYPE = _descriptor.EnumDescriptor( - name='DeviceType', - full_name='smart_buildings.smart_control.proto.DeviceInfo.DeviceType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='FAN', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PMP', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='FCU', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='VAV', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DH', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='AHU', index=6, number=6, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='BLR', index=7, number=7, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CDWS', index=8, number=8, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CH', index=9, number=9, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CHWS', index=10, number=10, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CT', index=11, number=11, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DC', index=12, number=12, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DFR', index=13, number=13, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DMP', index=14, number=14, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='HWS', index=15, number=15, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='HX', index=16, number=16, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='MAU', index=17, number=17, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SDC', index=18, number=18, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='UH', index=19, number=19, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PWR', index=20, number=20, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GAS', index=21, number=21, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='AC', index=22, number=22, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='OTHER', index=23, number=23, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=941, - serialized_end=1172, -) -_sym_db.RegisterEnumDescriptor(_DEVICEINFO_DEVICETYPE) - -_DEVICEINFO_VALUETYPE = _descriptor.EnumDescriptor( - name='ValueType', - full_name='smart_buildings.smart_control.proto.DeviceInfo.ValueType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='VALUE_TYPE_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='VALUE_CONTINUOUS', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='VALUE_INTEGER', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='VALUE_CATEGORICAL', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='VALUE_BINARY', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=1174, - serialized_end=1293, -) -_sym_db.RegisterEnumDescriptor(_DEVICEINFO_VALUETYPE) - -_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE = _descriptor.EnumDescriptor( - name='ActionResponseType', - full_name='smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='ACCEPTED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PENDING', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='TIMED_OUT', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='REJECTED_INVALID_SETTING', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='REJECTED_NOT_ENABLED_OR_AVAILABLE', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='REJECTED_OVERRIDE', index=6, number=6, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='REJECTED_INVALID_DEVICE', index=7, number=7, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='REJECTED_DEVICE_OFFLINE', index=8, number=8, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='UNKNOWN', index=9, number=9, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='OTHER', index=10, number=10, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=2580, - serialized_end=2831, -) -_sym_db.RegisterEnumDescriptor(_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE) - - -_ZONEINFO = _descriptor.Descriptor( - name='ZoneInfo', - full_name='smart_buildings.smart_control.proto.ZoneInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='zone_id', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='building_id', full_name='smart_buildings.smart_control.proto.ZoneInfo.building_id', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='zone_description', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_description', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='area', full_name='smart_buildings.smart_control.proto.ZoneInfo.area', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='devices', full_name='smart_buildings.smart_control.proto.ZoneInfo.devices', index=4, - number=5, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='zone_type', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_type', index=5, - number=6, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='floor', full_name='smart_buildings.smart_control.proto.ZoneInfo.floor', index=6, - number=7, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _ZONEINFO_ZONETYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=103, - serialized_end=357, -) - - -_DEVICEINFO_OBSERVABLEFIELDSENTRY = _descriptor.Descriptor( - name='ObservableFieldsEntry', - full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry.value', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=712, - serialized_end=826, -) - -_DEVICEINFO_ACTIONFIELDSENTRY = _descriptor.Descriptor( - name='ActionFieldsEntry', - full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry.value', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=828, - serialized_end=938, -) - -_DEVICEINFO = _descriptor.Descriptor( - name='DeviceInfo', - full_name='smart_buildings.smart_control.proto.DeviceInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_id', full_name='smart_buildings.smart_control.proto.DeviceInfo.device_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='namespace', full_name='smart_buildings.smart_control.proto.DeviceInfo.namespace', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='code', full_name='smart_buildings.smart_control.proto.DeviceInfo.code', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='zone_id', full_name='smart_buildings.smart_control.proto.DeviceInfo.zone_id', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_type', full_name='smart_buildings.smart_control.proto.DeviceInfo.device_type', index=4, - number=5, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='observable_fields', full_name='smart_buildings.smart_control.proto.DeviceInfo.observable_fields', index=5, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='action_fields', full_name='smart_buildings.smart_control.proto.DeviceInfo.action_fields', index=6, - number=7, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_DEVICEINFO_OBSERVABLEFIELDSENTRY, _DEVICEINFO_ACTIONFIELDSENTRY, ], - enum_types=[ - _DEVICEINFO_DEVICETYPE, - _DEVICEINFO_VALUETYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=360, - serialized_end=1293, -) - - -_SINGLEOBSERVATIONREQUEST = _descriptor.Descriptor( - name='SingleObservationRequest', - full_name='smart_buildings.smart_control.proto.SingleObservationRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_id', full_name='smart_buildings.smart_control.proto.SingleObservationRequest.device_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='measurement_name', full_name='smart_buildings.smart_control.proto.SingleObservationRequest.measurement_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1295, - serialized_end=1366, -) - - -_SINGLEOBSERVATIONRESPONSE = _descriptor.Descriptor( - name='SingleObservationResponse', - full_name='smart_buildings.smart_control.proto.SingleObservationResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='single_observation_request', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.single_observation_request', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='observation_valid', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.observation_valid', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='continuous_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.continuous_value', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='integer_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.integer_value', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='categorical_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.categorical_value', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='binary_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.binary_value', index=6, - number=7, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='string_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.string_value', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='observation_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.observation_value', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=1369, - serialized_end=1720, -) - - -_OBSERVATIONREQUEST = _descriptor.Descriptor( - name='ObservationRequest', - full_name='smart_buildings.smart_control.proto.ObservationRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='smart_buildings.smart_control.proto.ObservationRequest.timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='single_observation_requests', full_name='smart_buildings.smart_control.proto.ObservationRequest.single_observation_requests', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1723, - serialized_end=1890, -) - - -_OBSERVATIONRESPONSE = _descriptor.Descriptor( - name='ObservationResponse', - full_name='smart_buildings.smart_control.proto.ObservationResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='smart_buildings.smart_control.proto.ObservationResponse.timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='request', full_name='smart_buildings.smart_control.proto.ObservationResponse.request', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='single_observation_responses', full_name='smart_buildings.smart_control.proto.ObservationResponse.single_observation_responses', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1893, - serialized_end=2137, -) - - -_SINGLEACTIONREQUEST = _descriptor.Descriptor( - name='SingleActionRequest', - full_name='smart_buildings.smart_control.proto.SingleActionRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_id', full_name='smart_buildings.smart_control.proto.SingleActionRequest.device_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='setpoint_name', full_name='smart_buildings.smart_control.proto.SingleActionRequest.setpoint_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='continuous_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.continuous_value', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='integer_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.integer_value', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='categorical_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.categorical_value', index=4, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='binary_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.binary_value', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='string_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.string_value', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='setpoint_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.setpoint_value', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=2140, - serialized_end=2351, -) - - -_SINGLEACTIONRESPONSE = _descriptor.Descriptor( - name='SingleActionResponse', - full_name='smart_buildings.smart_control.proto.SingleActionResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='request', full_name='smart_buildings.smart_control.proto.SingleActionResponse.request', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='response_type', full_name='smart_buildings.smart_control.proto.SingleActionResponse.response_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='additional_info', full_name='smart_buildings.smart_control.proto.SingleActionResponse.additional_info', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2354, - serialized_end=2831, -) - - -_ACTIONREQUEST = _descriptor.Descriptor( - name='ActionRequest', - full_name='smart_buildings.smart_control.proto.ActionRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='smart_buildings.smart_control.proto.ActionRequest.timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='single_action_requests', full_name='smart_buildings.smart_control.proto.ActionRequest.single_action_requests', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2834, - serialized_end=2986, -) - - -_ACTIONRESPONSE = _descriptor.Descriptor( - name='ActionResponse', - full_name='smart_buildings.smart_control.proto.ActionResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='smart_buildings.smart_control.proto.ActionResponse.timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='request', full_name='smart_buildings.smart_control.proto.ActionResponse.request', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='single_action_responses', full_name='smart_buildings.smart_control.proto.ActionResponse.single_action_responses', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2989, - serialized_end=3213, -) - -_ZONEINFO.fields_by_name['zone_type'].enum_type = _ZONEINFO_ZONETYPE -_ZONEINFO_ZONETYPE.containing_type = _ZONEINFO -_DEVICEINFO_OBSERVABLEFIELDSENTRY.fields_by_name['value'].enum_type = _DEVICEINFO_VALUETYPE -_DEVICEINFO_OBSERVABLEFIELDSENTRY.containing_type = _DEVICEINFO -_DEVICEINFO_ACTIONFIELDSENTRY.fields_by_name['value'].enum_type = _DEVICEINFO_VALUETYPE -_DEVICEINFO_ACTIONFIELDSENTRY.containing_type = _DEVICEINFO -_DEVICEINFO.fields_by_name['device_type'].enum_type = _DEVICEINFO_DEVICETYPE -_DEVICEINFO.fields_by_name['observable_fields'].message_type = _DEVICEINFO_OBSERVABLEFIELDSENTRY -_DEVICEINFO.fields_by_name['action_fields'].message_type = _DEVICEINFO_ACTIONFIELDSENTRY -_DEVICEINFO_DEVICETYPE.containing_type = _DEVICEINFO -_DEVICEINFO_VALUETYPE.containing_type = _DEVICEINFO -_SINGLEOBSERVATIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_SINGLEOBSERVATIONRESPONSE.fields_by_name['single_observation_request'].message_type = _SINGLEOBSERVATIONREQUEST -_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( - _SINGLEOBSERVATIONRESPONSE.fields_by_name['continuous_value']) -_SINGLEOBSERVATIONRESPONSE.fields_by_name['continuous_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] -_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( - _SINGLEOBSERVATIONRESPONSE.fields_by_name['integer_value']) -_SINGLEOBSERVATIONRESPONSE.fields_by_name['integer_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] -_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( - _SINGLEOBSERVATIONRESPONSE.fields_by_name['categorical_value']) -_SINGLEOBSERVATIONRESPONSE.fields_by_name['categorical_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] -_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( - _SINGLEOBSERVATIONRESPONSE.fields_by_name['binary_value']) -_SINGLEOBSERVATIONRESPONSE.fields_by_name['binary_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] -_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( - _SINGLEOBSERVATIONRESPONSE.fields_by_name['string_value']) -_SINGLEOBSERVATIONRESPONSE.fields_by_name['string_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] -_OBSERVATIONREQUEST.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_OBSERVATIONREQUEST.fields_by_name['single_observation_requests'].message_type = _SINGLEOBSERVATIONREQUEST -_OBSERVATIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_OBSERVATIONRESPONSE.fields_by_name['request'].message_type = _OBSERVATIONREQUEST -_OBSERVATIONRESPONSE.fields_by_name['single_observation_responses'].message_type = _SINGLEOBSERVATIONRESPONSE -_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( - _SINGLEACTIONREQUEST.fields_by_name['continuous_value']) -_SINGLEACTIONREQUEST.fields_by_name['continuous_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] -_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( - _SINGLEACTIONREQUEST.fields_by_name['integer_value']) -_SINGLEACTIONREQUEST.fields_by_name['integer_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] -_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( - _SINGLEACTIONREQUEST.fields_by_name['categorical_value']) -_SINGLEACTIONREQUEST.fields_by_name['categorical_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] -_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( - _SINGLEACTIONREQUEST.fields_by_name['binary_value']) -_SINGLEACTIONREQUEST.fields_by_name['binary_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] -_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( - _SINGLEACTIONREQUEST.fields_by_name['string_value']) -_SINGLEACTIONREQUEST.fields_by_name['string_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] -_SINGLEACTIONRESPONSE.fields_by_name['request'].message_type = _SINGLEACTIONREQUEST -_SINGLEACTIONRESPONSE.fields_by_name['response_type'].enum_type = _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE -_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE.containing_type = _SINGLEACTIONRESPONSE -_ACTIONREQUEST.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_ACTIONREQUEST.fields_by_name['single_action_requests'].message_type = _SINGLEACTIONREQUEST -_ACTIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_ACTIONRESPONSE.fields_by_name['request'].message_type = _ACTIONREQUEST -_ACTIONRESPONSE.fields_by_name['single_action_responses'].message_type = _SINGLEACTIONRESPONSE -DESCRIPTOR.message_types_by_name['ZoneInfo'] = _ZONEINFO -DESCRIPTOR.message_types_by_name['DeviceInfo'] = _DEVICEINFO -DESCRIPTOR.message_types_by_name['SingleObservationRequest'] = _SINGLEOBSERVATIONREQUEST -DESCRIPTOR.message_types_by_name['SingleObservationResponse'] = _SINGLEOBSERVATIONRESPONSE -DESCRIPTOR.message_types_by_name['ObservationRequest'] = _OBSERVATIONREQUEST -DESCRIPTOR.message_types_by_name['ObservationResponse'] = _OBSERVATIONRESPONSE -DESCRIPTOR.message_types_by_name['SingleActionRequest'] = _SINGLEACTIONREQUEST -DESCRIPTOR.message_types_by_name['SingleActionResponse'] = _SINGLEACTIONRESPONSE -DESCRIPTOR.message_types_by_name['ActionRequest'] = _ACTIONREQUEST -DESCRIPTOR.message_types_by_name['ActionResponse'] = _ACTIONRESPONSE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -ZoneInfo = _reflection.GeneratedProtocolMessageType('ZoneInfo', (_message.Message,), { - 'DESCRIPTOR' : _ZONEINFO, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ZoneInfo) - }) -_sym_db.RegisterMessage(ZoneInfo) - -DeviceInfo = _reflection.GeneratedProtocolMessageType('DeviceInfo', (_message.Message,), { - - 'ObservableFieldsEntry' : _reflection.GeneratedProtocolMessageType('ObservableFieldsEntry', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEINFO_OBSERVABLEFIELDSENTRY, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry) - }) - , - - 'ActionFieldsEntry' : _reflection.GeneratedProtocolMessageType('ActionFieldsEntry', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEINFO_ACTIONFIELDSENTRY, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry) - }) - , - 'DESCRIPTOR' : _DEVICEINFO, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo) - }) -_sym_db.RegisterMessage(DeviceInfo) -_sym_db.RegisterMessage(DeviceInfo.ObservableFieldsEntry) -_sym_db.RegisterMessage(DeviceInfo.ActionFieldsEntry) - -SingleObservationRequest = _reflection.GeneratedProtocolMessageType('SingleObservationRequest', (_message.Message,), { - 'DESCRIPTOR' : _SINGLEOBSERVATIONREQUEST, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleObservationRequest) - }) -_sym_db.RegisterMessage(SingleObservationRequest) - -SingleObservationResponse = _reflection.GeneratedProtocolMessageType('SingleObservationResponse', (_message.Message,), { - 'DESCRIPTOR' : _SINGLEOBSERVATIONRESPONSE, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleObservationResponse) - }) -_sym_db.RegisterMessage(SingleObservationResponse) - -ObservationRequest = _reflection.GeneratedProtocolMessageType('ObservationRequest', (_message.Message,), { - 'DESCRIPTOR' : _OBSERVATIONREQUEST, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ObservationRequest) - }) -_sym_db.RegisterMessage(ObservationRequest) - -ObservationResponse = _reflection.GeneratedProtocolMessageType('ObservationResponse', (_message.Message,), { - 'DESCRIPTOR' : _OBSERVATIONRESPONSE, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ObservationResponse) - }) -_sym_db.RegisterMessage(ObservationResponse) - -SingleActionRequest = _reflection.GeneratedProtocolMessageType('SingleActionRequest', (_message.Message,), { - 'DESCRIPTOR' : _SINGLEACTIONREQUEST, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleActionRequest) - }) -_sym_db.RegisterMessage(SingleActionRequest) - -SingleActionResponse = _reflection.GeneratedProtocolMessageType('SingleActionResponse', (_message.Message,), { - 'DESCRIPTOR' : _SINGLEACTIONRESPONSE, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleActionResponse) - }) -_sym_db.RegisterMessage(SingleActionResponse) - -ActionRequest = _reflection.GeneratedProtocolMessageType('ActionRequest', (_message.Message,), { - 'DESCRIPTOR' : _ACTIONREQUEST, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ActionRequest) - }) -_sym_db.RegisterMessage(ActionRequest) - -ActionResponse = _reflection.GeneratedProtocolMessageType('ActionResponse', (_message.Message,), { - 'DESCRIPTOR' : _ACTIONRESPONSE, - '__module__' : 'smart_control_building_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ActionResponse) - }) -_sym_db.RegisterMessage(ActionResponse) - - -_DEVICEINFO_OBSERVABLEFIELDSENTRY._options = None -_DEVICEINFO_ACTIONFIELDSENTRY._options = None +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csmart_control_building.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x01\n\x08ZoneInfo\x12\x0f\n\x07zone_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62uilding_id\x18\x02 \x01(\t\x12\x18\n\x10zone_description\x18\x03 \x01(\t\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x02\x12\x0f\n\x07\x64\x65vices\x18\x05 \x03(\t\x12I\n\tzone_type\x18\x06 \x01(\x0e\x32\x36.smart_buildings.smart_control.proto.ZoneInfo.ZoneType\x12\r\n\x05\x66loor\x18\x07 \x01(\x05\"9\n\x08ZoneType\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04ROOM\x10\x01\x12\t\n\x05\x46LOOR\x10\x02\x12\t\n\x05OTHER\x10\n\"\xa5\x07\n\nDeviceInfo\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07zone_id\x18\x04 \x01(\t\x12O\n\x0b\x64\x65vice_type\x18\x05 \x01(\x0e\x32:.smart_buildings.smart_control.proto.DeviceInfo.DeviceType\x12`\n\x11observable_fields\x18\x06 \x03(\x0b\x32\x45.smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry\x12X\n\raction_fields\x18\x07 \x03(\x0b\x32\x41.smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry\x1ar\n\x15ObservableFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\x1an\n\x11\x41\x63tionFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\"\xe7\x01\n\nDeviceType\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03\x46\x41N\x10\x01\x12\x07\n\x03PMP\x10\x02\x12\x07\n\x03\x46\x43U\x10\x03\x12\x07\n\x03VAV\x10\x04\x12\x06\n\x02\x44H\x10\x05\x12\x07\n\x03\x41HU\x10\x06\x12\x07\n\x03\x42LR\x10\x07\x12\x08\n\x04\x43\x44WS\x10\x08\x12\x06\n\x02\x43H\x10\t\x12\x08\n\x04\x43HWS\x10\n\x12\x06\n\x02\x43T\x10\x0b\x12\x06\n\x02\x44\x43\x10\x0c\x12\x07\n\x03\x44\x46R\x10\r\x12\x07\n\x03\x44MP\x10\x0e\x12\x07\n\x03HWS\x10\x0f\x12\x06\n\x02HX\x10\x10\x12\x07\n\x03MAU\x10\x11\x12\x07\n\x03SDC\x10\x12\x12\x06\n\x02UH\x10\x13\x12\x07\n\x03PWR\x10\x14\x12\x07\n\x03GAS\x10\x15\x12\x06\n\x02\x41\x43\x10\x16\x12\t\n\x05OTHER\x10\x17\"w\n\tValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_CONTINUOUS\x10\x01\x12\x11\n\rVALUE_INTEGER\x10\x02\x12\x15\n\x11VALUE_CATEGORICAL\x10\x03\x12\x10\n\x0cVALUE_BINARY\x10\x04\"G\n\x18SingleObservationRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x18\n\x10measurement_name\x18\x02 \x01(\t\"\xdf\x02\n\x19SingleObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x61\n\x1asingle_observation_request\x18\x02 \x01(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\x12\x19\n\x11observation_valid\x18\x03 \x01(\x08\x12\x1a\n\x10\x63ontinuous_value\x18\x04 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x05 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x06 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x07 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x08 \x01(\tH\x00\x42\x13\n\x11observation_value\"\xa7\x01\n\x12ObservationRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x62\n\x1bsingle_observation_requests\x18\x02 \x03(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\"\xf4\x01\n\x13ObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x07request\x18\x02 \x01(\x0b\x32\x37.smart_buildings.smart_control.proto.ObservationRequest\x12\x64\n\x1csingle_observation_responses\x18\x03 \x03(\x0b\x32>.smart_buildings.smart_control.proto.SingleObservationResponse\"\xd3\x01\n\x13SingleActionRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x15\n\rsetpoint_name\x18\x02 \x01(\t\x12\x1a\n\x10\x63ontinuous_value\x18\x03 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x04 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x06 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x07 \x01(\tH\x00\x42\x10\n\x0esetpoint_value\"\xdd\x03\n\x14SingleActionResponse\x12I\n\x07request\x18\x01 \x01(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\x12\x63\n\rresponse_type\x18\x02 \x01(\x0e\x32L.smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType\x12\x17\n\x0f\x61\x64\x64itional_info\x18\x03 \x01(\t\"\xfb\x01\n\x12\x41\x63tionResponseType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\r\n\tTIMED_OUT\x10\x03\x12\x1c\n\x18REJECTED_INVALID_SETTING\x10\x04\x12%\n!REJECTED_NOT_ENABLED_OR_AVAILABLE\x10\x05\x12\x15\n\x11REJECTED_OVERRIDE\x10\x06\x12\x1b\n\x17REJECTED_INVALID_DEVICE\x10\x07\x12\x1b\n\x17REJECTED_DEVICE_OFFLINE\x10\x08\x12\x0b\n\x07UNKNOWN\x10\t\x12\t\n\x05OTHER\x10\n\"\x98\x01\n\rActionRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12X\n\x16single_action_requests\x18\x02 \x03(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\"\xe0\x01\n\x0e\x41\x63tionResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x07request\x18\x02 \x01(\x0b\x32\x32.smart_buildings.smart_control.proto.ActionRequest\x12Z\n\x17single_action_responses\x18\x03 \x03(\x0b\x32\x39.smart_buildings.smart_control.proto.SingleActionResponseb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_building_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _DEVICEINFO_OBSERVABLEFIELDSENTRY._options = None + _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_options = b'8\001' + _DEVICEINFO_ACTIONFIELDSENTRY._options = None + _DEVICEINFO_ACTIONFIELDSENTRY._serialized_options = b'8\001' + _ZONEINFO._serialized_start=103 + _ZONEINFO._serialized_end=357 + _ZONEINFO_ZONETYPE._serialized_start=300 + _ZONEINFO_ZONETYPE._serialized_end=357 + _DEVICEINFO._serialized_start=360 + _DEVICEINFO._serialized_end=1293 + _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_start=712 + _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_end=826 + _DEVICEINFO_ACTIONFIELDSENTRY._serialized_start=828 + _DEVICEINFO_ACTIONFIELDSENTRY._serialized_end=938 + _DEVICEINFO_DEVICETYPE._serialized_start=941 + _DEVICEINFO_DEVICETYPE._serialized_end=1172 + _DEVICEINFO_VALUETYPE._serialized_start=1174 + _DEVICEINFO_VALUETYPE._serialized_end=1293 + _SINGLEOBSERVATIONREQUEST._serialized_start=1295 + _SINGLEOBSERVATIONREQUEST._serialized_end=1366 + _SINGLEOBSERVATIONRESPONSE._serialized_start=1369 + _SINGLEOBSERVATIONRESPONSE._serialized_end=1720 + _OBSERVATIONREQUEST._serialized_start=1723 + _OBSERVATIONREQUEST._serialized_end=1890 + _OBSERVATIONRESPONSE._serialized_start=1893 + _OBSERVATIONRESPONSE._serialized_end=2137 + _SINGLEACTIONREQUEST._serialized_start=2140 + _SINGLEACTIONREQUEST._serialized_end=2351 + _SINGLEACTIONRESPONSE._serialized_start=2354 + _SINGLEACTIONRESPONSE._serialized_end=2831 + _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE._serialized_start=2580 + _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE._serialized_end=2831 + _ACTIONREQUEST._serialized_start=2834 + _ACTIONREQUEST._serialized_end=2986 + _ACTIONRESPONSE._serialized_start=2989 + _ACTIONRESPONSE._serialized_end=3213 # @@protoc_insertion_point(module_scope) diff --git a/smart_control/proto/smart_control_normalization_pb2.py b/smart_control/proto/smart_control_normalization_pb2.py index 36b64c0d..6f8034b8 100644 --- a/smart_control/proto/smart_control_normalization_pb2.py +++ b/smart_control/proto/smart_control_normalization_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_normalization.proto - +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,117 +14,13 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor.FileDescriptor( - name='smart_control_normalization.proto', - package='smart_buildings.smart_control.proto', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n!smart_control_normalization.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x16\x43ontinuousVariableInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0csample_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nsample_end\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bsample_size\x18\x04 \x01(\x05\x12\x17\n\x0fsample_variance\x18\x05 \x01(\x02\x12\x13\n\x0bsample_mean\x18\x06 \x01(\x02\x12\x15\n\rsample_median\x18\x07 \x01(\x02\x12\x16\n\x0esample_maximum\x18\x08 \x01(\x02\x12\x16\n\x0esample_minimum\x18\t \x01(\x02\x62\x06proto3' - , - dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) - - - - -_CONTINUOUSVARIABLEINFO = _descriptor.Descriptor( - name='ContinuousVariableInfo', - full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_start', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_start', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_end', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_end', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_size', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_size', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_variance', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_variance', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_mean', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_mean', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_median', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_median', index=6, - number=7, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_maximum', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_maximum', index=7, - number=8, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sample_minimum', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_minimum', index=8, - number=9, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=108, - serialized_end=380, -) - -_CONTINUOUSVARIABLEINFO.fields_by_name['sample_start'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_CONTINUOUSVARIABLEINFO.fields_by_name['sample_end'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -DESCRIPTOR.message_types_by_name['ContinuousVariableInfo'] = _CONTINUOUSVARIABLEINFO -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -ContinuousVariableInfo = _reflection.GeneratedProtocolMessageType('ContinuousVariableInfo', (_message.Message,), { - 'DESCRIPTOR' : _CONTINUOUSVARIABLEINFO, - '__module__' : 'smart_control_normalization_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ContinuousVariableInfo) - }) -_sym_db.RegisterMessage(ContinuousVariableInfo) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!smart_control_normalization.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x16\x43ontinuousVariableInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0csample_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nsample_end\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bsample_size\x18\x04 \x01(\x05\x12\x17\n\x0fsample_variance\x18\x05 \x01(\x02\x12\x13\n\x0bsample_mean\x18\x06 \x01(\x02\x12\x15\n\rsample_median\x18\x07 \x01(\x02\x12\x16\n\x0esample_maximum\x18\x08 \x01(\x02\x12\x16\n\x0esample_minimum\x18\t \x01(\x02\x62\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_normalization_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _CONTINUOUSVARIABLEINFO._serialized_start=108 + _CONTINUOUSVARIABLEINFO._serialized_end=380 # @@protoc_insertion_point(module_scope) diff --git a/smart_control/proto/smart_control_reward_pb2.py b/smart_control/proto/smart_control_reward_pb2.py index 9e67d36e..9012d665 100644 --- a/smart_control/proto/smart_control_reward_pb2.py +++ b/smart_control/proto/smart_control_reward_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_reward.proto - +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,590 +14,33 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor.FileDescriptor( - name='smart_control_reward.proto', - package='smart_buildings.smart_control.proto', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x1asmart_control_reward.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe9\t\n\nRewardInfo\x12\x33\n\x0fstart_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12\x13\n\x0bscenario_id\x18\x04 \x01(\t\x12_\n\x11zone_reward_infos\x18\x05 \x03(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry\x12l\n\x18\x61ir_handler_reward_infos\x18\x06 \x03(\x0b\x32J.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry\x12\x63\n\x13\x62oiler_reward_infos\x18\x07 \x03(\x0b\x32\x46.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry\x1a\xcc\x01\n\x0eZoneRewardInfo\x12$\n\x1cheating_setpoint_temperature\x18\x01 \x01(\x02\x12$\n\x1c\x63ooling_setpoint_temperature\x18\x02 \x01(\x02\x12\x1c\n\x14zone_air_temperature\x18\x03 \x01(\x02\x12\x1e\n\x16\x61ir_flow_rate_setpoint\x18\x04 \x01(\x02\x12\x15\n\rair_flow_rate\x18\x05 \x01(\x02\x12\x19\n\x11\x61verage_occupancy\x18\x06 \x01(\x02\x1an\n\x14\x41irHandlerRewardInfo\x12%\n\x1d\x62lower_electrical_energy_rate\x18\x01 \x01(\x02\x12/\n\'air_conditioning_electrical_energy_rate\x18\x02 \x01(\x02\x1a`\n\x10\x42oilerRewardInfo\x12\'\n\x1fnatural_gas_heating_energy_rate\x18\x01 \x01(\x02\x12#\n\x1bpump_electrical_energy_rate\x18\x02 \x01(\x02\x1av\n\x14ZoneRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo:\x02\x38\x01\x1a\x82\x01\n\x1a\x41irHandlerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12S\n\x05value\x18\x02 \x01(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo:\x02\x38\x01\x1az\n\x16\x42oilerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12O\n\x05value\x18\x02 \x01(\x0b\x32@.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo:\x02\x38\x01\"\xe4\x04\n\x0eRewardResponse\x12\x1a\n\x12\x61gent_reward_value\x18\x01 \x01(\x02\x12\x1b\n\x13productivity_reward\x18\x02 \x01(\x02\x12\x1f\n\x17\x65lectricity_energy_cost\x18\x03 \x01(\x02\x12\x1f\n\x17natural_gas_energy_cost\x18\x04 \x01(\x02\x12\x16\n\x0e\x63\x61rbon_emitted\x18\x05 \x01(\x02\x12\x13\n\x0b\x63\x61rbon_cost\x18\x06 \x01(\x02\x12\x1b\n\x13productivity_weight\x18\x07 \x01(\x02\x12\x1a\n\x12\x65nergy_cost_weight\x18\x08 \x01(\x02\x12\x1e\n\x16\x63\x61rbon_emission_weight\x18\t \x01(\x02\x12\x1b\n\x13person_productivity\x18\n \x01(\x02\x12\x17\n\x0ftotal_occupancy\x18\x0b \x01(\x02\x12\x14\n\x0creward_scale\x18\x0c \x01(\x02\x12\x14\n\x0creward_shift\x18\r \x01(\x02\x12\x1b\n\x13productivity_regret\x18\x0e \x01(\x02\x12&\n\x1enormalized_productivity_regret\x18\x0f \x01(\x02\x12\x1e\n\x16normalized_energy_cost\x18\x10 \x01(\x02\x12\"\n\x1anormalized_carbon_emission\x18\x11 \x01(\x02\x12\x33\n\x0fstart_timestamp\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestampb\x06proto3' - , - dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) - - - - -_REWARDINFO_ZONEREWARDINFO = _descriptor.Descriptor( - name='ZoneRewardInfo', - full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='heating_setpoint_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.heating_setpoint_temperature', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cooling_setpoint_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.cooling_setpoint_temperature', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='zone_air_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.zone_air_temperature', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='air_flow_rate_setpoint', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.air_flow_rate_setpoint', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='air_flow_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.air_flow_rate', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='average_occupancy', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.average_occupancy', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=567, - serialized_end=771, -) - -_REWARDINFO_AIRHANDLERREWARDINFO = _descriptor.Descriptor( - name='AirHandlerRewardInfo', - full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='blower_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo.blower_electrical_energy_rate', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='air_conditioning_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo.air_conditioning_electrical_energy_rate', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=773, - serialized_end=883, -) - -_REWARDINFO_BOILERREWARDINFO = _descriptor.Descriptor( - name='BoilerRewardInfo', - full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='natural_gas_heating_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo.natural_gas_heating_energy_rate', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pump_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo.pump_electrical_energy_rate', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=885, - serialized_end=981, -) - -_REWARDINFO_ZONEREWARDINFOSENTRY = _descriptor.Descriptor( - name='ZoneRewardInfosEntry', - full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=983, - serialized_end=1101, -) - -_REWARDINFO_AIRHANDLERREWARDINFOSENTRY = _descriptor.Descriptor( - name='AirHandlerRewardInfosEntry', - full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1104, - serialized_end=1234, -) - -_REWARDINFO_BOILERREWARDINFOSENTRY = _descriptor.Descriptor( - name='BoilerRewardInfosEntry', - full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1236, - serialized_end=1358, -) - -_REWARDINFO = _descriptor.Descriptor( - name='RewardInfo', - full_name='smart_buildings.smart_control.proto.RewardInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='start_timestamp', full_name='smart_buildings.smart_control.proto.RewardInfo.start_timestamp', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='end_timestamp', full_name='smart_buildings.smart_control.proto.RewardInfo.end_timestamp', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='agent_id', full_name='smart_buildings.smart_control.proto.RewardInfo.agent_id', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='scenario_id', full_name='smart_buildings.smart_control.proto.RewardInfo.scenario_id', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='zone_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.zone_reward_infos', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='air_handler_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.air_handler_reward_infos', index=5, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='boiler_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.boiler_reward_infos', index=6, - number=7, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_REWARDINFO_ZONEREWARDINFO, _REWARDINFO_AIRHANDLERREWARDINFO, _REWARDINFO_BOILERREWARDINFO, _REWARDINFO_ZONEREWARDINFOSENTRY, _REWARDINFO_AIRHANDLERREWARDINFOSENTRY, _REWARDINFO_BOILERREWARDINFOSENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=101, - serialized_end=1358, -) - - -_REWARDRESPONSE = _descriptor.Descriptor( - name='RewardResponse', - full_name='smart_buildings.smart_control.proto.RewardResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='agent_reward_value', full_name='smart_buildings.smart_control.proto.RewardResponse.agent_reward_value', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='productivity_reward', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_reward', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='electricity_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.electricity_energy_cost', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='natural_gas_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.natural_gas_energy_cost', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='carbon_emitted', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_emitted', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='carbon_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_cost', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='productivity_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_weight', index=6, - number=7, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='energy_cost_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.energy_cost_weight', index=7, - number=8, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='carbon_emission_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_emission_weight', index=8, - number=9, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='person_productivity', full_name='smart_buildings.smart_control.proto.RewardResponse.person_productivity', index=9, - number=10, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='total_occupancy', full_name='smart_buildings.smart_control.proto.RewardResponse.total_occupancy', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='reward_scale', full_name='smart_buildings.smart_control.proto.RewardResponse.reward_scale', index=11, - number=12, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='reward_shift', full_name='smart_buildings.smart_control.proto.RewardResponse.reward_shift', index=12, - number=13, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='productivity_regret', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_regret', index=13, - number=14, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='normalized_productivity_regret', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_productivity_regret', index=14, - number=15, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='normalized_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_energy_cost', index=15, - number=16, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='normalized_carbon_emission', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_carbon_emission', index=16, - number=17, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='start_timestamp', full_name='smart_buildings.smart_control.proto.RewardResponse.start_timestamp', index=17, - number=18, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='end_timestamp', full_name='smart_buildings.smart_control.proto.RewardResponse.end_timestamp', index=18, - number=19, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1361, - serialized_end=1973, -) - -_REWARDINFO_ZONEREWARDINFO.containing_type = _REWARDINFO -_REWARDINFO_AIRHANDLERREWARDINFO.containing_type = _REWARDINFO -_REWARDINFO_BOILERREWARDINFO.containing_type = _REWARDINFO -_REWARDINFO_ZONEREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_ZONEREWARDINFO -_REWARDINFO_ZONEREWARDINFOSENTRY.containing_type = _REWARDINFO -_REWARDINFO_AIRHANDLERREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_AIRHANDLERREWARDINFO -_REWARDINFO_AIRHANDLERREWARDINFOSENTRY.containing_type = _REWARDINFO -_REWARDINFO_BOILERREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_BOILERREWARDINFO -_REWARDINFO_BOILERREWARDINFOSENTRY.containing_type = _REWARDINFO -_REWARDINFO.fields_by_name['start_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_REWARDINFO.fields_by_name['end_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_REWARDINFO.fields_by_name['zone_reward_infos'].message_type = _REWARDINFO_ZONEREWARDINFOSENTRY -_REWARDINFO.fields_by_name['air_handler_reward_infos'].message_type = _REWARDINFO_AIRHANDLERREWARDINFOSENTRY -_REWARDINFO.fields_by_name['boiler_reward_infos'].message_type = _REWARDINFO_BOILERREWARDINFOSENTRY -_REWARDRESPONSE.fields_by_name['start_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_REWARDRESPONSE.fields_by_name['end_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -DESCRIPTOR.message_types_by_name['RewardInfo'] = _REWARDINFO -DESCRIPTOR.message_types_by_name['RewardResponse'] = _REWARDRESPONSE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -RewardInfo = _reflection.GeneratedProtocolMessageType('RewardInfo', (_message.Message,), { - - 'ZoneRewardInfo' : _reflection.GeneratedProtocolMessageType('ZoneRewardInfo', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_ZONEREWARDINFO, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo) - }) - , - - 'AirHandlerRewardInfo' : _reflection.GeneratedProtocolMessageType('AirHandlerRewardInfo', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_AIRHANDLERREWARDINFO, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo) - }) - , - - 'BoilerRewardInfo' : _reflection.GeneratedProtocolMessageType('BoilerRewardInfo', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_BOILERREWARDINFO, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo) - }) - , - - 'ZoneRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('ZoneRewardInfosEntry', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_ZONEREWARDINFOSENTRY, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry) - }) - , - - 'AirHandlerRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('AirHandlerRewardInfosEntry', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_AIRHANDLERREWARDINFOSENTRY, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry) - }) - , - - 'BoilerRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('BoilerRewardInfosEntry', (_message.Message,), { - 'DESCRIPTOR' : _REWARDINFO_BOILERREWARDINFOSENTRY, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry) - }) - , - 'DESCRIPTOR' : _REWARDINFO, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo) - }) -_sym_db.RegisterMessage(RewardInfo) -_sym_db.RegisterMessage(RewardInfo.ZoneRewardInfo) -_sym_db.RegisterMessage(RewardInfo.AirHandlerRewardInfo) -_sym_db.RegisterMessage(RewardInfo.BoilerRewardInfo) -_sym_db.RegisterMessage(RewardInfo.ZoneRewardInfosEntry) -_sym_db.RegisterMessage(RewardInfo.AirHandlerRewardInfosEntry) -_sym_db.RegisterMessage(RewardInfo.BoilerRewardInfosEntry) - -RewardResponse = _reflection.GeneratedProtocolMessageType('RewardResponse', (_message.Message,), { - 'DESCRIPTOR' : _REWARDRESPONSE, - '__module__' : 'smart_control_reward_pb2' - # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardResponse) - }) -_sym_db.RegisterMessage(RewardResponse) - - -_REWARDINFO_ZONEREWARDINFOSENTRY._options = None -_REWARDINFO_AIRHANDLERREWARDINFOSENTRY._options = None -_REWARDINFO_BOILERREWARDINFOSENTRY._options = None +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1asmart_control_reward.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe9\t\n\nRewardInfo\x12\x33\n\x0fstart_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12\x13\n\x0bscenario_id\x18\x04 \x01(\t\x12_\n\x11zone_reward_infos\x18\x05 \x03(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry\x12l\n\x18\x61ir_handler_reward_infos\x18\x06 \x03(\x0b\x32J.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry\x12\x63\n\x13\x62oiler_reward_infos\x18\x07 \x03(\x0b\x32\x46.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry\x1a\xcc\x01\n\x0eZoneRewardInfo\x12$\n\x1cheating_setpoint_temperature\x18\x01 \x01(\x02\x12$\n\x1c\x63ooling_setpoint_temperature\x18\x02 \x01(\x02\x12\x1c\n\x14zone_air_temperature\x18\x03 \x01(\x02\x12\x1e\n\x16\x61ir_flow_rate_setpoint\x18\x04 \x01(\x02\x12\x15\n\rair_flow_rate\x18\x05 \x01(\x02\x12\x19\n\x11\x61verage_occupancy\x18\x06 \x01(\x02\x1an\n\x14\x41irHandlerRewardInfo\x12%\n\x1d\x62lower_electrical_energy_rate\x18\x01 \x01(\x02\x12/\n\'air_conditioning_electrical_energy_rate\x18\x02 \x01(\x02\x1a`\n\x10\x42oilerRewardInfo\x12\'\n\x1fnatural_gas_heating_energy_rate\x18\x01 \x01(\x02\x12#\n\x1bpump_electrical_energy_rate\x18\x02 \x01(\x02\x1av\n\x14ZoneRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo:\x02\x38\x01\x1a\x82\x01\n\x1a\x41irHandlerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12S\n\x05value\x18\x02 \x01(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo:\x02\x38\x01\x1az\n\x16\x42oilerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12O\n\x05value\x18\x02 \x01(\x0b\x32@.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo:\x02\x38\x01\"\xe4\x04\n\x0eRewardResponse\x12\x1a\n\x12\x61gent_reward_value\x18\x01 \x01(\x02\x12\x1b\n\x13productivity_reward\x18\x02 \x01(\x02\x12\x1f\n\x17\x65lectricity_energy_cost\x18\x03 \x01(\x02\x12\x1f\n\x17natural_gas_energy_cost\x18\x04 \x01(\x02\x12\x16\n\x0e\x63\x61rbon_emitted\x18\x05 \x01(\x02\x12\x13\n\x0b\x63\x61rbon_cost\x18\x06 \x01(\x02\x12\x1b\n\x13productivity_weight\x18\x07 \x01(\x02\x12\x1a\n\x12\x65nergy_cost_weight\x18\x08 \x01(\x02\x12\x1e\n\x16\x63\x61rbon_emission_weight\x18\t \x01(\x02\x12\x1b\n\x13person_productivity\x18\n \x01(\x02\x12\x17\n\x0ftotal_occupancy\x18\x0b \x01(\x02\x12\x14\n\x0creward_scale\x18\x0c \x01(\x02\x12\x14\n\x0creward_shift\x18\r \x01(\x02\x12\x1b\n\x13productivity_regret\x18\x0e \x01(\x02\x12&\n\x1enormalized_productivity_regret\x18\x0f \x01(\x02\x12\x1e\n\x16normalized_energy_cost\x18\x10 \x01(\x02\x12\"\n\x1anormalized_carbon_emission\x18\x11 \x01(\x02\x12\x33\n\x0fstart_timestamp\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestampb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_reward_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _REWARDINFO_ZONEREWARDINFOSENTRY._options = None + _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_options = b'8\001' + _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._options = None + _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_options = b'8\001' + _REWARDINFO_BOILERREWARDINFOSENTRY._options = None + _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_options = b'8\001' + _REWARDINFO._serialized_start=101 + _REWARDINFO._serialized_end=1358 + _REWARDINFO_ZONEREWARDINFO._serialized_start=567 + _REWARDINFO_ZONEREWARDINFO._serialized_end=771 + _REWARDINFO_AIRHANDLERREWARDINFO._serialized_start=773 + _REWARDINFO_AIRHANDLERREWARDINFO._serialized_end=883 + _REWARDINFO_BOILERREWARDINFO._serialized_start=885 + _REWARDINFO_BOILERREWARDINFO._serialized_end=981 + _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_start=983 + _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_end=1101 + _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_start=1104 + _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_end=1234 + _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_start=1236 + _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_end=1358 + _REWARDRESPONSE._serialized_start=1361 + _REWARDRESPONSE._serialized_end=1973 # @@protoc_insertion_point(module_scope) From 1390714421ae8843d269cb758c8a8ccc904896c6 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 5 Jun 2025 20:04:33 -0400 Subject: [PATCH 02/30] Update markdown formatting --- docs/api/config.md | 3 ++- docs/setup.md | 21 ++++++++++++++------- docs/setup/docker.md | 8 ++++---- docs/setup/linux.md | 4 ++-- docs/setup/mac.md | 19 ++++++++++++------- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/docs/api/config.md b/docs/api/config.md index 2e95eaf1..d93b878f 100644 --- a/docs/api/config.md +++ b/docs/api/config.md @@ -1,3 +1,4 @@ # Configuration -The project uses Gin ("*.gin") configuration files to manage simulation settings, reward function parameters, and environment configurations. +The project uses Gin ("\*.gin") configuration files to manage simulation +settings, reward function parameters, and environment configurations. diff --git a/docs/setup.md b/docs/setup.md index 4d2cfbe6..4ba030e3 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -7,18 +7,25 @@ development. This project requires the following dependencies: -- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (v 3.21.12) +- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (v + 3.21.12) - [FFmpeg](https://ffmpeg.org/) (v 7.1.1) - Python (>=3.10.12 and \<3.12) and a Python Virtual Environment ## System-specific Setup -By default, we use Linux OS for development. However it is also possible to develop on Mac OS. We are also providing a "Dockerfile" to facilitate development on non-Linux systems (Mac or Windows). Windows users can alternatively use [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install). +By default, we use Linux OS for development. However it is also possible to +develop on Mac OS. We are also providing a "Dockerfile" to facilitate +development on non-Linux systems (Mac or Windows). Windows users can +alternatively use +[Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install). -Consult one of the following system-specific setup guides, based on your operating system and preferred tools: +Consult one of the following system-specific setup guides, based on your +operating system and preferred tools: - + [Linux OS Setup](./setup/linux.md) - + [Mac OS Setup](./setup/mac.md) - + [Docker Setup](./setup/docker.md) +- [Linux OS Setup](./setup/linux.md) +- [Mac OS Setup](./setup/mac.md) +- [Docker Setup](./setup/docker.md) -After completing the setup, you should be able to run notebooks or scripts as desired. +After completing the setup, you should be able to run notebooks or scripts as +desired. diff --git a/docs/setup/docker.md b/docs/setup/docker.md index b9923778..20a4e945 100644 --- a/docs/setup/docker.md +++ b/docs/setup/docker.md @@ -1,10 +1,10 @@ # Docker Setup Guide -To get the repository set up on non-Linux -environments, you can use the pre-configured Docker environment ("Linux/amd64") -specified by the "Dockerfile". +To get the repository set up on non-Linux environments, you can use the +pre-configured Docker environment ("Linux/amd64") specified by the "Dockerfile". -First, install [Docker Desktop](https://www.docker.com/products/docker-desktop/). +First, install +[Docker Desktop](https://www.docker.com/products/docker-desktop/). Build the image: diff --git a/docs/setup/linux.md b/docs/setup/linux.md index 8ca38e42..ed9c943e 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -1,4 +1,3 @@ - # Linux OS Setup Guide This guide helps you get the project setup on Linux OS. @@ -119,7 +118,8 @@ protoc --python_out=. smart_control_reward.proto cd ../.. ``` -> NOTE: the generated "*pb2.py" files have been checked in to the repository to facilitate publishing this package on PyPI. +> NOTE: the generated "\*pb2.py" files have been checked in to the repository to +> facilitate publishing this package on PyPI. ## Environment Variable Setup diff --git a/docs/setup/mac.md b/docs/setup/mac.md index 8f0c50e6..ff840345 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -1,4 +1,3 @@ - # Mac OS Setup Guide This guide helps you get the project setup on Mac OS. @@ -33,7 +32,11 @@ ffmpeg -version #> 7.1.1 ``` -NOTE: by installing a pinned version of Protobuf, it may not be symlinked, so normal `protoc` commands may not work without using a prefix of `$(brew --prefix protobuf@21)/bin/protoc`. To avoid needing the prefix, as a one time setup step, update the ".zshrc" file to add the installed location to the path: +NOTE: by installing a pinned version of Protobuf, it may not be symlinked, so +normal `protoc` commands may not work without using a prefix of +`$(brew --prefix protobuf@21)/bin/protoc`. To avoid needing the prefix, as a one +time setup step, update the ".zshrc" file to add the installed location to the +path: ```sh # this is the "~/.zshrc" file: @@ -55,9 +58,12 @@ protoc --version ## Anaconda Installation -Install [Anaconda](https://www.anaconda.com/download), which we will use to install Python and manage a virtual environment. +Install [Anaconda](https://www.anaconda.com/download), which we will use to +install Python and manage a virtual environment. -The installation results in automatically adding some content to your "~/.zshrc" file. You may need to run a `conda init bash` or `conda init zsh` command, if prompted to do so. +The installation results in automatically adding some content to your "~/.zshrc" +file. You may need to run a `conda init bash` or `conda init zsh` command, if +prompted to do so. Remember to restart your shell afterwards. @@ -75,8 +81,6 @@ Activate the virtual environment: conda activate sbsim-env ``` - - ## Python Package Installation We are using [Poetry](https://python-poetry.org/) to manage, install, and @@ -109,7 +113,8 @@ protoc --python_out=. smart_control_reward.proto cd ../.. ``` -> NOTE: the generated "*pb2.py" files have been checked in to the repository to facilitate publishing this package on PyPI. +> NOTE: the generated "\*pb2.py" files have been checked in to the repository to +> facilitate publishing this package on PyPI. ## Environment Variable Setup From 363ac24dddcaafcce5c18e0afbd6684529e560bb Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 5 Jun 2025 20:19:43 -0400 Subject: [PATCH 03/30] Revert protos - we will update them in a separate PR #92 --- .../proto/smart_control_building_pb2.py | 1146 ++++++++++++++++- .../proto/smart_control_normalization_pb2.py | 124 +- .../proto/smart_control_reward_pb2.py | 621 ++++++++- 3 files changed, 1803 insertions(+), 88 deletions(-) diff --git a/smart_control/proto/smart_control_building_pb2.py b/smart_control/proto/smart_control_building_pb2.py index cb47b30d..10a1b84f 100644 --- a/smart_control/proto/smart_control_building_pb2.py +++ b/smart_control/proto/smart_control_building_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_building.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder + from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,47 +14,1101 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csmart_control_building.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x01\n\x08ZoneInfo\x12\x0f\n\x07zone_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62uilding_id\x18\x02 \x01(\t\x12\x18\n\x10zone_description\x18\x03 \x01(\t\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x02\x12\x0f\n\x07\x64\x65vices\x18\x05 \x03(\t\x12I\n\tzone_type\x18\x06 \x01(\x0e\x32\x36.smart_buildings.smart_control.proto.ZoneInfo.ZoneType\x12\r\n\x05\x66loor\x18\x07 \x01(\x05\"9\n\x08ZoneType\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04ROOM\x10\x01\x12\t\n\x05\x46LOOR\x10\x02\x12\t\n\x05OTHER\x10\n\"\xa5\x07\n\nDeviceInfo\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07zone_id\x18\x04 \x01(\t\x12O\n\x0b\x64\x65vice_type\x18\x05 \x01(\x0e\x32:.smart_buildings.smart_control.proto.DeviceInfo.DeviceType\x12`\n\x11observable_fields\x18\x06 \x03(\x0b\x32\x45.smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry\x12X\n\raction_fields\x18\x07 \x03(\x0b\x32\x41.smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry\x1ar\n\x15ObservableFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\x1an\n\x11\x41\x63tionFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\"\xe7\x01\n\nDeviceType\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03\x46\x41N\x10\x01\x12\x07\n\x03PMP\x10\x02\x12\x07\n\x03\x46\x43U\x10\x03\x12\x07\n\x03VAV\x10\x04\x12\x06\n\x02\x44H\x10\x05\x12\x07\n\x03\x41HU\x10\x06\x12\x07\n\x03\x42LR\x10\x07\x12\x08\n\x04\x43\x44WS\x10\x08\x12\x06\n\x02\x43H\x10\t\x12\x08\n\x04\x43HWS\x10\n\x12\x06\n\x02\x43T\x10\x0b\x12\x06\n\x02\x44\x43\x10\x0c\x12\x07\n\x03\x44\x46R\x10\r\x12\x07\n\x03\x44MP\x10\x0e\x12\x07\n\x03HWS\x10\x0f\x12\x06\n\x02HX\x10\x10\x12\x07\n\x03MAU\x10\x11\x12\x07\n\x03SDC\x10\x12\x12\x06\n\x02UH\x10\x13\x12\x07\n\x03PWR\x10\x14\x12\x07\n\x03GAS\x10\x15\x12\x06\n\x02\x41\x43\x10\x16\x12\t\n\x05OTHER\x10\x17\"w\n\tValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_CONTINUOUS\x10\x01\x12\x11\n\rVALUE_INTEGER\x10\x02\x12\x15\n\x11VALUE_CATEGORICAL\x10\x03\x12\x10\n\x0cVALUE_BINARY\x10\x04\"G\n\x18SingleObservationRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x18\n\x10measurement_name\x18\x02 \x01(\t\"\xdf\x02\n\x19SingleObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x61\n\x1asingle_observation_request\x18\x02 \x01(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\x12\x19\n\x11observation_valid\x18\x03 \x01(\x08\x12\x1a\n\x10\x63ontinuous_value\x18\x04 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x05 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x06 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x07 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x08 \x01(\tH\x00\x42\x13\n\x11observation_value\"\xa7\x01\n\x12ObservationRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x62\n\x1bsingle_observation_requests\x18\x02 \x03(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\"\xf4\x01\n\x13ObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x07request\x18\x02 \x01(\x0b\x32\x37.smart_buildings.smart_control.proto.ObservationRequest\x12\x64\n\x1csingle_observation_responses\x18\x03 \x03(\x0b\x32>.smart_buildings.smart_control.proto.SingleObservationResponse\"\xd3\x01\n\x13SingleActionRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x15\n\rsetpoint_name\x18\x02 \x01(\t\x12\x1a\n\x10\x63ontinuous_value\x18\x03 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x04 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x06 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x07 \x01(\tH\x00\x42\x10\n\x0esetpoint_value\"\xdd\x03\n\x14SingleActionResponse\x12I\n\x07request\x18\x01 \x01(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\x12\x63\n\rresponse_type\x18\x02 \x01(\x0e\x32L.smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType\x12\x17\n\x0f\x61\x64\x64itional_info\x18\x03 \x01(\t\"\xfb\x01\n\x12\x41\x63tionResponseType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\r\n\tTIMED_OUT\x10\x03\x12\x1c\n\x18REJECTED_INVALID_SETTING\x10\x04\x12%\n!REJECTED_NOT_ENABLED_OR_AVAILABLE\x10\x05\x12\x15\n\x11REJECTED_OVERRIDE\x10\x06\x12\x1b\n\x17REJECTED_INVALID_DEVICE\x10\x07\x12\x1b\n\x17REJECTED_DEVICE_OFFLINE\x10\x08\x12\x0b\n\x07UNKNOWN\x10\t\x12\t\n\x05OTHER\x10\n\"\x98\x01\n\rActionRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12X\n\x16single_action_requests\x18\x02 \x03(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\"\xe0\x01\n\x0e\x41\x63tionResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x07request\x18\x02 \x01(\x0b\x32\x32.smart_buildings.smart_control.proto.ActionRequest\x12Z\n\x17single_action_responses\x18\x03 \x03(\x0b\x32\x39.smart_buildings.smart_control.proto.SingleActionResponseb\x06proto3') - -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_building_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _DEVICEINFO_OBSERVABLEFIELDSENTRY._options = None - _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_options = b'8\001' - _DEVICEINFO_ACTIONFIELDSENTRY._options = None - _DEVICEINFO_ACTIONFIELDSENTRY._serialized_options = b'8\001' - _ZONEINFO._serialized_start=103 - _ZONEINFO._serialized_end=357 - _ZONEINFO_ZONETYPE._serialized_start=300 - _ZONEINFO_ZONETYPE._serialized_end=357 - _DEVICEINFO._serialized_start=360 - _DEVICEINFO._serialized_end=1293 - _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_start=712 - _DEVICEINFO_OBSERVABLEFIELDSENTRY._serialized_end=826 - _DEVICEINFO_ACTIONFIELDSENTRY._serialized_start=828 - _DEVICEINFO_ACTIONFIELDSENTRY._serialized_end=938 - _DEVICEINFO_DEVICETYPE._serialized_start=941 - _DEVICEINFO_DEVICETYPE._serialized_end=1172 - _DEVICEINFO_VALUETYPE._serialized_start=1174 - _DEVICEINFO_VALUETYPE._serialized_end=1293 - _SINGLEOBSERVATIONREQUEST._serialized_start=1295 - _SINGLEOBSERVATIONREQUEST._serialized_end=1366 - _SINGLEOBSERVATIONRESPONSE._serialized_start=1369 - _SINGLEOBSERVATIONRESPONSE._serialized_end=1720 - _OBSERVATIONREQUEST._serialized_start=1723 - _OBSERVATIONREQUEST._serialized_end=1890 - _OBSERVATIONRESPONSE._serialized_start=1893 - _OBSERVATIONRESPONSE._serialized_end=2137 - _SINGLEACTIONREQUEST._serialized_start=2140 - _SINGLEACTIONREQUEST._serialized_end=2351 - _SINGLEACTIONRESPONSE._serialized_start=2354 - _SINGLEACTIONRESPONSE._serialized_end=2831 - _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE._serialized_start=2580 - _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE._serialized_end=2831 - _ACTIONREQUEST._serialized_start=2834 - _ACTIONREQUEST._serialized_end=2986 - _ACTIONRESPONSE._serialized_start=2989 - _ACTIONRESPONSE._serialized_end=3213 +DESCRIPTOR = _descriptor.FileDescriptor( + name='smart_control_building.proto', + package='smart_buildings.smart_control.proto', + syntax='proto3', + serialized_options=None, + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x1csmart_control_building.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x01\n\x08ZoneInfo\x12\x0f\n\x07zone_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62uilding_id\x18\x02 \x01(\t\x12\x18\n\x10zone_description\x18\x03 \x01(\t\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x02\x12\x0f\n\x07\x64\x65vices\x18\x05 \x03(\t\x12I\n\tzone_type\x18\x06 \x01(\x0e\x32\x36.smart_buildings.smart_control.proto.ZoneInfo.ZoneType\x12\r\n\x05\x66loor\x18\x07 \x01(\x05\"9\n\x08ZoneType\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04ROOM\x10\x01\x12\t\n\x05\x46LOOR\x10\x02\x12\t\n\x05OTHER\x10\n\"\xa5\x07\n\nDeviceInfo\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07zone_id\x18\x04 \x01(\t\x12O\n\x0b\x64\x65vice_type\x18\x05 \x01(\x0e\x32:.smart_buildings.smart_control.proto.DeviceInfo.DeviceType\x12`\n\x11observable_fields\x18\x06 \x03(\x0b\x32\x45.smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry\x12X\n\raction_fields\x18\x07 \x03(\x0b\x32\x41.smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry\x1ar\n\x15ObservableFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\x1an\n\x11\x41\x63tionFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0e\x32\x39.smart_buildings.smart_control.proto.DeviceInfo.ValueType:\x02\x38\x01\"\xe7\x01\n\nDeviceType\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03\x46\x41N\x10\x01\x12\x07\n\x03PMP\x10\x02\x12\x07\n\x03\x46\x43U\x10\x03\x12\x07\n\x03VAV\x10\x04\x12\x06\n\x02\x44H\x10\x05\x12\x07\n\x03\x41HU\x10\x06\x12\x07\n\x03\x42LR\x10\x07\x12\x08\n\x04\x43\x44WS\x10\x08\x12\x06\n\x02\x43H\x10\t\x12\x08\n\x04\x43HWS\x10\n\x12\x06\n\x02\x43T\x10\x0b\x12\x06\n\x02\x44\x43\x10\x0c\x12\x07\n\x03\x44\x46R\x10\r\x12\x07\n\x03\x44MP\x10\x0e\x12\x07\n\x03HWS\x10\x0f\x12\x06\n\x02HX\x10\x10\x12\x07\n\x03MAU\x10\x11\x12\x07\n\x03SDC\x10\x12\x12\x06\n\x02UH\x10\x13\x12\x07\n\x03PWR\x10\x14\x12\x07\n\x03GAS\x10\x15\x12\x06\n\x02\x41\x43\x10\x16\x12\t\n\x05OTHER\x10\x17\"w\n\tValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_CONTINUOUS\x10\x01\x12\x11\n\rVALUE_INTEGER\x10\x02\x12\x15\n\x11VALUE_CATEGORICAL\x10\x03\x12\x10\n\x0cVALUE_BINARY\x10\x04\"G\n\x18SingleObservationRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x18\n\x10measurement_name\x18\x02 \x01(\t\"\xdf\x02\n\x19SingleObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x61\n\x1asingle_observation_request\x18\x02 \x01(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\x12\x19\n\x11observation_valid\x18\x03 \x01(\x08\x12\x1a\n\x10\x63ontinuous_value\x18\x04 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x05 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x06 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x07 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x08 \x01(\tH\x00\x42\x13\n\x11observation_value\"\xa7\x01\n\x12ObservationRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x62\n\x1bsingle_observation_requests\x18\x02 \x03(\x0b\x32=.smart_buildings.smart_control.proto.SingleObservationRequest\"\xf4\x01\n\x13ObservationResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x07request\x18\x02 \x01(\x0b\x32\x37.smart_buildings.smart_control.proto.ObservationRequest\x12\x64\n\x1csingle_observation_responses\x18\x03 \x03(\x0b\x32>.smart_buildings.smart_control.proto.SingleObservationResponse\"\xd3\x01\n\x13SingleActionRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12\x15\n\rsetpoint_name\x18\x02 \x01(\t\x12\x1a\n\x10\x63ontinuous_value\x18\x03 \x01(\x02H\x00\x12\x17\n\rinteger_value\x18\x04 \x01(\x05H\x00\x12\x1b\n\x11\x63\x61tegorical_value\x18\x05 \x01(\tH\x00\x12\x16\n\x0c\x62inary_value\x18\x06 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x07 \x01(\tH\x00\x42\x10\n\x0esetpoint_value\"\xdd\x03\n\x14SingleActionResponse\x12I\n\x07request\x18\x01 \x01(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\x12\x63\n\rresponse_type\x18\x02 \x01(\x0e\x32L.smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType\x12\x17\n\x0f\x61\x64\x64itional_info\x18\x03 \x01(\t\"\xfb\x01\n\x12\x41\x63tionResponseType\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\r\n\tTIMED_OUT\x10\x03\x12\x1c\n\x18REJECTED_INVALID_SETTING\x10\x04\x12%\n!REJECTED_NOT_ENABLED_OR_AVAILABLE\x10\x05\x12\x15\n\x11REJECTED_OVERRIDE\x10\x06\x12\x1b\n\x17REJECTED_INVALID_DEVICE\x10\x07\x12\x1b\n\x17REJECTED_DEVICE_OFFLINE\x10\x08\x12\x0b\n\x07UNKNOWN\x10\t\x12\t\n\x05OTHER\x10\n\"\x98\x01\n\rActionRequest\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12X\n\x16single_action_requests\x18\x02 \x03(\x0b\x32\x38.smart_buildings.smart_control.proto.SingleActionRequest\"\xe0\x01\n\x0e\x41\x63tionResponse\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x07request\x18\x02 \x01(\x0b\x32\x32.smart_buildings.smart_control.proto.ActionRequest\x12Z\n\x17single_action_responses\x18\x03 \x03(\x0b\x32\x39.smart_buildings.smart_control.proto.SingleActionResponseb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) + + + +_ZONEINFO_ZONETYPE = _descriptor.EnumDescriptor( + name='ZoneType', + full_name='smart_buildings.smart_control.proto.ZoneInfo.ZoneType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNDEFINED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ROOM', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLOOR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=3, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=300, + serialized_end=357, +) +_sym_db.RegisterEnumDescriptor(_ZONEINFO_ZONETYPE) + +_DEVICEINFO_DEVICETYPE = _descriptor.EnumDescriptor( + name='DeviceType', + full_name='smart_buildings.smart_control.proto.DeviceInfo.DeviceType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNDEFINED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FAN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PMP', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FCU', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VAV', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DH', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AHU', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BLR', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CDWS', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CH', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CHWS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CT', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DC', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DFR', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DMP', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HWS', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HX', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAU', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SDC', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UH', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PWR', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GAS', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AC', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=941, + serialized_end=1172, +) +_sym_db.RegisterEnumDescriptor(_DEVICEINFO_DEVICETYPE) + +_DEVICEINFO_VALUETYPE = _descriptor.EnumDescriptor( + name='ValueType', + full_name='smart_buildings.smart_control.proto.DeviceInfo.ValueType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='VALUE_TYPE_UNDEFINED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_CONTINUOUS', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_INTEGER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_CATEGORICAL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_BINARY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1174, + serialized_end=1293, +) +_sym_db.RegisterEnumDescriptor(_DEVICEINFO_VALUETYPE) + +_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE = _descriptor.EnumDescriptor( + name='ActionResponseType', + full_name='smart_buildings.smart_control.proto.SingleActionResponse.ActionResponseType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNDEFINED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCEPTED', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TIMED_OUT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED_INVALID_SETTING', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED_NOT_ENABLED_OR_AVAILABLE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED_OVERRIDE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED_INVALID_DEVICE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED_DEVICE_OFFLINE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2580, + serialized_end=2831, +) +_sym_db.RegisterEnumDescriptor(_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE) + + +_ZONEINFO = _descriptor.Descriptor( + name='ZoneInfo', + full_name='smart_buildings.smart_control.proto.ZoneInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='zone_id', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='building_id', full_name='smart_buildings.smart_control.proto.ZoneInfo.building_id', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='zone_description', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_description', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='area', full_name='smart_buildings.smart_control.proto.ZoneInfo.area', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='devices', full_name='smart_buildings.smart_control.proto.ZoneInfo.devices', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='zone_type', full_name='smart_buildings.smart_control.proto.ZoneInfo.zone_type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='floor', full_name='smart_buildings.smart_control.proto.ZoneInfo.floor', index=6, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ZONEINFO_ZONETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=103, + serialized_end=357, +) + + +_DEVICEINFO_OBSERVABLEFIELDSENTRY = _descriptor.Descriptor( + name='ObservableFieldsEntry', + full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry.value', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=712, + serialized_end=826, +) + +_DEVICEINFO_ACTIONFIELDSENTRY = _descriptor.Descriptor( + name='ActionFieldsEntry', + full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry.value', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=828, + serialized_end=938, +) + +_DEVICEINFO = _descriptor.Descriptor( + name='DeviceInfo', + full_name='smart_buildings.smart_control.proto.DeviceInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='device_id', full_name='smart_buildings.smart_control.proto.DeviceInfo.device_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='namespace', full_name='smart_buildings.smart_control.proto.DeviceInfo.namespace', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='code', full_name='smart_buildings.smart_control.proto.DeviceInfo.code', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='zone_id', full_name='smart_buildings.smart_control.proto.DeviceInfo.zone_id', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_type', full_name='smart_buildings.smart_control.proto.DeviceInfo.device_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='observable_fields', full_name='smart_buildings.smart_control.proto.DeviceInfo.observable_fields', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='action_fields', full_name='smart_buildings.smart_control.proto.DeviceInfo.action_fields', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_DEVICEINFO_OBSERVABLEFIELDSENTRY, _DEVICEINFO_ACTIONFIELDSENTRY, ], + enum_types=[ + _DEVICEINFO_DEVICETYPE, + _DEVICEINFO_VALUETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=360, + serialized_end=1293, +) + + +_SINGLEOBSERVATIONREQUEST = _descriptor.Descriptor( + name='SingleObservationRequest', + full_name='smart_buildings.smart_control.proto.SingleObservationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='device_id', full_name='smart_buildings.smart_control.proto.SingleObservationRequest.device_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='measurement_name', full_name='smart_buildings.smart_control.proto.SingleObservationRequest.measurement_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1295, + serialized_end=1366, +) + + +_SINGLEOBSERVATIONRESPONSE = _descriptor.Descriptor( + name='SingleObservationResponse', + full_name='smart_buildings.smart_control.proto.SingleObservationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_observation_request', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.single_observation_request', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='observation_valid', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.observation_valid', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='continuous_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.continuous_value', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='integer_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.integer_value', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='categorical_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.categorical_value', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='binary_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.binary_value', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.string_value', index=7, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='observation_value', full_name='smart_buildings.smart_control.proto.SingleObservationResponse.observation_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1369, + serialized_end=1720, +) + + +_OBSERVATIONREQUEST = _descriptor.Descriptor( + name='ObservationRequest', + full_name='smart_buildings.smart_control.proto.ObservationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='smart_buildings.smart_control.proto.ObservationRequest.timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_observation_requests', full_name='smart_buildings.smart_control.proto.ObservationRequest.single_observation_requests', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1723, + serialized_end=1890, +) + + +_OBSERVATIONRESPONSE = _descriptor.Descriptor( + name='ObservationResponse', + full_name='smart_buildings.smart_control.proto.ObservationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='smart_buildings.smart_control.proto.ObservationResponse.timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='request', full_name='smart_buildings.smart_control.proto.ObservationResponse.request', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_observation_responses', full_name='smart_buildings.smart_control.proto.ObservationResponse.single_observation_responses', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1893, + serialized_end=2137, +) + + +_SINGLEACTIONREQUEST = _descriptor.Descriptor( + name='SingleActionRequest', + full_name='smart_buildings.smart_control.proto.SingleActionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='device_id', full_name='smart_buildings.smart_control.proto.SingleActionRequest.device_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='setpoint_name', full_name='smart_buildings.smart_control.proto.SingleActionRequest.setpoint_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='continuous_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.continuous_value', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='integer_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.integer_value', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='categorical_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.categorical_value', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='binary_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.binary_value', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.string_value', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='setpoint_value', full_name='smart_buildings.smart_control.proto.SingleActionRequest.setpoint_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2140, + serialized_end=2351, +) + + +_SINGLEACTIONRESPONSE = _descriptor.Descriptor( + name='SingleActionResponse', + full_name='smart_buildings.smart_control.proto.SingleActionResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='request', full_name='smart_buildings.smart_control.proto.SingleActionResponse.request', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_type', full_name='smart_buildings.smart_control.proto.SingleActionResponse.response_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='additional_info', full_name='smart_buildings.smart_control.proto.SingleActionResponse.additional_info', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2354, + serialized_end=2831, +) + + +_ACTIONREQUEST = _descriptor.Descriptor( + name='ActionRequest', + full_name='smart_buildings.smart_control.proto.ActionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='smart_buildings.smart_control.proto.ActionRequest.timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_action_requests', full_name='smart_buildings.smart_control.proto.ActionRequest.single_action_requests', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2834, + serialized_end=2986, +) + + +_ACTIONRESPONSE = _descriptor.Descriptor( + name='ActionResponse', + full_name='smart_buildings.smart_control.proto.ActionResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='smart_buildings.smart_control.proto.ActionResponse.timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='request', full_name='smart_buildings.smart_control.proto.ActionResponse.request', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_action_responses', full_name='smart_buildings.smart_control.proto.ActionResponse.single_action_responses', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2989, + serialized_end=3213, +) + +_ZONEINFO.fields_by_name['zone_type'].enum_type = _ZONEINFO_ZONETYPE +_ZONEINFO_ZONETYPE.containing_type = _ZONEINFO +_DEVICEINFO_OBSERVABLEFIELDSENTRY.fields_by_name['value'].enum_type = _DEVICEINFO_VALUETYPE +_DEVICEINFO_OBSERVABLEFIELDSENTRY.containing_type = _DEVICEINFO +_DEVICEINFO_ACTIONFIELDSENTRY.fields_by_name['value'].enum_type = _DEVICEINFO_VALUETYPE +_DEVICEINFO_ACTIONFIELDSENTRY.containing_type = _DEVICEINFO +_DEVICEINFO.fields_by_name['device_type'].enum_type = _DEVICEINFO_DEVICETYPE +_DEVICEINFO.fields_by_name['observable_fields'].message_type = _DEVICEINFO_OBSERVABLEFIELDSENTRY +_DEVICEINFO.fields_by_name['action_fields'].message_type = _DEVICEINFO_ACTIONFIELDSENTRY +_DEVICEINFO_DEVICETYPE.containing_type = _DEVICEINFO +_DEVICEINFO_VALUETYPE.containing_type = _DEVICEINFO +_SINGLEOBSERVATIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_SINGLEOBSERVATIONRESPONSE.fields_by_name['single_observation_request'].message_type = _SINGLEOBSERVATIONREQUEST +_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( + _SINGLEOBSERVATIONRESPONSE.fields_by_name['continuous_value']) +_SINGLEOBSERVATIONRESPONSE.fields_by_name['continuous_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] +_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( + _SINGLEOBSERVATIONRESPONSE.fields_by_name['integer_value']) +_SINGLEOBSERVATIONRESPONSE.fields_by_name['integer_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] +_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( + _SINGLEOBSERVATIONRESPONSE.fields_by_name['categorical_value']) +_SINGLEOBSERVATIONRESPONSE.fields_by_name['categorical_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] +_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( + _SINGLEOBSERVATIONRESPONSE.fields_by_name['binary_value']) +_SINGLEOBSERVATIONRESPONSE.fields_by_name['binary_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] +_SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'].fields.append( + _SINGLEOBSERVATIONRESPONSE.fields_by_name['string_value']) +_SINGLEOBSERVATIONRESPONSE.fields_by_name['string_value'].containing_oneof = _SINGLEOBSERVATIONRESPONSE.oneofs_by_name['observation_value'] +_OBSERVATIONREQUEST.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_OBSERVATIONREQUEST.fields_by_name['single_observation_requests'].message_type = _SINGLEOBSERVATIONREQUEST +_OBSERVATIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_OBSERVATIONRESPONSE.fields_by_name['request'].message_type = _OBSERVATIONREQUEST +_OBSERVATIONRESPONSE.fields_by_name['single_observation_responses'].message_type = _SINGLEOBSERVATIONRESPONSE +_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( + _SINGLEACTIONREQUEST.fields_by_name['continuous_value']) +_SINGLEACTIONREQUEST.fields_by_name['continuous_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] +_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( + _SINGLEACTIONREQUEST.fields_by_name['integer_value']) +_SINGLEACTIONREQUEST.fields_by_name['integer_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] +_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( + _SINGLEACTIONREQUEST.fields_by_name['categorical_value']) +_SINGLEACTIONREQUEST.fields_by_name['categorical_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] +_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( + _SINGLEACTIONREQUEST.fields_by_name['binary_value']) +_SINGLEACTIONREQUEST.fields_by_name['binary_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] +_SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'].fields.append( + _SINGLEACTIONREQUEST.fields_by_name['string_value']) +_SINGLEACTIONREQUEST.fields_by_name['string_value'].containing_oneof = _SINGLEACTIONREQUEST.oneofs_by_name['setpoint_value'] +_SINGLEACTIONRESPONSE.fields_by_name['request'].message_type = _SINGLEACTIONREQUEST +_SINGLEACTIONRESPONSE.fields_by_name['response_type'].enum_type = _SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE +_SINGLEACTIONRESPONSE_ACTIONRESPONSETYPE.containing_type = _SINGLEACTIONRESPONSE +_ACTIONREQUEST.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_ACTIONREQUEST.fields_by_name['single_action_requests'].message_type = _SINGLEACTIONREQUEST +_ACTIONRESPONSE.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_ACTIONRESPONSE.fields_by_name['request'].message_type = _ACTIONREQUEST +_ACTIONRESPONSE.fields_by_name['single_action_responses'].message_type = _SINGLEACTIONRESPONSE +DESCRIPTOR.message_types_by_name['ZoneInfo'] = _ZONEINFO +DESCRIPTOR.message_types_by_name['DeviceInfo'] = _DEVICEINFO +DESCRIPTOR.message_types_by_name['SingleObservationRequest'] = _SINGLEOBSERVATIONREQUEST +DESCRIPTOR.message_types_by_name['SingleObservationResponse'] = _SINGLEOBSERVATIONRESPONSE +DESCRIPTOR.message_types_by_name['ObservationRequest'] = _OBSERVATIONREQUEST +DESCRIPTOR.message_types_by_name['ObservationResponse'] = _OBSERVATIONRESPONSE +DESCRIPTOR.message_types_by_name['SingleActionRequest'] = _SINGLEACTIONREQUEST +DESCRIPTOR.message_types_by_name['SingleActionResponse'] = _SINGLEACTIONRESPONSE +DESCRIPTOR.message_types_by_name['ActionRequest'] = _ACTIONREQUEST +DESCRIPTOR.message_types_by_name['ActionResponse'] = _ACTIONRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ZoneInfo = _reflection.GeneratedProtocolMessageType('ZoneInfo', (_message.Message,), { + 'DESCRIPTOR' : _ZONEINFO, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ZoneInfo) + }) +_sym_db.RegisterMessage(ZoneInfo) + +DeviceInfo = _reflection.GeneratedProtocolMessageType('DeviceInfo', (_message.Message,), { + + 'ObservableFieldsEntry' : _reflection.GeneratedProtocolMessageType('ObservableFieldsEntry', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEINFO_OBSERVABLEFIELDSENTRY, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo.ObservableFieldsEntry) + }) + , + + 'ActionFieldsEntry' : _reflection.GeneratedProtocolMessageType('ActionFieldsEntry', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEINFO_ACTIONFIELDSENTRY, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo.ActionFieldsEntry) + }) + , + 'DESCRIPTOR' : _DEVICEINFO, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.DeviceInfo) + }) +_sym_db.RegisterMessage(DeviceInfo) +_sym_db.RegisterMessage(DeviceInfo.ObservableFieldsEntry) +_sym_db.RegisterMessage(DeviceInfo.ActionFieldsEntry) + +SingleObservationRequest = _reflection.GeneratedProtocolMessageType('SingleObservationRequest', (_message.Message,), { + 'DESCRIPTOR' : _SINGLEOBSERVATIONREQUEST, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleObservationRequest) + }) +_sym_db.RegisterMessage(SingleObservationRequest) + +SingleObservationResponse = _reflection.GeneratedProtocolMessageType('SingleObservationResponse', (_message.Message,), { + 'DESCRIPTOR' : _SINGLEOBSERVATIONRESPONSE, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleObservationResponse) + }) +_sym_db.RegisterMessage(SingleObservationResponse) + +ObservationRequest = _reflection.GeneratedProtocolMessageType('ObservationRequest', (_message.Message,), { + 'DESCRIPTOR' : _OBSERVATIONREQUEST, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ObservationRequest) + }) +_sym_db.RegisterMessage(ObservationRequest) + +ObservationResponse = _reflection.GeneratedProtocolMessageType('ObservationResponse', (_message.Message,), { + 'DESCRIPTOR' : _OBSERVATIONRESPONSE, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ObservationResponse) + }) +_sym_db.RegisterMessage(ObservationResponse) + +SingleActionRequest = _reflection.GeneratedProtocolMessageType('SingleActionRequest', (_message.Message,), { + 'DESCRIPTOR' : _SINGLEACTIONREQUEST, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleActionRequest) + }) +_sym_db.RegisterMessage(SingleActionRequest) + +SingleActionResponse = _reflection.GeneratedProtocolMessageType('SingleActionResponse', (_message.Message,), { + 'DESCRIPTOR' : _SINGLEACTIONRESPONSE, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.SingleActionResponse) + }) +_sym_db.RegisterMessage(SingleActionResponse) + +ActionRequest = _reflection.GeneratedProtocolMessageType('ActionRequest', (_message.Message,), { + 'DESCRIPTOR' : _ACTIONREQUEST, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ActionRequest) + }) +_sym_db.RegisterMessage(ActionRequest) + +ActionResponse = _reflection.GeneratedProtocolMessageType('ActionResponse', (_message.Message,), { + 'DESCRIPTOR' : _ACTIONRESPONSE, + '__module__' : 'smart_control_building_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ActionResponse) + }) +_sym_db.RegisterMessage(ActionResponse) + + +_DEVICEINFO_OBSERVABLEFIELDSENTRY._options = None +_DEVICEINFO_ACTIONFIELDSENTRY._options = None # @@protoc_insertion_point(module_scope) diff --git a/smart_control/proto/smart_control_normalization_pb2.py b/smart_control/proto/smart_control_normalization_pb2.py index 6f8034b8..36b64c0d 100644 --- a/smart_control/proto/smart_control_normalization_pb2.py +++ b/smart_control/proto/smart_control_normalization_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_normalization.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder + from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,13 +14,117 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!smart_control_normalization.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x16\x43ontinuousVariableInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0csample_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nsample_end\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bsample_size\x18\x04 \x01(\x05\x12\x17\n\x0fsample_variance\x18\x05 \x01(\x02\x12\x13\n\x0bsample_mean\x18\x06 \x01(\x02\x12\x15\n\rsample_median\x18\x07 \x01(\x02\x12\x16\n\x0esample_maximum\x18\x08 \x01(\x02\x12\x16\n\x0esample_minimum\x18\t \x01(\x02\x62\x06proto3') +DESCRIPTOR = _descriptor.FileDescriptor( + name='smart_control_normalization.proto', + package='smart_buildings.smart_control.proto', + syntax='proto3', + serialized_options=None, + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n!smart_control_normalization.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x02\n\x16\x43ontinuousVariableInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x30\n\x0csample_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nsample_end\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bsample_size\x18\x04 \x01(\x05\x12\x17\n\x0fsample_variance\x18\x05 \x01(\x02\x12\x13\n\x0bsample_mean\x18\x06 \x01(\x02\x12\x15\n\rsample_median\x18\x07 \x01(\x02\x12\x16\n\x0esample_maximum\x18\x08 \x01(\x02\x12\x16\n\x0esample_minimum\x18\t \x01(\x02\x62\x06proto3' + , + dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) + + + + +_CONTINUOUSVARIABLEINFO = _descriptor.Descriptor( + name='ContinuousVariableInfo', + full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_start', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_start', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_end', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_end', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_size', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_size', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_variance', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_variance', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_mean', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_mean', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_median', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_median', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_maximum', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_maximum', index=7, + number=8, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sample_minimum', full_name='smart_buildings.smart_control.proto.ContinuousVariableInfo.sample_minimum', index=8, + number=9, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=108, + serialized_end=380, +) + +_CONTINUOUSVARIABLEINFO.fields_by_name['sample_start'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_CONTINUOUSVARIABLEINFO.fields_by_name['sample_end'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +DESCRIPTOR.message_types_by_name['ContinuousVariableInfo'] = _CONTINUOUSVARIABLEINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ContinuousVariableInfo = _reflection.GeneratedProtocolMessageType('ContinuousVariableInfo', (_message.Message,), { + 'DESCRIPTOR' : _CONTINUOUSVARIABLEINFO, + '__module__' : 'smart_control_normalization_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.ContinuousVariableInfo) + }) +_sym_db.RegisterMessage(ContinuousVariableInfo) -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_normalization_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - _CONTINUOUSVARIABLEINFO._serialized_start=108 - _CONTINUOUSVARIABLEINFO._serialized_end=380 # @@protoc_insertion_point(module_scope) diff --git a/smart_control/proto/smart_control_reward_pb2.py b/smart_control/proto/smart_control_reward_pb2.py index 9012d665..9e67d36e 100644 --- a/smart_control/proto/smart_control_reward_pb2.py +++ b/smart_control/proto/smart_control_reward_pb2.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: smart_control_reward.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder + from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -14,33 +14,590 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1asmart_control_reward.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe9\t\n\nRewardInfo\x12\x33\n\x0fstart_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12\x13\n\x0bscenario_id\x18\x04 \x01(\t\x12_\n\x11zone_reward_infos\x18\x05 \x03(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry\x12l\n\x18\x61ir_handler_reward_infos\x18\x06 \x03(\x0b\x32J.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry\x12\x63\n\x13\x62oiler_reward_infos\x18\x07 \x03(\x0b\x32\x46.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry\x1a\xcc\x01\n\x0eZoneRewardInfo\x12$\n\x1cheating_setpoint_temperature\x18\x01 \x01(\x02\x12$\n\x1c\x63ooling_setpoint_temperature\x18\x02 \x01(\x02\x12\x1c\n\x14zone_air_temperature\x18\x03 \x01(\x02\x12\x1e\n\x16\x61ir_flow_rate_setpoint\x18\x04 \x01(\x02\x12\x15\n\rair_flow_rate\x18\x05 \x01(\x02\x12\x19\n\x11\x61verage_occupancy\x18\x06 \x01(\x02\x1an\n\x14\x41irHandlerRewardInfo\x12%\n\x1d\x62lower_electrical_energy_rate\x18\x01 \x01(\x02\x12/\n\'air_conditioning_electrical_energy_rate\x18\x02 \x01(\x02\x1a`\n\x10\x42oilerRewardInfo\x12\'\n\x1fnatural_gas_heating_energy_rate\x18\x01 \x01(\x02\x12#\n\x1bpump_electrical_energy_rate\x18\x02 \x01(\x02\x1av\n\x14ZoneRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo:\x02\x38\x01\x1a\x82\x01\n\x1a\x41irHandlerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12S\n\x05value\x18\x02 \x01(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo:\x02\x38\x01\x1az\n\x16\x42oilerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12O\n\x05value\x18\x02 \x01(\x0b\x32@.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo:\x02\x38\x01\"\xe4\x04\n\x0eRewardResponse\x12\x1a\n\x12\x61gent_reward_value\x18\x01 \x01(\x02\x12\x1b\n\x13productivity_reward\x18\x02 \x01(\x02\x12\x1f\n\x17\x65lectricity_energy_cost\x18\x03 \x01(\x02\x12\x1f\n\x17natural_gas_energy_cost\x18\x04 \x01(\x02\x12\x16\n\x0e\x63\x61rbon_emitted\x18\x05 \x01(\x02\x12\x13\n\x0b\x63\x61rbon_cost\x18\x06 \x01(\x02\x12\x1b\n\x13productivity_weight\x18\x07 \x01(\x02\x12\x1a\n\x12\x65nergy_cost_weight\x18\x08 \x01(\x02\x12\x1e\n\x16\x63\x61rbon_emission_weight\x18\t \x01(\x02\x12\x1b\n\x13person_productivity\x18\n \x01(\x02\x12\x17\n\x0ftotal_occupancy\x18\x0b \x01(\x02\x12\x14\n\x0creward_scale\x18\x0c \x01(\x02\x12\x14\n\x0creward_shift\x18\r \x01(\x02\x12\x1b\n\x13productivity_regret\x18\x0e \x01(\x02\x12&\n\x1enormalized_productivity_regret\x18\x0f \x01(\x02\x12\x1e\n\x16normalized_energy_cost\x18\x10 \x01(\x02\x12\"\n\x1anormalized_carbon_emission\x18\x11 \x01(\x02\x12\x33\n\x0fstart_timestamp\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestampb\x06proto3') - -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'smart_control_reward_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - _REWARDINFO_ZONEREWARDINFOSENTRY._options = None - _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_options = b'8\001' - _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._options = None - _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_options = b'8\001' - _REWARDINFO_BOILERREWARDINFOSENTRY._options = None - _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_options = b'8\001' - _REWARDINFO._serialized_start=101 - _REWARDINFO._serialized_end=1358 - _REWARDINFO_ZONEREWARDINFO._serialized_start=567 - _REWARDINFO_ZONEREWARDINFO._serialized_end=771 - _REWARDINFO_AIRHANDLERREWARDINFO._serialized_start=773 - _REWARDINFO_AIRHANDLERREWARDINFO._serialized_end=883 - _REWARDINFO_BOILERREWARDINFO._serialized_start=885 - _REWARDINFO_BOILERREWARDINFO._serialized_end=981 - _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_start=983 - _REWARDINFO_ZONEREWARDINFOSENTRY._serialized_end=1101 - _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_start=1104 - _REWARDINFO_AIRHANDLERREWARDINFOSENTRY._serialized_end=1234 - _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_start=1236 - _REWARDINFO_BOILERREWARDINFOSENTRY._serialized_end=1358 - _REWARDRESPONSE._serialized_start=1361 - _REWARDRESPONSE._serialized_end=1973 +DESCRIPTOR = _descriptor.FileDescriptor( + name='smart_control_reward.proto', + package='smart_buildings.smart_control.proto', + syntax='proto3', + serialized_options=None, + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x1asmart_control_reward.proto\x12#smart_buildings.smart_control.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe9\t\n\nRewardInfo\x12\x33\n\x0fstart_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12\x13\n\x0bscenario_id\x18\x04 \x01(\t\x12_\n\x11zone_reward_infos\x18\x05 \x03(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry\x12l\n\x18\x61ir_handler_reward_infos\x18\x06 \x03(\x0b\x32J.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry\x12\x63\n\x13\x62oiler_reward_infos\x18\x07 \x03(\x0b\x32\x46.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry\x1a\xcc\x01\n\x0eZoneRewardInfo\x12$\n\x1cheating_setpoint_temperature\x18\x01 \x01(\x02\x12$\n\x1c\x63ooling_setpoint_temperature\x18\x02 \x01(\x02\x12\x1c\n\x14zone_air_temperature\x18\x03 \x01(\x02\x12\x1e\n\x16\x61ir_flow_rate_setpoint\x18\x04 \x01(\x02\x12\x15\n\rair_flow_rate\x18\x05 \x01(\x02\x12\x19\n\x11\x61verage_occupancy\x18\x06 \x01(\x02\x1an\n\x14\x41irHandlerRewardInfo\x12%\n\x1d\x62lower_electrical_energy_rate\x18\x01 \x01(\x02\x12/\n\'air_conditioning_electrical_energy_rate\x18\x02 \x01(\x02\x1a`\n\x10\x42oilerRewardInfo\x12\'\n\x1fnatural_gas_heating_energy_rate\x18\x01 \x01(\x02\x12#\n\x1bpump_electrical_energy_rate\x18\x02 \x01(\x02\x1av\n\x14ZoneRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo:\x02\x38\x01\x1a\x82\x01\n\x1a\x41irHandlerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12S\n\x05value\x18\x02 \x01(\x0b\x32\x44.smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo:\x02\x38\x01\x1az\n\x16\x42oilerRewardInfosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12O\n\x05value\x18\x02 \x01(\x0b\x32@.smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo:\x02\x38\x01\"\xe4\x04\n\x0eRewardResponse\x12\x1a\n\x12\x61gent_reward_value\x18\x01 \x01(\x02\x12\x1b\n\x13productivity_reward\x18\x02 \x01(\x02\x12\x1f\n\x17\x65lectricity_energy_cost\x18\x03 \x01(\x02\x12\x1f\n\x17natural_gas_energy_cost\x18\x04 \x01(\x02\x12\x16\n\x0e\x63\x61rbon_emitted\x18\x05 \x01(\x02\x12\x13\n\x0b\x63\x61rbon_cost\x18\x06 \x01(\x02\x12\x1b\n\x13productivity_weight\x18\x07 \x01(\x02\x12\x1a\n\x12\x65nergy_cost_weight\x18\x08 \x01(\x02\x12\x1e\n\x16\x63\x61rbon_emission_weight\x18\t \x01(\x02\x12\x1b\n\x13person_productivity\x18\n \x01(\x02\x12\x17\n\x0ftotal_occupancy\x18\x0b \x01(\x02\x12\x14\n\x0creward_scale\x18\x0c \x01(\x02\x12\x14\n\x0creward_shift\x18\r \x01(\x02\x12\x1b\n\x13productivity_regret\x18\x0e \x01(\x02\x12&\n\x1enormalized_productivity_regret\x18\x0f \x01(\x02\x12\x1e\n\x16normalized_energy_cost\x18\x10 \x01(\x02\x12\"\n\x1anormalized_carbon_emission\x18\x11 \x01(\x02\x12\x33\n\x0fstart_timestamp\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rend_timestamp\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestampb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) + + + + +_REWARDINFO_ZONEREWARDINFO = _descriptor.Descriptor( + name='ZoneRewardInfo', + full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='heating_setpoint_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.heating_setpoint_temperature', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cooling_setpoint_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.cooling_setpoint_temperature', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='zone_air_temperature', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.zone_air_temperature', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='air_flow_rate_setpoint', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.air_flow_rate_setpoint', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='air_flow_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.air_flow_rate', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_occupancy', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo.average_occupancy', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=567, + serialized_end=771, +) + +_REWARDINFO_AIRHANDLERREWARDINFO = _descriptor.Descriptor( + name='AirHandlerRewardInfo', + full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='blower_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo.blower_electrical_energy_rate', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='air_conditioning_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo.air_conditioning_electrical_energy_rate', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=773, + serialized_end=883, +) + +_REWARDINFO_BOILERREWARDINFO = _descriptor.Descriptor( + name='BoilerRewardInfo', + full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='natural_gas_heating_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo.natural_gas_heating_energy_rate', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='pump_electrical_energy_rate', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo.pump_electrical_energy_rate', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=885, + serialized_end=981, +) + +_REWARDINFO_ZONEREWARDINFOSENTRY = _descriptor.Descriptor( + name='ZoneRewardInfosEntry', + full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=983, + serialized_end=1101, +) + +_REWARDINFO_AIRHANDLERREWARDINFOSENTRY = _descriptor.Descriptor( + name='AirHandlerRewardInfosEntry', + full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1104, + serialized_end=1234, +) + +_REWARDINFO_BOILERREWARDINFOSENTRY = _descriptor.Descriptor( + name='BoilerRewardInfosEntry', + full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1236, + serialized_end=1358, +) + +_REWARDINFO = _descriptor.Descriptor( + name='RewardInfo', + full_name='smart_buildings.smart_control.proto.RewardInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_timestamp', full_name='smart_buildings.smart_control.proto.RewardInfo.start_timestamp', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_timestamp', full_name='smart_buildings.smart_control.proto.RewardInfo.end_timestamp', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='agent_id', full_name='smart_buildings.smart_control.proto.RewardInfo.agent_id', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='scenario_id', full_name='smart_buildings.smart_control.proto.RewardInfo.scenario_id', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='zone_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.zone_reward_infos', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='air_handler_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.air_handler_reward_infos', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='boiler_reward_infos', full_name='smart_buildings.smart_control.proto.RewardInfo.boiler_reward_infos', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_REWARDINFO_ZONEREWARDINFO, _REWARDINFO_AIRHANDLERREWARDINFO, _REWARDINFO_BOILERREWARDINFO, _REWARDINFO_ZONEREWARDINFOSENTRY, _REWARDINFO_AIRHANDLERREWARDINFOSENTRY, _REWARDINFO_BOILERREWARDINFOSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=101, + serialized_end=1358, +) + + +_REWARDRESPONSE = _descriptor.Descriptor( + name='RewardResponse', + full_name='smart_buildings.smart_control.proto.RewardResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='agent_reward_value', full_name='smart_buildings.smart_control.proto.RewardResponse.agent_reward_value', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='productivity_reward', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_reward', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='electricity_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.electricity_energy_cost', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='natural_gas_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.natural_gas_energy_cost', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='carbon_emitted', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_emitted', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='carbon_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_cost', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='productivity_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_weight', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='energy_cost_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.energy_cost_weight', index=7, + number=8, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='carbon_emission_weight', full_name='smart_buildings.smart_control.proto.RewardResponse.carbon_emission_weight', index=8, + number=9, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='person_productivity', full_name='smart_buildings.smart_control.proto.RewardResponse.person_productivity', index=9, + number=10, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_occupancy', full_name='smart_buildings.smart_control.proto.RewardResponse.total_occupancy', index=10, + number=11, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reward_scale', full_name='smart_buildings.smart_control.proto.RewardResponse.reward_scale', index=11, + number=12, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reward_shift', full_name='smart_buildings.smart_control.proto.RewardResponse.reward_shift', index=12, + number=13, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='productivity_regret', full_name='smart_buildings.smart_control.proto.RewardResponse.productivity_regret', index=13, + number=14, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='normalized_productivity_regret', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_productivity_regret', index=14, + number=15, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='normalized_energy_cost', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_energy_cost', index=15, + number=16, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='normalized_carbon_emission', full_name='smart_buildings.smart_control.proto.RewardResponse.normalized_carbon_emission', index=16, + number=17, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_timestamp', full_name='smart_buildings.smart_control.proto.RewardResponse.start_timestamp', index=17, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_timestamp', full_name='smart_buildings.smart_control.proto.RewardResponse.end_timestamp', index=18, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1361, + serialized_end=1973, +) + +_REWARDINFO_ZONEREWARDINFO.containing_type = _REWARDINFO +_REWARDINFO_AIRHANDLERREWARDINFO.containing_type = _REWARDINFO +_REWARDINFO_BOILERREWARDINFO.containing_type = _REWARDINFO +_REWARDINFO_ZONEREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_ZONEREWARDINFO +_REWARDINFO_ZONEREWARDINFOSENTRY.containing_type = _REWARDINFO +_REWARDINFO_AIRHANDLERREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_AIRHANDLERREWARDINFO +_REWARDINFO_AIRHANDLERREWARDINFOSENTRY.containing_type = _REWARDINFO +_REWARDINFO_BOILERREWARDINFOSENTRY.fields_by_name['value'].message_type = _REWARDINFO_BOILERREWARDINFO +_REWARDINFO_BOILERREWARDINFOSENTRY.containing_type = _REWARDINFO +_REWARDINFO.fields_by_name['start_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_REWARDINFO.fields_by_name['end_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_REWARDINFO.fields_by_name['zone_reward_infos'].message_type = _REWARDINFO_ZONEREWARDINFOSENTRY +_REWARDINFO.fields_by_name['air_handler_reward_infos'].message_type = _REWARDINFO_AIRHANDLERREWARDINFOSENTRY +_REWARDINFO.fields_by_name['boiler_reward_infos'].message_type = _REWARDINFO_BOILERREWARDINFOSENTRY +_REWARDRESPONSE.fields_by_name['start_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_REWARDRESPONSE.fields_by_name['end_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +DESCRIPTOR.message_types_by_name['RewardInfo'] = _REWARDINFO +DESCRIPTOR.message_types_by_name['RewardResponse'] = _REWARDRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RewardInfo = _reflection.GeneratedProtocolMessageType('RewardInfo', (_message.Message,), { + + 'ZoneRewardInfo' : _reflection.GeneratedProtocolMessageType('ZoneRewardInfo', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_ZONEREWARDINFO, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfo) + }) + , + + 'AirHandlerRewardInfo' : _reflection.GeneratedProtocolMessageType('AirHandlerRewardInfo', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_AIRHANDLERREWARDINFO, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfo) + }) + , + + 'BoilerRewardInfo' : _reflection.GeneratedProtocolMessageType('BoilerRewardInfo', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_BOILERREWARDINFO, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfo) + }) + , + + 'ZoneRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('ZoneRewardInfosEntry', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_ZONEREWARDINFOSENTRY, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.ZoneRewardInfosEntry) + }) + , + + 'AirHandlerRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('AirHandlerRewardInfosEntry', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_AIRHANDLERREWARDINFOSENTRY, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.AirHandlerRewardInfosEntry) + }) + , + + 'BoilerRewardInfosEntry' : _reflection.GeneratedProtocolMessageType('BoilerRewardInfosEntry', (_message.Message,), { + 'DESCRIPTOR' : _REWARDINFO_BOILERREWARDINFOSENTRY, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo.BoilerRewardInfosEntry) + }) + , + 'DESCRIPTOR' : _REWARDINFO, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardInfo) + }) +_sym_db.RegisterMessage(RewardInfo) +_sym_db.RegisterMessage(RewardInfo.ZoneRewardInfo) +_sym_db.RegisterMessage(RewardInfo.AirHandlerRewardInfo) +_sym_db.RegisterMessage(RewardInfo.BoilerRewardInfo) +_sym_db.RegisterMessage(RewardInfo.ZoneRewardInfosEntry) +_sym_db.RegisterMessage(RewardInfo.AirHandlerRewardInfosEntry) +_sym_db.RegisterMessage(RewardInfo.BoilerRewardInfosEntry) + +RewardResponse = _reflection.GeneratedProtocolMessageType('RewardResponse', (_message.Message,), { + 'DESCRIPTOR' : _REWARDRESPONSE, + '__module__' : 'smart_control_reward_pb2' + # @@protoc_insertion_point(class_scope:smart_buildings.smart_control.proto.RewardResponse) + }) +_sym_db.RegisterMessage(RewardResponse) + + +_REWARDINFO_ZONEREWARDINFOSENTRY._options = None +_REWARDINFO_AIRHANDLERREWARDINFOSENTRY._options = None +_REWARDINFO_BOILERREWARDINFOSENTRY._options = None # @@protoc_insertion_point(module_scope) From 38bce7b7dbd48cfb335cc53a5b08d19fe382af6a Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 5 Jun 2025 21:18:46 -0400 Subject: [PATCH 04/30] Update docs --- docs/setup.md | 10 ++++++++ docs/setup/docker.md | 58 +++++++++++++++++++++++++++++++++++++++++--- docs/setup/linux.md | 9 ------- docs/setup/mac.md | 9 ------- 4 files changed, 64 insertions(+), 22 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index 4ba030e3..a8d45323 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -7,11 +7,21 @@ development. This project requires the following dependencies: +- Git - [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (v 3.21.12) - [FFmpeg](https://ffmpeg.org/) (v 7.1.1) - Python (>=3.10.12 and \<3.12) and a Python Virtual Environment +## Repository Setup + +Clone the repository, for example using an SSH approach: + +```sh +git clone git@github.com:google/sbsim.git +cd sbsim/ +``` + ## System-specific Setup By default, we use Linux OS for development. However it is also possible to diff --git a/docs/setup/docker.md b/docs/setup/docker.md index 20a4e945..16b1a06b 100644 --- a/docs/setup/docker.md +++ b/docs/setup/docker.md @@ -3,19 +3,69 @@ To get the repository set up on non-Linux environments, you can use the pre-configured Docker environment ("Linux/amd64") specified by the "Dockerfile". +## Installing Docker + First, install -[Docker Desktop](https://www.docker.com/products/docker-desktop/). +[Docker Desktop](https://www.docker.com/products/docker-desktop/), and accept +the terms. + +Open Docker Desktop, and wait until it is running before proceeding. + +Verify the installation: + +```sh +docker --version + +docker run hello-world +``` + +### Troubleshooting Installation Issues on Mac + +On Mac, if verification fails, try: + +```sh +/Applications/Docker.app/Contents/Resources/bin/docker --version +``` + +If that works, as a one time setup step, update the ".zshrc" file to add the +installed location to the path: + +```sh +# this is the "~/.zshrc" file... +export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH" +``` + +Remember to restart your shell afterwards: + +```sh +source ~/.zshrc +``` + +Now you should be able to verify the installation: + +```sh +docker --version + +docker run hello-world +``` + +## Building the Image + +Ensure you have navigated to the root directory of the repository, where the +"Dockerfile" is located, before proceeding. Build the image: ```bash -docker build -t sbsim-env . +docker build -t sbsim-docker-env . ``` +## Container Operations + Run the container, in interactive mode, with open ports: ```bash -docker run -it -p 8888:8888 -v $(pwd):/workspace sbsim-env +docker run -it -p 8888:8888 -v $(pwd):/workspace sbsim-docker-env ``` > NOTE: the container will copy the repository into "/workspace/sbsim" on the @@ -43,7 +93,7 @@ pytest To stop the container: ```sh -docker stop sbsim-env +docker stop sbsim-docker-env ``` > NOTE: in the future we would like to further update these instructions and diff --git a/docs/setup/linux.md b/docs/setup/linux.md index ed9c943e..dad5651e 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -2,15 +2,6 @@ This guide helps you get the project setup on Linux OS. -## Repository Setup - -Clone the repository, for example using an SSH approach: - -```sh -git clone git@github.com:google/sbsim.git -cd sbsim/ -``` - ## System Package Installation Install Linux package dependencies: diff --git a/docs/setup/mac.md b/docs/setup/mac.md index ff840345..0466107a 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -2,15 +2,6 @@ This guide helps you get the project setup on Mac OS. -## Repository Setup - -Clone the repository, for example using an SSH approach: - -```sh -git clone git@github.com:google/sbsim.git -cd sbsim/ -``` - ## System Package Installation First install [Homebrew](https://brew.sh/) (i.e. `brew`). From 3507dd7baf03b0303036a73db7d8e142353aef5b Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 5 Jun 2025 21:29:02 -0400 Subject: [PATCH 05/30] Get closer with Docker but jupyter is not working --- .pre-commit-config.yaml | 1 + .vscode/settings.json | 4 ++++ Dockerfile | 2 +- docs/setup/docker.md | 29 +++++++++++++++++++++++++++-- pyproject.toml | 1 + 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4818e9c9..695a9804 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,6 +9,7 @@ repos: language: system types: [file, python] files: '^smart_control/' + exclude: '^smart_control/Dockerfile' - id: isort name: isort diff --git a/.vscode/settings.json b/.vscode/settings.json index 110f6ff2..37ab6e1c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,4 +24,8 @@ // using pyink instead of black: ".venv/bin/pyink" ], + "[dockerfile]": { + "editor.formatOnSave": false, + "editor.defaultFormatter": null + } } diff --git a/Dockerfile b/Dockerfile index b96355b5..5ba19fb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,7 +58,7 @@ RUN /opt/venv/bin/pip install \ # Install dependencies from the temporary location RUN cd /tmp/sbsim && \ - poetry lock --no-update && \ + poetry lock && \ poetry install --no-root # Build .proto files diff --git a/docs/setup/docker.md b/docs/setup/docker.md index 16b1a06b..a723adb9 100644 --- a/docs/setup/docker.md +++ b/docs/setup/docker.md @@ -49,7 +49,7 @@ docker --version docker run hello-world ``` -## Building the Image +## Image Operations Ensure you have navigated to the root directory of the repository, where the "Dockerfile" is located, before proceeding. @@ -60,9 +60,22 @@ Build the image: docker build -t sbsim-docker-env . ``` +Listing images: + +```sh +docker images +``` + +Removing the image, as necessary: + +```sh +docker rmi sbsim-docker-env +``` + ## Container Operations -Run the container, in interactive mode, with open ports: +After the image is built, run the container (in interactive mode, with open +ports): ```bash docker run -it -p 8888:8888 -v $(pwd):/workspace sbsim-docker-env @@ -96,6 +109,18 @@ To stop the container: docker stop sbsim-docker-env ``` +Listing containers (to get their identifiers): + +```sh +docker ps -a +``` + +Removing a container: + +```sh +docker rm +``` + > NOTE: in the future we would like to further update these instructions and > improve the Dockerfile. See > [issue #80](https://github.com/google/sbsim/issues/80) (contributions diff --git a/pyproject.toml b/pyproject.toml index 2cacc9a4..2a2a78d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,6 +66,7 @@ force-exclude = ''' ( /.*_pb2\.py | /BUILD$ + | /Dockerfile$ ) ''' From 74b64649a9811355120aca8ceba1134b082055e8 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:02:14 -0400 Subject: [PATCH 06/30] Test on mac and linux. Let's see a failure --- .github/workflows/build.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 34df2c81..feb3f6b0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,11 +14,12 @@ on: jobs: test: - runs-on: ubuntu-latest # Use an Ubuntu runner for the job - strategy: matrix: - python-version: [3.10.12, 3.10.15, 3.11] # Python versions to test + os: [ubuntu-latest, macos-latest] + python-version: [3.10, 3.11, 3.12] # Python versions to test + + runs-on: ${{ matrix.os }} steps: - name: Checkout code From e35f3aab79b70e39599aafbd82f4158ce9da1bef Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:10:42 -0400 Subject: [PATCH 07/30] Fix workflow setup --- .github/workflows/build.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index feb3f6b0..7b68aa57 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,23 +17,23 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: [3.10, 3.11, 3.12] # Python versions to test + python-version: ['3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} steps: - name: Checkout code - uses: actions/checkout@v4 # Checks out the repository's code + uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: - python-version: ${{ matrix.python-version }} # Use Python version from the matrix + python-version: ${{ matrix.python-version }} - name: Install system dependencies run: | sudo apt update - sudo apt install -y protobuf-compiler ffmpeg # Install both protobuf and ffmpeg in one step + sudo apt install -y protobuf-compiler ffmpeg - name: Install Python dependencies run: | @@ -50,8 +50,7 @@ jobs: - name: Run the Python import sorter run: | - source .venv/bin/activate - isort . + poetry run isort . - name: Run the Python style checker run: | From cb0497469c8a92a4951522cc522fbee5e98586d5 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:19:31 -0400 Subject: [PATCH 08/30] Install os-specific system dependencies on CI --- .github/workflows/build.yaml | 11 +++++++++-- docs/setup/linux.md | 2 +- docs/setup/mac.md | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7b68aa57..517a7faa 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -30,17 +30,24 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install system dependencies + - name: Install system dependencies (on Linux) + if: runner.os == 'Linux' run: | sudo apt update sudo apt install -y protobuf-compiler ffmpeg + - name: Install system dependencies (on Mac) + if: runner.os == 'macOS' + run: | + brew update + brew install protobuf@21 ffmpeg + - name: Install Python dependencies run: | python -m pip install --upgrade pip python -m venv .venv source .venv/bin/activate - pip install poetry + pip install poetry==2.1.2 poetry install --with dev - name: Run the Python formatter diff --git a/docs/setup/linux.md b/docs/setup/linux.md index dad5651e..0b97d730 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -78,7 +78,7 @@ configure Python package dependencies. Install poetry: ```sh -pip install poetry +pip install poetry==2.1.2 ``` You may need to specify a Python version that is compatible with this project diff --git a/docs/setup/mac.md b/docs/setup/mac.md index 0466107a..b9169665 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -80,7 +80,7 @@ configure Python package dependencies. Install poetry: ```sh -pip install poetry +pip install poetry==2.1.2 ``` Use poetry to install dependencies, including development dependencies: From 444204f31f0ffd6940b7eed1673d23241be47bb1 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:22:16 -0400 Subject: [PATCH 09/30] Don't try to support 3.12 yet --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 517a7faa..bde68891 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,7 +17,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.10', '3.11'] runs-on: ${{ matrix.os }} From adb65984d4e6d255c04f5d562dc8133e2e5fa5c6 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:39:07 -0400 Subject: [PATCH 10/30] Fix dm-reverb installation on Mac --- poetry.lock | 473 +++++++++++++++++++++++++------------------------ pyproject.toml | 7 +- 2 files changed, 247 insertions(+), 233 deletions(-) diff --git a/poetry.lock b/poetry.lock index 406a88c0..6d7e2bb1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -50,25 +50,19 @@ files = [ [[package]] name = "argon2-cffi" -version = "23.1.0" +version = "25.1.0" description = "Argon2 for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["notebooks"] files = [ - {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, - {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, + {file = "argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741"}, + {file = "argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1"}, ] [package.dependencies] argon2-cffi-bindings = "*" -[package.extras] -dev = ["argon2-cffi[tests,typing]", "tox (>4)"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] -tests = ["hypothesis", "pytest"] -typing = ["mypy"] - [[package]] name = "argon2-cffi-bindings" version = "21.2.0" @@ -809,6 +803,7 @@ description = "Reverb is an efficient and easy-to-use data storage and transport optional = false python-versions = ">=3" groups = ["main"] +markers = "sys_platform == \"linux\"" files = [ {file = "dm_reverb-0.14.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:1388aea4a58117d2d93d35078d249728f580c3d3295d1c0fcfa9b41c6874f931"}, {file = "dm_reverb-0.14.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a670622248e98b800dc410fac9dab907e38154c306c3be8cf3b4ede54fcb48c6"}, @@ -822,6 +817,26 @@ portpicker = "*" [package.extras] tensorflow = ["tensorflow (>=2.15.0,<2.16.0)"] +[[package]] +name = "dm-reverb-macos" +version = "0.11.0.dev0" +description = "Reverb is an efficient and easy-to-use data storage and transport system designed for machine learning research." +optional = false +python-versions = ">=3" +groups = ["main"] +markers = "sys_platform == \"darwin\"" +files = [ + {file = "dm-reverb-macos-0.11.0.dev0.tar.gz", hash = "sha256:75ce80a4f3fa4ad083aaf5d6875a9fa8cc53ae10daaa33d8c0e6cc3c98ed8918"}, + {file = "dm_reverb_macos-0.11.0.dev0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d4fa0ca15ae86fe922566de782c5eb7ba0afb0c557459d79cf9b0b4d29c9326e"}, +] + +[package.dependencies] +dm-tree = "*" +portpicker = "*" + +[package.extras] +tensorflow = ["tensorflow (>=2.12.0,<2.13.0)"] + [[package]] name = "dm-tree" version = "0.1.9" @@ -977,54 +992,54 @@ test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"] [[package]] name = "fonttools" -version = "4.58.1" +version = "4.58.2" description = "Tools to manipulate font files" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "fonttools-4.58.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ebd423034ac4f74196c1ae29f8ed3b862f820345acbf35600af8596ebf62573"}, - {file = "fonttools-4.58.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9dc36f4b4044d95e6fb358da4c3e6a5c07c9b6f4c1e8c396e89bee3b65dae902"}, - {file = "fonttools-4.58.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc4b74d7bb84189fe264d56a544ac5c818f8f1e8141856746768691fe185b229"}, - {file = "fonttools-4.58.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa4fa41e9cb43f78881a5896d6e41b6a0ec54e9d68e7eaaff6d7a1769b17017"}, - {file = "fonttools-4.58.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:91335202f19c9edc04f2f6a7d9bb269b0a435d7de771e3f33c3ea9f87f19c8d4"}, - {file = "fonttools-4.58.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e6b0ec2171e811a0d9e467225dc06b0fac39a84b4704f263c2d538c3c67b99b2"}, - {file = "fonttools-4.58.1-cp310-cp310-win32.whl", hash = "sha256:a788983d522d02a9b457cc98aa60fc631dabae352fb3b30a56200890cd338ca0"}, - {file = "fonttools-4.58.1-cp310-cp310-win_amd64.whl", hash = "sha256:c8c848a2d5961d277b85ac339480cecea90599059f72a42047ced25431e8b72a"}, - {file = "fonttools-4.58.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9966e14729669bcfbb56f83b747a2397c4d97c6d4798cb2e2adc28f9388fa008"}, - {file = "fonttools-4.58.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64cc1647bbe83dea57f5496ec878ad19ccdba7185b0dd34955d3e6f03dc789e6"}, - {file = "fonttools-4.58.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464f790ce681d08d1583df0735776aa9cb1999594bf336ddd0bf962c17b629ac"}, - {file = "fonttools-4.58.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c53c6a720ee70cc25746d511ba88c45c95ec510fd258026ed209b0b9e3ba92f"}, - {file = "fonttools-4.58.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6823a633bbce29cf3033508ebb54a433c473fb9833eff7f936bfdc5204fd98d"}, - {file = "fonttools-4.58.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5701fe66a1408c1974d2f78c00f964f8aad17cccbc32bc041e1b81421f31f448"}, - {file = "fonttools-4.58.1-cp311-cp311-win32.whl", hash = "sha256:4cad2c74adf9ee31ae43be6b0b376fdb386d4d50c60979790e32c3548efec051"}, - {file = "fonttools-4.58.1-cp311-cp311-win_amd64.whl", hash = "sha256:7ade12485abccb0f6b6a6e2a88c50e587ff0e201e48e0153dd9b2e0ed67a2f38"}, - {file = "fonttools-4.58.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f56085a65769dc0100822c814069327541db9c3c4f21e599c6138f9dbda75e96"}, - {file = "fonttools-4.58.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:19c65a88e522c9f1be0c05d73541de20feada99d23d06e9b5354023cc3e517b0"}, - {file = "fonttools-4.58.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b01bb37006e97703300bfde7a73d1c7038574dd1df9d8d92ca99af151becf2ca"}, - {file = "fonttools-4.58.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d629dea240f0fc826d8bb14566e95c663214eece21b5932c9228d3e8907f55aa"}, - {file = "fonttools-4.58.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ef0b33ff35421a04a638e736823c2dee9d200cdd275cfdb43e875ca745150aae"}, - {file = "fonttools-4.58.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4db9399ee633855c718fe8bea5eecbdc5bf3fdbed2648e50f67f8946b943ed1c"}, - {file = "fonttools-4.58.1-cp312-cp312-win32.whl", hash = "sha256:5cf04c4f73d36b30ea1cff091a7a9e65f8d5b08345b950f82679034e9f7573f4"}, - {file = "fonttools-4.58.1-cp312-cp312-win_amd64.whl", hash = "sha256:4a3841b59c67fa1f739542b05211609c453cec5d11d21f863dd2652d5a81ec9b"}, - {file = "fonttools-4.58.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:68379d1599fc59569956a97eb7b07e0413f76142ac8513fa24c9f2c03970543a"}, - {file = "fonttools-4.58.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8631905657de4f9a7ae1e12186c1ed20ba4d6168c2d593b9e0bd2908061d341b"}, - {file = "fonttools-4.58.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2ecea7289061c2c71468723409a8dd6e70d1ecfce6bc7686e5a74b9ce9154fe"}, - {file = "fonttools-4.58.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b8860f8cd48b345bd1df1d7be650f600f69ee971ffe338c5bd5bcb6bdb3b92c"}, - {file = "fonttools-4.58.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7c9a0acdefcb8d7ccd7c59202056166c400e797047009ecb299b75ab950c2a9c"}, - {file = "fonttools-4.58.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1fac0be6be3e4309058e156948cb73196e5fd994268b89b5e3f5a26ee2b582"}, - {file = "fonttools-4.58.1-cp313-cp313-win32.whl", hash = "sha256:aed7f93a9a072f0ce6fb46aad9474824ac6dd9c7c38a72f8295dd14f2215950f"}, - {file = "fonttools-4.58.1-cp313-cp313-win_amd64.whl", hash = "sha256:b27d69c97c20c9bca807f7ae7fc7df459eb62994859ff6a2a489e420634deac3"}, - {file = "fonttools-4.58.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:927762f9fe39ea0a4d9116353251f409389a6b58fab58717d3c3377acfc23452"}, - {file = "fonttools-4.58.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:761ac80efcb7333c71760458c23f728d6fe2dff253b649faf52471fd7aebe584"}, - {file = "fonttools-4.58.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deef910226f788a4e72aa0fc1c1657fb43fa62a4200b883edffdb1392b03fe86"}, - {file = "fonttools-4.58.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2859ca2319454df8c26af6693269b21f2e9c0e46df126be916a4f6d85fc75"}, - {file = "fonttools-4.58.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:418927e888e1bcc976b4e190a562f110dc27b0b5cac18033286f805dc137fc66"}, - {file = "fonttools-4.58.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a907007a8b341e8e129d3994d34d1cc85bc8bf38b3a0be65eb14e4668f634a21"}, - {file = "fonttools-4.58.1-cp39-cp39-win32.whl", hash = "sha256:455cb6adc9f3419273925fadc51a6207046e147ce503797b29895ba6bdf85762"}, - {file = "fonttools-4.58.1-cp39-cp39-win_amd64.whl", hash = "sha256:2e64931258866df187bd597b4e9fff488f059a0bc230fbae434f0f112de3ce46"}, - {file = "fonttools-4.58.1-py3-none-any.whl", hash = "sha256:db88365d0962cd6f5bce54b190a4669aeed9c9941aa7bd60a5af084d8d9173d6"}, - {file = "fonttools-4.58.1.tar.gz", hash = "sha256:cbc8868e0a29c3e22628dfa1432adf7a104d86d1bc661cecc3e9173070b6ab2d"}, + {file = "fonttools-4.58.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4baaf34f07013ba9c2c3d7a95d0c391fcbb30748cb86c36c094fab8f168e49bb"}, + {file = "fonttools-4.58.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e26e4a4920d57f04bb2c3b6e9a68b099c7ef2d70881d4fee527896fa4f7b5aa"}, + {file = "fonttools-4.58.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0bb956d9d01ea51368415515f664f58abf96557ba3c1aae4e26948ae7c86f29"}, + {file = "fonttools-4.58.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40af8493c80ec17a1133ef429d42f1a97258dd9213b917daae9d8cafa6e0e6c"}, + {file = "fonttools-4.58.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:60b5cde1c76f6ded198da5608dddb1ee197faad7d2f0f6d3348ca0cda0c756c4"}, + {file = "fonttools-4.58.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f8df6dc80ecc9033ca25a944ee5db7564fecca28e96383043fd92d9df861a159"}, + {file = "fonttools-4.58.2-cp310-cp310-win32.whl", hash = "sha256:25728e980f5fbb67f52c5311b90fae4aaec08c3d3b78dce78ab564784df1129c"}, + {file = "fonttools-4.58.2-cp310-cp310-win_amd64.whl", hash = "sha256:d6997ee7c2909a904802faf44b0d0208797c4d751f7611836011ace165308165"}, + {file = "fonttools-4.58.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:024faaf20811296fd2f83ebdac7682276362e726ed5fea4062480dd36aff2fd9"}, + {file = "fonttools-4.58.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2faec6e7f2abd80cd9f2392dfa28c02cfd5b1125be966ea6eddd6ca684deaa40"}, + {file = "fonttools-4.58.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520792629a938c14dd7fe185794b156cfc159c609d07b31bbb5f51af8dc7918a"}, + {file = "fonttools-4.58.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12fbc6e0bf0c75ce475ef170f2c065be6abc9e06ad19a13b56b02ec2acf02427"}, + {file = "fonttools-4.58.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:44a39cf856d52109127d55576c7ec010206a8ba510161a7705021f70d1649831"}, + {file = "fonttools-4.58.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5390a67c55a835ad5a420da15b3d88b75412cbbd74450cb78c4916b0bd7f0a34"}, + {file = "fonttools-4.58.2-cp311-cp311-win32.whl", hash = "sha256:f7e10f4e7160bcf6a240d7560e9e299e8cb585baed96f6a616cef51180bf56cb"}, + {file = "fonttools-4.58.2-cp311-cp311-win_amd64.whl", hash = "sha256:29bdf52bfafdae362570d3f0d3119a3b10982e1ef8cb3a9d3ebb72da81cb8d5e"}, + {file = "fonttools-4.58.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c6eeaed9c54c1d33c1db928eb92b4e180c7cb93b50b1ee3e79b2395cb01f25e9"}, + {file = "fonttools-4.58.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbe1d9c72b7f981bed5c2a61443d5e3127c1b3aca28ca76386d1ad93268a803f"}, + {file = "fonttools-4.58.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85babe5b3ce2cbe57fc0d09c0ee92bbd4d594fd7ea46a65eb43510a74a4ce773"}, + {file = "fonttools-4.58.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:918a2854537fcdc662938057ad58b633bc9e0698f04a2f4894258213283a7932"}, + {file = "fonttools-4.58.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b379cf05bf776c336a0205632596b1c7d7ab5f7135e3935f2ca2a0596d2d092"}, + {file = "fonttools-4.58.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99ab3547a15a5d168c265e139e21756bbae1de04782ac9445c9ef61b8c0a32ce"}, + {file = "fonttools-4.58.2-cp312-cp312-win32.whl", hash = "sha256:6764e7a3188ce36eea37b477cdeca602ae62e63ae9fc768ebc176518072deb04"}, + {file = "fonttools-4.58.2-cp312-cp312-win_amd64.whl", hash = "sha256:41f02182a1d41b79bae93c1551855146868b04ec3e7f9c57d6fef41a124e6b29"}, + {file = "fonttools-4.58.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:829048ef29dbefec35d95cc6811014720371c95bdc6ceb0afd2f8e407c41697c"}, + {file = "fonttools-4.58.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:64998c5993431e45b474ed5f579f18555f45309dd1cf8008b594d2fe0a94be59"}, + {file = "fonttools-4.58.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b887a1cf9fbcb920980460ee4a489c8aba7e81341f6cdaeefa08c0ab6529591c"}, + {file = "fonttools-4.58.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27d74b9f6970cefbcda33609a3bee1618e5e57176c8b972134c4e22461b9c791"}, + {file = "fonttools-4.58.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec26784610056a770e15a60f9920cee26ae10d44d1e43271ea652dadf4e7a236"}, + {file = "fonttools-4.58.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ed0a71d57dd427c0fb89febd08cac9b925284d2a8888e982a6c04714b82698d7"}, + {file = "fonttools-4.58.2-cp313-cp313-win32.whl", hash = "sha256:994e362b01460aa863ef0cb41a29880bc1a498c546952df465deff7abf75587a"}, + {file = "fonttools-4.58.2-cp313-cp313-win_amd64.whl", hash = "sha256:f95dec862d7c395f2d4efe0535d9bdaf1e3811e51b86432fa2a77e73f8195756"}, + {file = "fonttools-4.58.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f6ca4337e37d287535fd0089b4520cedc5666023fe4176a74e3415f917b570"}, + {file = "fonttools-4.58.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b269c7a783ec3be40809dc0dc536230a3d2d2c08e3fb9538d4e0213872b1a762"}, + {file = "fonttools-4.58.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1902d9b2b84cc9485663f1a72882890cd240f4464e8443af93faa34b095a4444"}, + {file = "fonttools-4.58.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a94a00ffacbb044729c6a5b29e02bf6f0e80681e9275cd374a1d25db3061328"}, + {file = "fonttools-4.58.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:25d22628f8b6b49b78666415f7cfa60c88138c24d66f3e5818d09ca001810cc5"}, + {file = "fonttools-4.58.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4bacb925a045e964a44bdeb9790b8778ce659605c7a2a39ef4f12e06c323406b"}, + {file = "fonttools-4.58.2-cp39-cp39-win32.whl", hash = "sha256:eb4bc19a3ab45d2b4bb8f4f7c60e55bec53016e402af0b6ff4ef0c0129193671"}, + {file = "fonttools-4.58.2-cp39-cp39-win_amd64.whl", hash = "sha256:c8d16973f8ab02a5a960afe1cae4db72220ef628bf397499aba8e3caa0c10e33"}, + {file = "fonttools-4.58.2-py3-none-any.whl", hash = "sha256:84f4b0bcfa046254a65ee7117094b4907e22dc98097a220ef108030eb3c15596"}, + {file = "fonttools-4.58.2.tar.gz", hash = "sha256:4b491ddbfd50b856e84b0648b5f7941af918f6d32f938f18e62b58426a8d50e2"}, ] [package.extras] @@ -1105,14 +1120,14 @@ torch = ["torch (>=1.3.0)"] [[package]] name = "google-auth" -version = "2.40.2" +version = "2.40.3" description = "Google Authentication Library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b"}, - {file = "google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58"}, + {file = "google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca"}, + {file = "google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77"}, ] [package.dependencies] @@ -1194,67 +1209,67 @@ colorama = ">=0.4" [[package]] name = "grpcio" -version = "1.72.1" +version = "1.73.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "grpcio-1.72.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:ce2706ff37be7a6de68fbc4c3f8dde247cab48cc70fee5fedfbc9cd923b4ee5a"}, - {file = "grpcio-1.72.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7db9e15ee7618fbea748176a67d347f3100fa92d36acccd0e7eeb741bc82f72a"}, - {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:8d6e7764181ba4a8b74aa78c98a89c9f3441068ebcee5d6f14c44578214e0be3"}, - {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:237bb619ba33594006025e6f114f62e60d9563afd6f8e89633ee384868e26687"}, - {file = "grpcio-1.72.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7f1d8a442fd242aa432c8e1b8411c79ebc409dad2c637614d726e226ce9ed0c"}, - {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f2359bd4bba85bf94fd9ab8802671b9637a6803bb673d221157a11523a52e6a8"}, - {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3269cfca37570a420a57a785f2a5d4234c5b12aced55f8843dafced2d3f8c9a6"}, - {file = "grpcio-1.72.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:06c023d86398714d6257194c21f2bc0b58a53ce45cee87dd3c54c7932c590e17"}, - {file = "grpcio-1.72.1-cp310-cp310-win32.whl", hash = "sha256:06dbe54eeea5f9dfb3e7ca2ff66c715ff5fc96b07a1feb322122fe14cb42f6aa"}, - {file = "grpcio-1.72.1-cp310-cp310-win_amd64.whl", hash = "sha256:ba593aa2cd52f4468ba29668c83f893d88c128198d6b1273ca788ef53e3ae5fe"}, - {file = "grpcio-1.72.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:4e112c083f90c330b0eaa78a633fb206d49c20c443926e827f8cac9eb9d2ea32"}, - {file = "grpcio-1.72.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c6f7e3275832adab7384193f78b8c1a98b82541562fa08d7244e8a6b4b5c78a4"}, - {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:dd03c8847c47ef7ac5455aafdfb5e553ecf84f228282bd6106762b379f27c25c"}, - {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7497dbdf220b88b66004e2630fb2b1627df5e279db970d3cc20f70d39dce978d"}, - {file = "grpcio-1.72.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2cde3ae8ae901317c049394ed8d3c6964de6b814ae65fc68636a7337b63aa"}, - {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7a66cef4bc1db81a54108a849e95650da640c9bc1901957bf7d3b1eeb3251ee8"}, - {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fc0435ad45d540597f78978e3fd5515b448193f51f9065fb67dda566336e0f5f"}, - {file = "grpcio-1.72.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:524bad78d610fa1f9f316d47b3aab1ff89d438ba952ee34e3e335ca80a27ba96"}, - {file = "grpcio-1.72.1-cp311-cp311-win32.whl", hash = "sha256:409ee0abf7e74bbf88941046142452cf3d1f3863d34e11e8fd2b07375170c730"}, - {file = "grpcio-1.72.1-cp311-cp311-win_amd64.whl", hash = "sha256:ea483e408fac55569c11158c3e6d6d6a8c3b0f798b68f1c10db9b22c5996e19b"}, - {file = "grpcio-1.72.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:65a5ef28e5852bd281c6d01a923906e8036736e95e370acab8626fcbec041e67"}, - {file = "grpcio-1.72.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:9e5c594a6c779d674204fb9bdaa1e7b71666ff10b34a62e7769fc6868b5d7511"}, - {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:d324f4bdb990d852d79b38c59a12d24fcd47cf3b1a38f2e4d2b6d0b1031bc818"}, - {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:841db55dd29cf2f4121b853b2f89813a1b6175163fbb92c5945fb1b0ca259ef2"}, - {file = "grpcio-1.72.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00da930aa2711b955a538e835096aa365a4b7f2701bdc2ce1febb242a103f8a1"}, - {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4b657773480267fbb7ad733fa85abc103c52ab62e5bc97791faf82c53836eefc"}, - {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a08b483f17a6abca2578283a7ae3aa8d4d90347242b0de2898bdb27395c3f20b"}, - {file = "grpcio-1.72.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:299f3ea4e03c1d0548f4a174b48d612412f92c667f2100e30a079ab76fdaa813"}, - {file = "grpcio-1.72.1-cp312-cp312-win32.whl", hash = "sha256:addc721a3708ff789da1bf69876018dc730c1ec9d3d3cb6912776a00c535a5bc"}, - {file = "grpcio-1.72.1-cp312-cp312-win_amd64.whl", hash = "sha256:22ea2aa92a60dff231ba5fcd7f0220a33c2218e556009996f858eeafe294d1c2"}, - {file = "grpcio-1.72.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:294be6e9c323a197434569a41e0fb5b5aa0962fd5d55a3dc890ec5df985f611a"}, - {file = "grpcio-1.72.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:41ec164dac8df2862f67457d9cdf8d8f8b6a4ca475a3ed1ba6547fff98d93717"}, - {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:761736f75c6ddea3732d97eaabe70c616271f5f542a8be95515135fdd1a638f6"}, - {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:082003cb93618964c111c70d69b60ac0dc6566d4c254c9b2a775faa2965ba8f8"}, - {file = "grpcio-1.72.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8660f736da75424949c14f7c8b1ac60a25b2f37cabdec95181834b405373e8a7"}, - {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2ada1abe2ad122b42407b2bfd79d6706a4940d4797f44bd740f5c98ca1ecda9b"}, - {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:0db2766d0c482ee740abbe7d00a06cc4fb54f7e5a24d3cf27c3352be18a2b1e8"}, - {file = "grpcio-1.72.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4bdb404d9c2187260b34e2b22783c204fba8a9023a166cf77376190d9cf5a08"}, - {file = "grpcio-1.72.1-cp313-cp313-win32.whl", hash = "sha256:bb64722c3124c906a5b66e50a90fd36442642f653ba88a24f67d08e94bca59f3"}, - {file = "grpcio-1.72.1-cp313-cp313-win_amd64.whl", hash = "sha256:329cc6ff5b431df9614340d3825b066a1ff0a5809a01ba2e976ef48c65a0490b"}, - {file = "grpcio-1.72.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:8941b83addd503c1982090b4631804d0ff1edbbc6c85c9c20ed503b1dc65fef9"}, - {file = "grpcio-1.72.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:d29b80290c5eda561a4c291d6d5b4315a2a5095ab37061118d6e0781858aca0a"}, - {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:4ca56d955564db749c9c6d75e9c4c777854e22b2482d247fb6c5a02d5f28ea78"}, - {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b08a3ef14d2b01eef13882c6d3a2d8fb5fcd73db81bd1e3ab69d4ee75215433a"}, - {file = "grpcio-1.72.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd7df49801b3b323e4a21047979e3834cd286b32ee5ceee46f5217826274721f"}, - {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9717617ba2ff65c058ef53b0d5e50f03e8350f0c5597f93bb5c980a31db990c8"}, - {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:212db80b1e8aa7792d51269bfb32164e2333a9bb273370ace3ed2a378505cb01"}, - {file = "grpcio-1.72.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a0d19947d4480af5f363f077f221e665931f479e2604280ac4eafe6daa71f77"}, - {file = "grpcio-1.72.1-cp39-cp39-win32.whl", hash = "sha256:7622ef647dc911ed010a817d9be501df4ae83495b8e5cdd35b555bdcf3880a3e"}, - {file = "grpcio-1.72.1-cp39-cp39-win_amd64.whl", hash = "sha256:f8d8fa7cd2a7f1b4207e215dec8bc07f1202682d9a216ebe028185c15faece30"}, - {file = "grpcio-1.72.1.tar.gz", hash = "sha256:87f62c94a40947cec1a0f91f95f5ba0aa8f799f23a1d42ae5be667b6b27b959c"}, + {file = "grpcio-1.73.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d050197eeed50f858ef6c51ab09514856f957dba7b1f7812698260fc9cc417f6"}, + {file = "grpcio-1.73.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ebb8d5f4b0200916fb292a964a4d41210de92aba9007e33d8551d85800ea16cb"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c0811331b469e3f15dda5f90ab71bcd9681189a83944fd6dc908e2c9249041ef"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12787c791c3993d0ea1cc8bf90393647e9a586066b3b322949365d2772ba965b"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c17771e884fddf152f2a0df12478e8d02853e5b602a10a9a9f1f52fa02b1d32"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:275e23d4c428c26b51857bbd95fcb8e528783597207ec592571e4372b300a29f"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9ffc972b530bf73ef0f948f799482a1bf12d9b6f33406a8e6387c0ca2098a833"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d269df64aff092b2cec5e015d8ae09c7e90888b5c35c24fdca719a2c9f35"}, + {file = "grpcio-1.73.0-cp310-cp310-win32.whl", hash = "sha256:072d8154b8f74300ed362c01d54af8b93200c1a9077aeaea79828d48598514f1"}, + {file = "grpcio-1.73.0-cp310-cp310-win_amd64.whl", hash = "sha256:ce953d9d2100e1078a76a9dc2b7338d5415924dc59c69a15bf6e734db8a0f1ca"}, + {file = "grpcio-1.73.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:51036f641f171eebe5fa7aaca5abbd6150f0c338dab3a58f9111354240fe36ec"}, + {file = "grpcio-1.73.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d12bbb88381ea00bdd92c55aff3da3391fd85bc902c41275c8447b86f036ce0f"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:483c507c2328ed0e01bc1adb13d1eada05cc737ec301d8e5a8f4a90f387f1790"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c201a34aa960c962d0ce23fe5f423f97e9d4b518ad605eae6d0a82171809caaa"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859f70c8e435e8e1fa060e04297c6818ffc81ca9ebd4940e180490958229a45a"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e2459a27c6886e7e687e4e407778425f3c6a971fa17a16420227bda39574d64b"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e0084d4559ee3dbdcce9395e1bc90fdd0262529b32c417a39ecbc18da8074ac7"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef5fff73d5f724755693a464d444ee0a448c6cdfd3c1616a9223f736c622617d"}, + {file = "grpcio-1.73.0-cp311-cp311-win32.whl", hash = "sha256:965a16b71a8eeef91fc4df1dc40dc39c344887249174053814f8a8e18449c4c3"}, + {file = "grpcio-1.73.0-cp311-cp311-win_amd64.whl", hash = "sha256:b71a7b4483d1f753bbc11089ff0f6fa63b49c97a9cc20552cded3fcad466d23b"}, + {file = "grpcio-1.73.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fb9d7c27089d9ba3746f18d2109eb530ef2a37452d2ff50f5a6696cd39167d3b"}, + {file = "grpcio-1.73.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:128ba2ebdac41e41554d492b82c34586a90ebd0766f8ebd72160c0e3a57b9155"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:068ecc415f79408d57a7f146f54cdf9f0acb4b301a52a9e563973dc981e82f3d"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ddc1cfb2240f84d35d559ade18f69dcd4257dbaa5ba0de1a565d903aaab2968"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53007f70d9783f53b41b4cf38ed39a8e348011437e4c287eee7dd1d39d54b2f"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4dd8d8d092efede7d6f48d695ba2592046acd04ccf421436dd7ed52677a9ad29"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:70176093d0a95b44d24baa9c034bb67bfe2b6b5f7ebc2836f4093c97010e17fd"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:085ebe876373ca095e24ced95c8f440495ed0b574c491f7f4f714ff794bbcd10"}, + {file = "grpcio-1.73.0-cp312-cp312-win32.whl", hash = "sha256:cfc556c1d6aef02c727ec7d0016827a73bfe67193e47c546f7cadd3ee6bf1a60"}, + {file = "grpcio-1.73.0-cp312-cp312-win_amd64.whl", hash = "sha256:bbf45d59d090bf69f1e4e1594832aaf40aa84b31659af3c5e2c3f6a35202791a"}, + {file = "grpcio-1.73.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:da1d677018ef423202aca6d73a8d3b2cb245699eb7f50eb5f74cae15a8e1f724"}, + {file = "grpcio-1.73.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:36bf93f6a657f37c131d9dd2c391b867abf1426a86727c3575393e9e11dadb0d"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:d84000367508ade791d90c2bafbd905574b5ced8056397027a77a215d601ba15"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c98ba1d928a178ce33f3425ff823318040a2b7ef875d30a0073565e5ceb058d9"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a73c72922dfd30b396a5f25bb3a4590195ee45ecde7ee068acb0892d2900cf07"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:10e8edc035724aba0346a432060fd192b42bd03675d083c01553cab071a28da5"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f5cdc332b503c33b1643b12ea933582c7b081957c8bc2ea4cc4bc58054a09288"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:07ad7c57233c2109e4ac999cb9c2710c3b8e3f491a73b058b0ce431f31ed8145"}, + {file = "grpcio-1.73.0-cp313-cp313-win32.whl", hash = "sha256:0eb5df4f41ea10bda99a802b2a292d85be28958ede2a50f2beb8c7fc9a738419"}, + {file = "grpcio-1.73.0-cp313-cp313-win_amd64.whl", hash = "sha256:38cf518cc54cd0c47c9539cefa8888549fcc067db0b0c66a46535ca8032020c4"}, + {file = "grpcio-1.73.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:1284850607901cfe1475852d808e5a102133461ec9380bc3fc9ebc0686ee8e32"}, + {file = "grpcio-1.73.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:0e092a4b28eefb63eec00d09ef33291cd4c3a0875cde29aec4d11d74434d222c"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:33577fe7febffe8ebad458744cfee8914e0c10b09f0ff073a6b149a84df8ab8f"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60813d8a16420d01fa0da1fc7ebfaaa49a7e5051b0337cd48f4f950eb249a08e"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9c957dc65e5d474378d7bcc557e9184576605d4b4539e8ead6e351d7ccce20"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3902b71407d021163ea93c70c8531551f71ae742db15b66826cf8825707d2908"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1dd7fa7276dcf061e2d5f9316604499eea06b1b23e34a9380572d74fe59915a8"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2d1510c4ea473110cb46a010555f2c1a279d1c256edb276e17fa571ba1e8927c"}, + {file = "grpcio-1.73.0-cp39-cp39-win32.whl", hash = "sha256:d0a1517b2005ba1235a1190b98509264bf72e231215dfeef8db9a5a92868789e"}, + {file = "grpcio-1.73.0-cp39-cp39-win_amd64.whl", hash = "sha256:6228f7eb6d9f785f38b589d49957fca5df3d5b5349e77d2d89b14e390165344c"}, + {file = "grpcio-1.73.0.tar.gz", hash = "sha256:3af4c30918a7f0d39de500d11255f8d9da4f30e94a2033e70fe2a720e184bd8e"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.72.1)"] +protobuf = ["grpcio-tools (>=1.73.0)"] [[package]] name = "gym" @@ -1309,38 +1324,38 @@ files = [ [[package]] name = "h5py" -version = "3.13.0" +version = "3.14.0" description = "Read and write HDF5 files from Python" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "h5py-3.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5540daee2b236d9569c950b417f13fd112d51d78b4c43012de05774908dff3f5"}, - {file = "h5py-3.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10894c55d46df502d82a7a4ed38f9c3fdbcb93efb42e25d275193e093071fade"}, - {file = "h5py-3.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb267ce4b83f9c42560e9ff4d30f60f7ae492eacf9c7ede849edf8c1b860e16b"}, - {file = "h5py-3.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2cf6a231a07c14acd504a945a6e9ec115e0007f675bde5e0de30a4dc8d86a31"}, - {file = "h5py-3.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:851ae3a8563d87a5a0dc49c2e2529c75b8842582ccaefbf84297d2cfceeacd61"}, - {file = "h5py-3.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8a8e38ef4ceb969f832cc230c0cf808c613cc47e31e768fd7b1106c55afa1cb8"}, - {file = "h5py-3.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f35640e81b03c02a88b8bf99fb6a9d3023cc52f7c627694db2f379e0028f2868"}, - {file = "h5py-3.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:337af114616f3656da0c83b68fcf53ecd9ce9989a700b0883a6e7c483c3235d4"}, - {file = "h5py-3.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:782ff0ac39f455f21fd1c8ebc007328f65f43d56718a89327eec76677ebf238a"}, - {file = "h5py-3.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:22ffe2a25770a2d67213a1b94f58006c14dce06933a42d2aaa0318c5868d1508"}, - {file = "h5py-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:477c58307b6b9a2509c59c57811afb9f598aedede24a67da808262dfa0ee37b4"}, - {file = "h5py-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:57c4c74f627c616f02b7aec608a8c706fe08cb5b0ba7c08555a4eb1dde20805a"}, - {file = "h5py-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:357e6dc20b101a805ccfd0024731fbaf6e8718c18c09baf3b5e4e9d198d13fca"}, - {file = "h5py-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6f13f9b5ce549448c01e4dfe08ea8d1772e6078799af2c1c8d09e941230a90d"}, - {file = "h5py-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:21daf38171753899b5905f3d82c99b0b1ec2cbbe282a037cad431feb620e62ec"}, - {file = "h5py-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e520ec76de00943dd017c8ea3f354fa1d2f542eac994811943a8faedf2a7d5cb"}, - {file = "h5py-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e79d8368cd9295045956bfb436656bea3f915beaa11d342e9f79f129f5178763"}, - {file = "h5py-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56dd172d862e850823c4af02dc4ddbc308f042b85472ffdaca67f1598dff4a57"}, - {file = "h5py-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be949b46b7388074c5acae017fbbe3e5ba303fd9daaa52157fdfef30bbdacadd"}, - {file = "h5py-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:4f97ecde7ac6513b21cd95efdfc38dc6d19f96f6ca6f2a30550e94e551458e0a"}, - {file = "h5py-3.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:82690e89c72b85addf4fc4d5058fb1e387b6c14eb063b0b879bf3f42c3b93c35"}, - {file = "h5py-3.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d571644958c5e19a61c793d8d23cd02479572da828e333498c9acc463f4a3997"}, - {file = "h5py-3.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:560e71220dc92dfa254b10a4dcb12d56b574d2d87e095db20466b32a93fec3f9"}, - {file = "h5py-3.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10f061764d8dce0a9592ce08bfd5f243a00703325c388f1086037e5d619c5f1"}, - {file = "h5py-3.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:9c82ece71ed1c2b807b6628e3933bc6eae57ea21dac207dca3470e3ceaaf437c"}, - {file = "h5py-3.13.0.tar.gz", hash = "sha256:1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3"}, + {file = "h5py-3.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24df6b2622f426857bda88683b16630014588a0e4155cba44e872eb011c4eaed"}, + {file = "h5py-3.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ff2389961ee5872de697054dd5a033b04284afc3fb52dc51d94561ece2c10c6"}, + {file = "h5py-3.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:016e89d3be4c44f8d5e115fab60548e518ecd9efe9fa5c5324505a90773e6f03"}, + {file = "h5py-3.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1223b902ef0b5d90bcc8a4778218d6d6cd0f5561861611eda59fa6c52b922f4d"}, + {file = "h5py-3.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:852b81f71df4bb9e27d407b43071d1da330d6a7094a588efa50ef02553fa7ce4"}, + {file = "h5py-3.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f30dbc58f2a0efeec6c8836c97f6c94afd769023f44e2bb0ed7b17a16ec46088"}, + {file = "h5py-3.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:543877d7f3d8f8a9828ed5df6a0b78ca3d8846244b9702e99ed0d53610b583a8"}, + {file = "h5py-3.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c497600c0496548810047257e36360ff551df8b59156d3a4181072eed47d8ad"}, + {file = "h5py-3.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:723a40ee6505bd354bfd26385f2dae7bbfa87655f4e61bab175a49d72ebfc06b"}, + {file = "h5py-3.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:d2744b520440a996f2dae97f901caa8a953afc055db4673a993f2d87d7f38713"}, + {file = "h5py-3.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e0045115d83272090b0717c555a31398c2c089b87d212ceba800d3dc5d952e23"}, + {file = "h5py-3.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6da62509b7e1d71a7d110478aa25d245dd32c8d9a1daee9d2a42dba8717b047a"}, + {file = "h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554ef0ced3571366d4d383427c00c966c360e178b5fb5ee5bb31a435c424db0c"}, + {file = "h5py-3.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cbd41f4e3761f150aa5b662df991868ca533872c95467216f2bec5fcad84882"}, + {file = "h5py-3.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:bf4897d67e613ecf5bdfbdab39a1158a64df105827da70ea1d90243d796d367f"}, + {file = "h5py-3.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:aa4b7bbce683379b7bf80aaba68e17e23396100336a8d500206520052be2f812"}, + {file = "h5py-3.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9603a501a04fcd0ba28dd8f0995303d26a77a980a1f9474b3417543d4c6174"}, + {file = "h5py-3.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8cbaf6910fa3983c46172666b0b8da7b7bd90d764399ca983236f2400436eeb"}, + {file = "h5py-3.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d90e6445ab7c146d7f7981b11895d70bc1dd91278a4f9f9028bc0c95e4a53f13"}, + {file = "h5py-3.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:ae18e3de237a7a830adb76aaa68ad438d85fe6e19e0d99944a3ce46b772c69b3"}, + {file = "h5py-3.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5cc1601e78027cedfec6dd50efb4802f018551754191aeb58d948bd3ec3bd7a"}, + {file = "h5py-3.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e59d2136a8b302afd25acdf7a89b634e0eb7c66b1a211ef2d0457853768a2ef"}, + {file = "h5py-3.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:573c33ad056ac7c1ab6d567b6db9df3ffc401045e3f605736218f96c1e0490c6"}, + {file = "h5py-3.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ccbe17dc187c0c64178f1a10aa274ed3a57d055117588942b8a08793cc448216"}, + {file = "h5py-3.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f025cf30ae738c4c4e38c7439a761a71ccfcce04c2b87b2a2ac64e8c5171d43"}, + {file = "h5py-3.14.0.tar.gz", hash = "sha256:2372116b2e0d5d3e5e705b7f663f7c8d96fa79a4052d250484ef91d24d6a08f4"}, ] [package.dependencies] @@ -2521,14 +2536,14 @@ python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] [[package]] name = "mkdocstrings-python" -version = "1.16.11" +version = "1.16.12" description = "A Python handler for mkdocstrings." optional = false python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "mkdocstrings_python-1.16.11-py3-none-any.whl", hash = "sha256:25d96cc9c1f9c272ea1bd8222c900b5f852bf46c984003e9c7c56eaa4696190f"}, - {file = "mkdocstrings_python-1.16.11.tar.gz", hash = "sha256:935f95efa887f99178e4a7becaaa1286fb35adafffd669b04fd611d97c00e5ce"}, + {file = "mkdocstrings_python-1.16.12-py3-none-any.whl", hash = "sha256:22ded3a63b3d823d57457a70ff9860d5a4de9e8b1e482876fc9baabaf6f5f374"}, + {file = "mkdocstrings_python-1.16.12.tar.gz", hash = "sha256:9b9eaa066e0024342d433e332a41095c4e429937024945fea511afe58f63175d"}, ] [package.dependencies] @@ -2874,54 +2889,54 @@ lint = ["black"] [[package]] name = "pandas" -version = "2.2.3" +version = "2.3.0" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, - {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, - {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, - {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, - {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, - {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, - {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, - {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, + {file = "pandas-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:625466edd01d43b75b1883a64d859168e4556261a5035b32f9d743b67ef44634"}, + {file = "pandas-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6872d695c896f00df46b71648eea332279ef4077a409e2fe94220208b6bb675"}, + {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4dd97c19bd06bc557ad787a15b6489d2614ddaab5d104a0310eb314c724b2d2"}, + {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:034abd6f3db8b9880aaee98f4f5d4dbec7c4829938463ec046517220b2f8574e"}, + {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23c2b2dc5213810208ca0b80b8666670eb4660bbfd9d45f58592cc4ddcfd62e1"}, + {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:39ff73ec07be5e90330cc6ff5705c651ace83374189dcdcb46e6ff54b4a72cd6"}, + {file = "pandas-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:40cecc4ea5abd2921682b57532baea5588cc5f80f0231c624056b146887274d2"}, + {file = "pandas-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8adff9f138fc614347ff33812046787f7d43b3cef7c0f0171b3340cae333f6ca"}, + {file = "pandas-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5f08eb9a445d07720776df6e641975665c9ea12c9d8a331e0f6890f2dcd76ef"}, + {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa35c266c8cd1a67d75971a1912b185b492d257092bdd2709bbdebe574ed228d"}, + {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a0cc77b0f089d2d2ffe3007db58f170dae9b9f54e569b299db871a3ab5bf46"}, + {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c06f6f144ad0a1bf84699aeea7eff6068ca5c63ceb404798198af7eb86082e33"}, + {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ed16339bc354a73e0a609df36d256672c7d296f3f767ac07257801aa064ff73c"}, + {file = "pandas-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:fa07e138b3f6c04addfeaf56cc7fdb96c3b68a3fe5e5401251f231fce40a0d7a"}, + {file = "pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf"}, + {file = "pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027"}, + {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09"}, + {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d"}, + {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20"}, + {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b"}, + {file = "pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be"}, + {file = "pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983"}, + {file = "pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd"}, + {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f"}, + {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3"}, + {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8"}, + {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9"}, + {file = "pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390"}, + {file = "pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575"}, + {file = "pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042"}, + {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c"}, + {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67"}, + {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f"}, + {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249"}, + {file = "pandas-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9efc0acbbffb5236fbdf0409c04edce96bec4bdaa649d49985427bd1ec73e085"}, + {file = "pandas-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75651c14fde635e680496148a8526b328e09fe0572d9ae9b638648c46a544ba3"}, + {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5be867a0541a9fb47a4be0c5790a4bccd5b77b92f0a59eeec9375fafc2aa14"}, + {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84141f722d45d0c2a89544dd29d35b3abfc13d2250ed7e68394eda7564bd6324"}, + {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f95a2aef32614ed86216d3c450ab12a4e82084e8102e355707a1d96e33d51c34"}, + {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e0f51973ba93a9f97185049326d75b942b9aeb472bec616a129806facb129ebb"}, + {file = "pandas-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b198687ca9c8529662213538a9bb1e60fa0bf0f6af89292eb68fea28743fcd5a"}, + {file = "pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133"}, ] [package.dependencies] @@ -3184,6 +3199,7 @@ description = "A library to choose unique available network ports." optional = false python-versions = ">=3.6" groups = ["main"] +markers = "sys_platform == \"linux\" or sys_platform == \"darwin\"" files = [ {file = "portpicker-1.6.0-py3-none-any.whl", hash = "sha256:b2787a41404cf7edbe29b07b9e0ed863b09f2665dcc01c1eb0c2261c1e7d0755"}, {file = "portpicker-1.6.0.tar.gz", hash = "sha256:bd507fd6f96f65ee02781f2e674e9dc6c99bbfa6e3c39992e3916204c9d431fa"}, @@ -3895,19 +3911,19 @@ typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" groups = ["main", "docs", "notebooks"] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -4105,58 +4121,53 @@ pyasn1 = ">=0.1.3" [[package]] name = "scikit-learn" -version = "1.6.1" +version = "1.7.0" description = "A set of python modules for machine learning and data mining" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e"}, - {file = "scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36"}, - {file = "scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5"}, - {file = "scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b"}, - {file = "scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002"}, - {file = "scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33"}, - {file = "scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d"}, - {file = "scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2"}, - {file = "scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8"}, - {file = "scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415"}, - {file = "scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b"}, - {file = "scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2"}, - {file = "scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f"}, - {file = "scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86"}, - {file = "scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52"}, - {file = "scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322"}, - {file = "scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1"}, - {file = "scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348"}, - {file = "scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97"}, - {file = "scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb"}, - {file = "scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236"}, - {file = "scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35"}, - {file = "scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691"}, - {file = "scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f"}, - {file = "scikit_learn-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6849dd3234e87f55dce1db34c89a810b489ead832aaf4d4550b7ea85628be6c1"}, - {file = "scikit_learn-1.6.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e7be3fa5d2eb9be7d77c3734ff1d599151bb523674be9b834e8da6abe132f44e"}, - {file = "scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44a17798172df1d3c1065e8fcf9019183f06c87609b49a124ebdf57ae6cb0107"}, - {file = "scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b7a3b86e411e4bce21186e1c180d792f3d99223dcfa3b4f597ecc92fa1a422"}, - {file = "scikit_learn-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7a73d457070e3318e32bdb3aa79a8d990474f19035464dfd8bede2883ab5dc3b"}, - {file = "scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e"}, + {file = "scikit_learn-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9fe7f51435f49d97bd41d724bb3e11eeb939882af9c29c931a8002c357e8cdd5"}, + {file = "scikit_learn-1.7.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0c93294e1e1acbee2d029b1f2a064f26bd928b284938d51d412c22e0c977eb3"}, + {file = "scikit_learn-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf3755f25f145186ad8c403312f74fb90df82a4dfa1af19dc96ef35f57237a94"}, + {file = "scikit_learn-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2726c8787933add436fb66fb63ad18e8ef342dfb39bbbd19dc1e83e8f828a85a"}, + {file = "scikit_learn-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:e2539bb58886a531b6e86a510c0348afaadd25005604ad35966a85c2ec378800"}, + {file = "scikit_learn-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ef09b1615e1ad04dc0d0054ad50634514818a8eb3ee3dee99af3bffc0ef5007"}, + {file = "scikit_learn-1.7.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:7d7240c7b19edf6ed93403f43b0fcb0fe95b53bc0b17821f8fb88edab97085ef"}, + {file = "scikit_learn-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80bd3bd4e95381efc47073a720d4cbab485fc483966f1709f1fd559afac57ab8"}, + {file = "scikit_learn-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dbe48d69aa38ecfc5a6cda6c5df5abef0c0ebdb2468e92437e2053f84abb8bc"}, + {file = "scikit_learn-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:8fa979313b2ffdfa049ed07252dc94038def3ecd49ea2a814db5401c07f1ecfa"}, + {file = "scikit_learn-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c2c7243d34aaede0efca7a5a96d67fddaebb4ad7e14a70991b9abee9dc5c0379"}, + {file = "scikit_learn-1.7.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f39f6a811bf3f15177b66c82cbe0d7b1ebad9f190737dcdef77cfca1ea3c19c"}, + {file = "scikit_learn-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63017a5f9a74963d24aac7590287149a8d0f1a0799bbe7173c0d8ba1523293c0"}, + {file = "scikit_learn-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b2f8a0b1e73e9a08b7cc498bb2aeab36cdc1f571f8ab2b35c6e5d1c7115d97d"}, + {file = "scikit_learn-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:34cc8d9d010d29fb2b7cbcd5ccc24ffdd80515f65fe9f1e4894ace36b267ce19"}, + {file = "scikit_learn-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5b7974f1f32bc586c90145df51130e02267e4b7e77cab76165c76cf43faca0d9"}, + {file = "scikit_learn-1.7.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:014e07a23fe02e65f9392898143c542a50b6001dbe89cb867e19688e468d049b"}, + {file = "scikit_learn-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e7ced20582d3a5516fb6f405fd1d254e1f5ce712bfef2589f51326af6346e8"}, + {file = "scikit_learn-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1babf2511e6ffd695da7a983b4e4d6de45dce39577b26b721610711081850906"}, + {file = "scikit_learn-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:5abd2acff939d5bd4701283f009b01496832d50ddafa83c90125a4e41c33e314"}, + {file = "scikit_learn-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e39d95a929b112047c25b775035c8c234c5ca67e681ce60d12413afb501129f7"}, + {file = "scikit_learn-1.7.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:0521cb460426c56fee7e07f9365b0f45ec8ca7b2d696534ac98bfb85e7ae4775"}, + {file = "scikit_learn-1.7.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:317ca9f83acbde2883bd6bb27116a741bfcb371369706b4f9973cf30e9a03b0d"}, + {file = "scikit_learn-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:126c09740a6f016e815ab985b21e3a0656835414521c81fc1a8da78b679bdb75"}, + {file = "scikit_learn-1.7.0.tar.gz", hash = "sha256:c01e869b15aec88e2cdb73d27f15bdbe03bce8e2fb43afbe77c45d399e73a5a3"}, ] [package.dependencies] joblib = ">=1.2.0" -numpy = ">=1.19.5" -scipy = ">=1.6.0" +numpy = ">=1.22.0" +scipy = ">=1.8.0" threadpoolctl = ">=3.1.0" [package.extras] -benchmark = ["matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "pandas (>=1.1.5)"] -build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)"] -docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory_profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.17.1)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)", "towncrier (>=24.8.0)"] -examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] -install = ["joblib (>=1.2.0)", "numpy (>=1.19.5)", "scipy (>=1.6.0)", "threadpoolctl (>=3.1.0)"] -maintenance = ["conda-lock (==2.5.6)"] -tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.5.1)", "scikit-image (>=0.17.2)"] +benchmark = ["matplotlib (>=3.5.0)", "memory_profiler (>=0.57.0)", "pandas (>=1.4.0)"] +build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.22.0)", "scipy (>=1.8.0)"] +docs = ["Pillow (>=8.4.0)", "matplotlib (>=3.5.0)", "memory_profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.4.0)", "plotly (>=5.14.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.19.0)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.17.1)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)", "towncrier (>=24.8.0)"] +examples = ["matplotlib (>=3.5.0)", "pandas (>=1.4.0)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.19.0)", "seaborn (>=0.9.0)"] +install = ["joblib (>=1.2.0)", "numpy (>=1.22.0)", "scipy (>=1.8.0)", "threadpoolctl (>=3.1.0)"] +maintenance = ["conda-lock (==3.0.1)"] +tests = ["matplotlib (>=3.5.0)", "mypy (>=1.15)", "numpydoc (>=1.2.0)", "pandas (>=1.4.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pyamg (>=4.2.1)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.11.7)", "scikit-image (>=0.19.0)"] [[package]] name = "scipy" @@ -4722,14 +4733,14 @@ files = [ [[package]] name = "tomlkit" -version = "0.13.2" +version = "0.13.3" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, - {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, + {file = "tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0"}, + {file = "tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1"}, ] [[package]] @@ -5089,4 +5100,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10.12,<3.12" -content-hash = "fb9776b0d3a141d1539a0833e68fc1748fa292bff465686d9ab5bd55501bb2e7" +content-hash = "282890a03c52ad7e6bc13cd0a698016cc051c606ae343f6ca1f48b4901a0fb03" diff --git a/pyproject.toml b/pyproject.toml index 2a2a78d8..48fd3465 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,11 @@ readme = "README.md" [tool.poetry.dependencies] python = ">=3.10.12,<3.12" tensorflow = "2.15.1" -dm-reverb = "^0.14.0" + +#dm-reverb = "^0.14.0" # install different packages depending on the OS: +dm-reverb = { version = "0.14.0", markers = "sys_platform == 'linux'" } +dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } + pytz = "^2024.1" gin-config = "^0.5.0" matplotlib = "^3.9.2" @@ -70,7 +74,6 @@ force-exclude = ''' ) ''' - [tool.isort] lexicographical = true group_by_package = true From 2f4504471e587110c004ed7bb6d119852f2a4ec5 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:42:44 -0400 Subject: [PATCH 11/30] Restore previous run commands --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bde68891..57149878 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -57,7 +57,8 @@ jobs: - name: Run the Python import sorter run: | - poetry run isort . + source .venv/bin/activate + isort . - name: Run the Python style checker run: | From e579793f157513ec5d955c371d35896c16c22795 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 17:59:58 -0400 Subject: [PATCH 12/30] Fix Python version --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 57149878..b07ad274 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,7 +17,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: ['3.10', '3.11'] + python-version: ['3.10.15', '3.11'] runs-on: ${{ matrix.os }} From 8ac972f7fb9e1cf2e6923de9e30cf4f293f11f89 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:17:57 -0400 Subject: [PATCH 13/30] Resolve Python version compatibility --- .github/workflows/build.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b07ad274..1cf16a21 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,8 +16,18 @@ jobs: test: strategy: matrix: - os: [ubuntu-latest, macos-latest] - python-version: ['3.10.15', '3.11'] + #os: [ubuntu-latest, macos-latest] + #python-version: ['3.10.12', '3.10.15', '3.11'] + + include: + - os: ubuntu-latest + python-version: '3.10.15' + - os: ubuntu-latest + python-version: '3.11' + - os: macos-latest + python-version: '3.10.x' # will resolve to 3.10.16 on macOS + - os: macos-latest + python-version: '3.11' runs-on: ${{ matrix.os }} From d8e0d57e1fb5a4e86117e73932e5eea653a9d3ed Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:22:05 -0400 Subject: [PATCH 14/30] Resolve Python version compatibility --- .github/workflows/build.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1cf16a21..ba59b48d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,18 +16,18 @@ jobs: test: strategy: matrix: - #os: [ubuntu-latest, macos-latest] - #python-version: ['3.10.12', '3.10.15', '3.11'] + os: [ubuntu-latest, macos-latest] + python-version: ['3.10.16', '3.11'] - include: - - os: ubuntu-latest - python-version: '3.10.15' - - os: ubuntu-latest - python-version: '3.11' - - os: macos-latest - python-version: '3.10.x' # will resolve to 3.10.16 on macOS - - os: macos-latest - python-version: '3.11' + #include: + # - os: ubuntu-latest + # python-version: '3.10.15' + # - os: ubuntu-latest + # python-version: '3.11' + # - os: macos-latest + # python-version: '3.10.x' # will resolve to 3.10.16 on macOS + # - os: macos-latest + # python-version: '3.11' runs-on: ${{ matrix.os }} From 5ad6b155eeb1390ae07fb63e67a04d96a82cb477 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:28:54 -0400 Subject: [PATCH 15/30] Resolve Python version compatibility --- .github/workflows/build.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ba59b48d..ba8a739e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,7 +17,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: ['3.10.16', '3.11'] + python-version: ['3.10.15', '3.11'] #include: # - os: ubuntu-latest @@ -29,6 +29,11 @@ jobs: # - os: macos-latest # python-version: '3.11' + #exclude: + # # drop the 3.10.15 / macos-latest run + # - os: macos-latest + # python-version: '3.10.15' + runs-on: ${{ matrix.os }} steps: From 56f9286db418e08c053ab66bfdb45cb076d89630 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:31:16 -0400 Subject: [PATCH 16/30] Resolve Python version compatibility --- .github/workflows/build.yaml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ba8a739e..913e8a87 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,23 +16,13 @@ jobs: test: strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest] python-version: ['3.10.15', '3.11'] + # there is no 3.10.15 on mac + include: + - os: macos-latest + python-version: '3.11' - #include: - # - os: ubuntu-latest - # python-version: '3.10.15' - # - os: ubuntu-latest - # python-version: '3.11' - # - os: macos-latest - # python-version: '3.10.x' # will resolve to 3.10.16 on macOS - # - os: macos-latest - # python-version: '3.11' - - #exclude: - # # drop the 3.10.15 / macos-latest run - # - os: macos-latest - # python-version: '3.10.15' runs-on: ${{ matrix.os }} From 65a9aefb6dcb559973509cf9af5a773036d8e8af Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:45:29 -0400 Subject: [PATCH 17/30] Run with intel-based Mac --- .github/workflows/build.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 913e8a87..47cb61d2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,11 +16,18 @@ jobs: test: strategy: matrix: - os: [ubuntu-latest] - python-version: ['3.10.15', '3.11'] # there is no 3.10.15 on mac + # see: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json + #os: [ubuntu-latest, macos-latest] + #python-version: ['3.10.15', '3.11'] include: - - os: macos-latest + - os: [ubuntu-latest] + python-version: ['3.10.15', '3.11'] + + - os: macos-13 # intel-based + python-version: '3.11' + + - os: macos-latest # arm-based python-version: '3.11' From f8cc675f91ed11153d6797e63ece9418111985f6 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:50:14 -0400 Subject: [PATCH 18/30] Fix workflow --- .github/workflows/build.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 47cb61d2..60502429 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -18,12 +18,10 @@ jobs: matrix: # there is no 3.10.15 on mac # see: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json - #os: [ubuntu-latest, macos-latest] - #python-version: ['3.10.15', '3.11'] - include: - - os: [ubuntu-latest] - python-version: ['3.10.15', '3.11'] + os: [ubuntu-latest] + python-version: ['3.10.15', '3.11'] + include: - os: macos-13 # intel-based python-version: '3.11' From 6dd3b82985a9fea9ebd5594b86931d7d7d105b4f Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:57:03 -0400 Subject: [PATCH 19/30] Fix failing test --- .../utils/regression_building_utils_test.py | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/smart_control/utils/regression_building_utils_test.py b/smart_control/utils/regression_building_utils_test.py index cf3da966..43691e7b 100644 --- a/smart_control/utils/regression_building_utils_test.py +++ b/smart_control/utils/regression_building_utils_test.py @@ -123,23 +123,17 @@ def test_get_matching_indices(self): self.assertListEqual(expected_output_indices, output_indices) def test_get_feature_map(self): - req_ts = pd.Timestamp('2021-01-12 00:00+0') - res_ts = pd.Timestamp('2021-01-12 00:10+0') - device_id = 'd0' - measurement_name = 's0' - measurement_value = 294.5 - observation_response = self._get_test_observation_response( - request_timestamp=req_ts, - device_id=device_id, - response_timestamp=res_ts, - measurement_name=measurement_name, - value=measurement_value, + obs_response = self._get_test_observation_response( + request_timestamp=pd.Timestamp('2021-01-12 00:00+0'), + device_id='d0', + response_timestamp=pd.Timestamp('2021-01-12 00:10+0'), + measurement_name='s0', + value=294.5, observation_valid=True, ) - feature_map = regression_building_utils.get_feature_map( - observation_response - ) - expected_feature_map = { + feature_map = regression_building_utils.get_feature_map(obs_response) + + expected_map = { 'timestamp': pd.Timestamp('2021-01-12 00:10:00+0'), ('hod', 'cos_000'): 0.9990482215818578, ('hod', 'sin_000'): 0.043619387365336, @@ -147,7 +141,21 @@ def test_get_feature_map(self): ('dow', 'sin_000'): 0.7818314824680298, ('d0', 's0'): 294.5, } - self.assertDictEqual(expected_feature_map, feature_map) + # passes on Linux, but fails on Mac, due to floating point math differences: + # self.assertDictEqual(expected_map, feature_map) + + # ... so we are using some equal assertions when applicable: + for key in ['timestamp', ('d0', 's0')]: + self.assertEqual(feature_map[key], expected_map[key]) + + # ... and some almost-equal assertions for the sin and cos values: + for key in [ + ('hod', 'cos_000'), + ('hod', 'sin_000'), + ('dow', 'cos_000'), + ('dow', 'sin_000'), + ]: + self.assertAlmostEqual(feature_map[key], expected_map[key], places=7) def test_get_observation_sequence(self): req_ts = pd.Timestamp('2021-01-12 00:00') From 170cae50ebf28a4e7f7e263a9bec19eb7c0b8ef3 Mon Sep 17 00:00:00 2001 From: MJ Rossetti Date: Thu, 12 Jun 2025 18:59:38 -0400 Subject: [PATCH 20/30] Issues with dm-reverb on Mac --- .github/workflows/build.yaml | 1 - poetry.lock | 12 ++++++------ pyproject.toml | 3 ++- .../replay_buffer/replay_buffer_test.py | 9 +++++++++ 4 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 60502429..b0a2edbe 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,7 +28,6 @@ jobs: - os: macos-latest # arm-based python-version: '3.11' - runs-on: ${{ matrix.os }} steps: diff --git a/poetry.lock b/poetry.lock index 6d7e2bb1..52e03006 100644 --- a/poetry.lock +++ b/poetry.lock @@ -818,16 +818,16 @@ portpicker = "*" tensorflow = ["tensorflow (>=2.15.0,<2.16.0)"] [[package]] -name = "dm-reverb-macos" -version = "0.11.0.dev0" +name = "dm-reverb-macos-nightly" +version = "0.11.20241207" description = "Reverb is an efficient and easy-to-use data storage and transport system designed for machine learning research." optional = false python-versions = ">=3" groups = ["main"] markers = "sys_platform == \"darwin\"" files = [ - {file = "dm-reverb-macos-0.11.0.dev0.tar.gz", hash = "sha256:75ce80a4f3fa4ad083aaf5d6875a9fa8cc53ae10daaa33d8c0e6cc3c98ed8918"}, - {file = "dm_reverb_macos-0.11.0.dev0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d4fa0ca15ae86fe922566de782c5eb7ba0afb0c557459d79cf9b0b4d29c9326e"}, + {file = "dm-reverb-macos-nightly-0.11.20241207.tar.gz", hash = "sha256:818e2e6d0c82e3752fdce52840e384f92cbc5a7dd32418873d1c06cb1df7b9f2"}, + {file = "dm_reverb_macos_nightly-0.11.20241207-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:fd28e5908c8660bb402215c06cb7159d65d9ba4c239d8bf9c707ebe892dd9089"}, ] [package.dependencies] @@ -835,7 +835,7 @@ dm-tree = "*" portpicker = "*" [package.extras] -tensorflow = ["tensorflow (>=2.12.0,<2.13.0)"] +tensorflow = ["tf-nightly"] [[package]] name = "dm-tree" @@ -5100,4 +5100,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10.12,<3.12" -content-hash = "282890a03c52ad7e6bc13cd0a698016cc051c606ae343f6ca1f48b4901a0fb03" +content-hash = "8c81d5453d83fdeab1f96884c39e858631995440de88e5912a308c9987be1dfb" diff --git a/pyproject.toml b/pyproject.toml index 48fd3465..0fb68806 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,8 @@ tensorflow = "2.15.1" #dm-reverb = "^0.14.0" # install different packages depending on the OS: dm-reverb = { version = "0.14.0", markers = "sys_platform == 'linux'" } -dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } +#dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } # broken! +dm-reverb-macos-nightly = { version = ">=0.11.20241207", markers = "sys_platform == 'darwin'" } pytz = "^2024.1" gin-config = "^0.5.0" diff --git a/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py new file mode 100644 index 00000000..543698fb --- /dev/null +++ b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py @@ -0,0 +1,9 @@ +"""Replay Buffer Test""" + +import reverb + + +def test_reverb_import(): + print("Reverb imported successfully.") + print(reverb.__version__) + assert True From 056938d3942e7e8e725d7c69e48137f2694a95b4 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 13 Jun 2025 11:14:32 -0400 Subject: [PATCH 21/30] Update replay_buffer_test.py --- .../reinforcement_learning/replay_buffer/replay_buffer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py index 543698fb..f2702091 100644 --- a/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py +++ b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py @@ -5,5 +5,5 @@ def test_reverb_import(): print("Reverb imported successfully.") - print(reverb.__version__) + print(dir(reverb)) assert True From 452c4799d7dd7300931d91d6cf99e7c61849b461 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 15:35:38 +0000 Subject: [PATCH 22/30] Add notes to the documentation --- docs/setup/linux.md | 4 ++++ docs/setup/mac.md | 10 ++++++++++ pyproject.toml | 9 +++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/setup/linux.md b/docs/setup/linux.md index 0b97d730..59d26f83 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -112,6 +112,10 @@ cd ../.. > NOTE: the generated "\*pb2.py" files have been checked in to the repository to > facilitate publishing this package on PyPI. +> NOTE: contributors can skip this step and just use the current versions of the +> protos that have been checked in to the repository. Maintainers can run this +> step periodically to update the protos. + ## Environment Variable Setup By default, simulation videos are stored in the "simulator/videos" directory diff --git a/docs/setup/mac.md b/docs/setup/mac.md index b9169665..27b7f58e 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -89,6 +89,12 @@ Use poetry to install dependencies, including development dependencies: poetry install --with dev ``` +> NOTE: there may be issues with the `dm-reverb` package on Mac. See: +> https://github.com/google/sbsim/issues/102. This issue only affects +> reinforcement learning functionality related to replay buffers, so you should +> still be able to run all other parts of the codebase. We welcome contributions +> to fix this issue and get all the functionality working on Mac! + ## Protocol Buffer Compilation Build the ".proto" files defined in the "smart_control/proto" directory into @@ -107,6 +113,10 @@ cd ../.. > NOTE: the generated "\*pb2.py" files have been checked in to the repository to > facilitate publishing this package on PyPI. +> NOTE: contributors can skip this step and just use the current versions of the +> protos that have been checked in to the repository. Maintainers can run this +> step periodically to update the protos. + ## Environment Variable Setup By default, simulation videos are stored in the "simulator/videos" directory diff --git a/pyproject.toml b/pyproject.toml index 0fb68806..6e1e7a63 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,9 +9,14 @@ readme = "README.md" python = ">=3.10.12,<3.12" tensorflow = "2.15.1" -#dm-reverb = "^0.14.0" # install different packages depending on the OS: +# The "dm-reverb" package is meant for Linux only, so we are conditionally +# ... installing the normal package on Linux, and another package on Mac. +# ... However there may still be issues with the Mac version. +# ... See: https://github.com/google/sbsim/issues/102 for details. +#dm-reverb = "^0.14.0" +# dm-reverb = { version = "0.14.0", markers = "sys_platform == 'linux'" } -#dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } # broken! +#dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } dm-reverb-macos-nightly = { version = ">=0.11.20241207", markers = "sys_platform == 'darwin'" } pytz = "^2024.1" From 9815488f58107554d02a61947aeccda5ed314903 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 15:38:47 +0000 Subject: [PATCH 23/30] Let's document the results of dm-reverb-macos on GitHub Actions --- poetry.lock | 12 ++++++------ pyproject.toml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 52e03006..6d7e2bb1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -818,16 +818,16 @@ portpicker = "*" tensorflow = ["tensorflow (>=2.15.0,<2.16.0)"] [[package]] -name = "dm-reverb-macos-nightly" -version = "0.11.20241207" +name = "dm-reverb-macos" +version = "0.11.0.dev0" description = "Reverb is an efficient and easy-to-use data storage and transport system designed for machine learning research." optional = false python-versions = ">=3" groups = ["main"] markers = "sys_platform == \"darwin\"" files = [ - {file = "dm-reverb-macos-nightly-0.11.20241207.tar.gz", hash = "sha256:818e2e6d0c82e3752fdce52840e384f92cbc5a7dd32418873d1c06cb1df7b9f2"}, - {file = "dm_reverb_macos_nightly-0.11.20241207-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:fd28e5908c8660bb402215c06cb7159d65d9ba4c239d8bf9c707ebe892dd9089"}, + {file = "dm-reverb-macos-0.11.0.dev0.tar.gz", hash = "sha256:75ce80a4f3fa4ad083aaf5d6875a9fa8cc53ae10daaa33d8c0e6cc3c98ed8918"}, + {file = "dm_reverb_macos-0.11.0.dev0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d4fa0ca15ae86fe922566de782c5eb7ba0afb0c557459d79cf9b0b4d29c9326e"}, ] [package.dependencies] @@ -835,7 +835,7 @@ dm-tree = "*" portpicker = "*" [package.extras] -tensorflow = ["tf-nightly"] +tensorflow = ["tensorflow (>=2.12.0,<2.13.0)"] [[package]] name = "dm-tree" @@ -5100,4 +5100,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10.12,<3.12" -content-hash = "8c81d5453d83fdeab1f96884c39e858631995440de88e5912a308c9987be1dfb" +content-hash = "282890a03c52ad7e6bc13cd0a698016cc051c606ae343f6ca1f48b4901a0fb03" diff --git a/pyproject.toml b/pyproject.toml index 6e1e7a63..f7fd6dc4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,8 +16,8 @@ tensorflow = "2.15.1" #dm-reverb = "^0.14.0" # dm-reverb = { version = "0.14.0", markers = "sys_platform == 'linux'" } -#dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } -dm-reverb-macos-nightly = { version = ">=0.11.20241207", markers = "sys_platform == 'darwin'" } +dm-reverb-macos = { version = "0.11.0.dev0", markers = "sys_platform == 'darwin'" } +#dm-reverb-macos-nightly = { version = ">=0.11.20241207", markers = "sys_platform == 'darwin'" } pytz = "^2024.1" gin-config = "^0.5.0" From dfe2df5ac84ee8a5d76382528d316f710291142c Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 17:20:46 +0000 Subject: [PATCH 24/30] Conditionally skip dm-reverb test on Mac, to make the build pass, and uncover a path forward for testing the remaining replay buffer code --- .../replay_buffer/replay_buffer_test.py | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py index f2702091..da8ef09a 100644 --- a/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py +++ b/smart_control/reinforcement_learning/replay_buffer/replay_buffer_test.py @@ -1,9 +1,30 @@ """Replay Buffer Test""" -import reverb +import sys +import unittest +# we are skipping these tests on Mac for now, until we can resolve the dm-reverb +# package installation on Mac. See: https://github.com/google/sbsim/issues/102 +RUNNING_ON_MAC = sys.platform.startswith("darwin") +SKIP_REASON = "Issues installing dm-reverb on Mac." -def test_reverb_import(): - print("Reverb imported successfully.") - print(dir(reverb)) - assert True + +class ReverbInstallationTest(unittest.TestCase): + """Testing if we can install the dm-reverb package. Skipping on Mac for now. + We can remove the skip logic and push to GitHub Actions to test / prove our + ability to install across all platforms. Then we can remove this test class. + """ + + @unittest.skipIf(RUNNING_ON_MAC, SKIP_REASON) + def test_reverb_installation(self): + import reverb # pylint:disable=import-outside-toplevel + + print("Reverb imported successfully.") + print(dir(reverb)) + assert True + + +# TODO: add more replay buffer related tests here (using the skip logic) + +if __name__ == "__main__": + unittest.main() From 3050efd94c2e25afd833ff5cd923e60277ab2b9c Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 17:51:05 +0000 Subject: [PATCH 25/30] Review setup instructions. Use code block to remove slash inserted by mdformat --- docs/setup.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index a8d45323..bda63099 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -5,20 +5,27 @@ development. ## Prerequisites -This project requires the following dependencies: +This project requires the following system dependencies: - Git -- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) (v - 3.21.12) -- [FFmpeg](https://ffmpeg.org/) (v 7.1.1) -- Python (>=3.10.12 and \<3.12) and a Python Virtual Environment +- [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) + (`v 3.21.12`) +- [FFmpeg](https://ffmpeg.org/) (`v 7.1.1`) +- Python (`>=3.10.12 and <3.12`) ## Repository Setup -Clone the repository, for example using an SSH approach: +To download the codebase, you can clone the repository (for example using an SSH +approach, however an HTTPS approach should be fine as well): ```sh git clone git@github.com:google/sbsim.git +``` + +After downloading the repository, navigate to the root directory from the +command line before continuing: + +``` cd sbsim/ ``` From 63e975592c75bef58510ee2244018697689eda75 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 17:54:38 +0000 Subject: [PATCH 26/30] Review linux setup --- docs/setup/linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/linux.md b/docs/setup/linux.md index 59d26f83..9249dc4b 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -153,7 +153,7 @@ notebook-related dependencies: poetry install --with notebooks ``` -Create a kernel (required for VS Code, optional for Jupyter): +Create a kernel: ```sh poetry run python -m ipykernel install --user --name=sbsim-kernel From cb8f0239797121e968425e36317c22c5fc11b3bc Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 18:04:26 +0000 Subject: [PATCH 27/30] Review notebook instructions --- docs/setup/linux.md | 14 +++++--------- docs/setup/mac.md | 14 +++++--------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/docs/setup/linux.md b/docs/setup/linux.md index 9249dc4b..f758501e 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -161,13 +161,9 @@ poetry run python -m ipykernel install --user --name=sbsim-kernel Finally you can run the notebook using Jupyter or VS Code: -A. Run the notebooks using Jupyter (then visit the resulting -[localhost:8000](localhost:8000) URL in the browser, and choose the -"sbsim-kernel" from the kernel drop-down menu): +- A) Run the notebooks using Jupyter by running `poetry run jupyter notebook` + (then visit the resulting [localhost:8000](localhost:8000) URL in the browser, + and choose the "sbsim-kernel" from the kernel drop-down menu). -```sh -poetry run jupyter notebook -``` - -B. Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from the -kernel drop-down menu). +- B) Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from + the kernel drop-down menu). diff --git a/docs/setup/mac.md b/docs/setup/mac.md index 27b7f58e..cbb63041 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -162,13 +162,9 @@ poetry run python -m ipykernel install --user --name=sbsim-kernel Finally you can run the notebook using Jupyter or VS Code: -A. Run the notebooks using Jupyter (then visit the resulting -[localhost:8000](localhost:8000) URL in the browser, and choose the -"sbsim-kernel" from the kernel drop-down menu): +- A) Run the notebooks using Jupyter by running `poetry run jupyter notebook` + (then visit the resulting [localhost:8000](localhost:8000) URL in the browser, + and choose the "sbsim-kernel" from the kernel drop-down menu). -```sh -poetry run jupyter notebook -``` - -B. Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from the -kernel drop-down menu). +- B) Run the notebooks using VS Code (choosing the "sbsim-kernel" kernel from + the kernel drop-down menu). From 10dbfaa86f93db1bea3ddcb7b7f18f9b6c710369 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 18:13:31 +0000 Subject: [PATCH 28/30] Minimize diff --- .../utils/regression_building_utils_test.py | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/smart_control/utils/regression_building_utils_test.py b/smart_control/utils/regression_building_utils_test.py index 43691e7b..b950b75e 100644 --- a/smart_control/utils/regression_building_utils_test.py +++ b/smart_control/utils/regression_building_utils_test.py @@ -123,17 +123,23 @@ def test_get_matching_indices(self): self.assertListEqual(expected_output_indices, output_indices) def test_get_feature_map(self): - obs_response = self._get_test_observation_response( - request_timestamp=pd.Timestamp('2021-01-12 00:00+0'), - device_id='d0', - response_timestamp=pd.Timestamp('2021-01-12 00:10+0'), - measurement_name='s0', - value=294.5, + req_ts = pd.Timestamp('2021-01-12 00:00+0') + res_ts = pd.Timestamp('2021-01-12 00:10+0') + device_id = 'd0' + measurement_name = 's0' + measurement_value = 294.5 + observation_response = self._get_test_observation_response( + request_timestamp=req_ts, + device_id=device_id, + response_timestamp=res_ts, + measurement_name=measurement_name, + value=measurement_value, observation_valid=True, ) - feature_map = regression_building_utils.get_feature_map(obs_response) - - expected_map = { + feature_map = regression_building_utils.get_feature_map( + observation_response + ) + expected_feature_map = { 'timestamp': pd.Timestamp('2021-01-12 00:10:00+0'), ('hod', 'cos_000'): 0.9990482215818578, ('hod', 'sin_000'): 0.043619387365336, @@ -141,21 +147,25 @@ def test_get_feature_map(self): ('dow', 'sin_000'): 0.7818314824680298, ('d0', 's0'): 294.5, } - # passes on Linux, but fails on Mac, due to floating point math differences: - # self.assertDictEqual(expected_map, feature_map) - # ... so we are using some equal assertions when applicable: + # this assertion passes on Linux, but fails on intel-based Macs, + # due to floating point math differences: + # self.assertDictEqual(expected_feature_map, feature_map) + + # ... equality assertions when applicable: for key in ['timestamp', ('d0', 's0')]: - self.assertEqual(feature_map[key], expected_map[key]) + self.assertEqual(feature_map[key], expected_feature_map[key]) - # ... and some almost-equal assertions for the sin and cos values: + # ... almost-equal assertions for the sin and cos values: for key in [ ('hod', 'cos_000'), ('hod', 'sin_000'), ('dow', 'cos_000'), ('dow', 'sin_000'), ]: - self.assertAlmostEqual(feature_map[key], expected_map[key], places=7) + self.assertAlmostEqual( + feature_map[key], expected_feature_map[key], places=7 + ) def test_get_observation_sequence(self): req_ts = pd.Timestamp('2021-01-12 00:00') From f924203140452ff9949de75c231bd28a35e38759 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 18:23:30 +0000 Subject: [PATCH 29/30] Python syntax highlighting in docs site --- mkdocs.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 64085330..a6fa37a7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -108,6 +108,15 @@ markdown_extensions: - toc: permalink: "#" # adds clickable link anchors for all headings + # enable language-specific syntax highlighting: + - pymdownx.highlight: + anchor_linenums: true + #line_spans: __span + pygments_lang_class: true + #- pymdownx.inlinehilite # For inline code highlighting + #- pymdownx.snippets + - pymdownx.superfences + plugins: - search From 2e4d3b9cc133c9e88914de2bc507dbbd77cec368 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 20 Jun 2025 21:02:18 +0000 Subject: [PATCH 30/30] Review docs --- docs/setup/mac.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/setup/mac.md b/docs/setup/mac.md index cbb63041..04593a0b 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -53,8 +53,7 @@ Install [Anaconda](https://www.anaconda.com/download), which we will use to install Python and manage a virtual environment. The installation results in automatically adding some content to your "~/.zshrc" -file. You may need to run a `conda init bash` or `conda init zsh` command, if -prompted to do so. +file. You may need to run a `conda init zsh` command, if prompted to do so. Remember to restart your shell afterwards. @@ -90,10 +89,11 @@ poetry install --with dev ``` > NOTE: there may be issues with the `dm-reverb` package on Mac. See: -> https://github.com/google/sbsim/issues/102. This issue only affects -> reinforcement learning functionality related to replay buffers, so you should -> still be able to run all other parts of the codebase. We welcome contributions -> to fix this issue and get all the functionality working on Mac! +> [https://github.com/google/sbsim/issues/102](https://github.com/google/sbsim/issues/102). +> This issue only affects reinforcement learning functionality related to replay +> buffers, so you should still be able to run all other parts of the codebase. +> We welcome contributions to fix this issue and get all the functionality +> working on Mac! ## Protocol Buffer Compilation