Skip to main content

Robotics Environment Authoring Framework (REAF)

The Robotics Environment Authoring Framework (REAF) simplifies creating environments that adhere to the GDM Robotics Environment interface.

How to install

reaf can be installed from PyPI using pip:

pip install reaf

Directory Structure

Currently, the directory structure is designed as standalone subdirectories with a well-defined dependency graph.

reaf
├── core: Core libraries and interfaces for REAF.
├── testing: General tooling for testing REAF interfaces and environments.
├── common: Libraries with shared functionality across setups and platforms.

Design

REAF is a framework designed to simplify the creation of robotics environments. It adopts a layered architecture to promote modularity and reusability. The core components of a REAF environment are:

  1. Environment: The top-level interface for interacting with the environment, conforming to the GDM Robotics Environment interface. It handles stepping, resetting, and action/observation specs.
  2. Task Layer: Responsible for defining the task itself, including reward calculation, termination conditions, features generation, and commands processing.
  3. Device Layer: Interfaces with the physical or simulated robotic setup, managing commands to actuators and retrieving measurements from sensors.
  4. Adapters: Bridge the gap between the abstract GDMR interfaces and the specific requirements of the Task Layer. These adapters translate agent actions into Task Layer commands and Task Layer features into agent observations.
  5. Reset and End of Episode Handlers: Support customized behavior during environment resets and episode termination.

Environment

The Environment class serves as the primary interface for interacting with the robotic environment. It coordinates the interactions between the Task Layer and Device Layer, manages the environment's state, and handles stepping through the environment. Key functionalities include:

  • reset_with_options(): Resets the environment to a new initial state based on the provided options. This involves resetting the Device Layer, computing initial features and observations.
  • step(): Advances the environment by one step. This method takes an agent action, processes it into commands, steps the Device Layer, computes features, reward, discount, termination conditions, and new observations, and returns a TimeStep object containing this information.
  • action_spec(): Returns the specification for valid agent actions. This is determined by the ActionSpaceAdapter.
  • timestep_spec(): Returns the specification for the TimeStep objects returned by step() and reset().
  • Logging: Facilitates adding and removing loggers to monitor internal operations.

Task Layer

The Task Layer defines the logic and rules governing the robotic task. It comprises several core components:

  • FeaturesProducer: Generates additional features based on existing features and measurements from the Device Layer. Each producer has a produced_features_spec() defining the features it generates and required_features_keys() indicating the features it depends on.
  • CommandsProcessor: Modifies commands before they are sent to the Device Layer. Processors can transform, filter, or augment commands. The consumed_commands_spec() describes the commands accepted by the processor, and produced_commands_keys() defines the output commands.
  • RewardProvider: Calculates the reward signal based on the current features. It exposes a reward_spec() defining the structure of the reward.
  • TerminationChecker: Determines whether the episode should terminate based on features and returns a TerminationResult indicating the type of termination.
  • DiscountProvider: Computes the discount factor based on features and the termination state.
  • FeaturesObserver: Passive components that observe features without modifying them. This is useful for logging or analysis.
  • Logger: Records measurements, features, and commands during environment interactions. Methods like record_measurements(), record_features(), and record_commands_processing() are called at specific points in the environment's lifecycle.

The Task Layer also provides methods to:

  • compute_all_features(): Computes all features based on measurements from the Device Layer and the output of FeaturesProducers.
  • compute_final_commands(): Processes the policy's commands using the CommandsProcessors and outputs the Device Layer command.
  • compute_reward(): Calculates the reward using the RewardProvider.
  • check_for_termination(): Checks termination conditions using TerminationCheckers.
  • compute_discount(): Computes the discount using the DiscountProvider.
  • validate_spec(): Verifies the consistency of the specs across the Task Layer and Device Layer.

Device Layer

The Device Layer serves as the bridge between the REAF environment and the robotic hardware. It's responsible for sending commands to the robot and receiving measurements from sensors. The Device Layer is built around:

  • Device: Represents a single hardware component (e.g., robot arm, camera). It provides methods like set_commands() and get_measurements() for interacting with the hardware.
  • DeviceCoordinator: Manages a collection of Device objects, coordinating their actions and data exchange. It provides lifecycle management through start() and stop() methods and synchronization points through before_set_commands() and before_get_measurements().

The Device Layer's key functions are:

  • begin_stepping(): Initializes the Device Layer and returns the initial measurements.
  • step(): Sends commands to the devices, retrieves new measurements, and returns them.
  • end_stepping(): Performs cleanup operations at the end of an episode.
  • commands_spec(): Returns the specification for valid commands. The user is expected to pass the full command dictionary.
  • measurements_spec(): Returns the specification for the measurements returned by get_measurements().

Adapters

REAF utilizes adapters to translate between the generic agent interface and the specific format required by the Task Layer.

  • ActionSpaceAdapter: Converts the agent's actions into a commands dictionary understood by the Task Layer.
  • ObservationSpaceAdapter: Transforms the features generated by the Task Layer into observations suitable for the agent.

Reset and End of Episode Handler

  • EnvironmentReset: Defines the reset behavior of the environment, including a do_reset() method and a default reset configuration. The reset is a complex step and very hard to predict how this will be written. The intention is to leave complete control to the user so they can pass whatever object is needed to the reset without any restrictions. The user can use this to check that everything is working properly, reset the state of any features producers, etc...
  • EndOfEpisodeHandler: Provides a callback function, on_end_of_episode_stepping(), that is invoked at the end of each episode after the last step. This is useful for logging, cleanup, or custom logic that needs to be executed when an episode ends.

Licence and Disclaimer

Copyright 2026 Google LLC

All software is licensed under the Apache License, Version 2.0 (Apache 2.0); you may not use this file except in compliance with the Apache 2.0 license. You may obtain a copy of the Apache 2.0 license at: https://www.apache.org/licenses/LICENSE-2.0

All other materials are licensed under the Creative Commons Attribution 4.0 International License (CC-BY). You may obtain a copy of the CC-BY license at: https://creativecommons.org/licenses/by/4.0/legalcode

Unless required by applicable law or agreed to in writing, all software and materials distributed here under the Apache 2.0 or CC-BY licenses are distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the licenses for the specific language governing permissions and limitations under those licenses.

This is not an official Google product.

Metadata

Release files for reaf 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reaf 1.1.2
File Size Uploaded Provenance Actions
reaf-1.1.2.tar.gz 3.3 MB With provenance Details for reaf-1.1.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for reaf 1.1.2
File Actions
reaf-1.1.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for reaf-1.1.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for reaf-1.1.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
reaf-1.1.2-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for reaf-1.1.2-cp315-cp315-macosx_11_0_arm64.whl
reaf-1.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for reaf-1.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for reaf-1.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
reaf-1.1.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for reaf-1.1.2-cp314-cp314-macosx_11_0_arm64.whl
reaf-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for reaf-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for reaf-1.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
reaf-1.1.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for reaf-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
reaf-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for reaf-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for reaf-1.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
reaf-1.1.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for reaf-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
reaf-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for reaf-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for reaf-1.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
reaf-1.1.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for reaf-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
reaf-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for reaf-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
reaf-1.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for reaf-1.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Total release size: 12.2 MB

Release files / reaf-1.1.2.tar.gz

Download URL reaf-1.1.2.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
a4990bc2d384d75b7f10db6e838af5a662a96b462f443b51fc3dec874e5eba1b
BLAKE2b-256 checksum
How to use checksums
749f94b4729993397def6fc239b787deac4d54eaa626f70f11619d24db4a7e07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 603.1 kB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
773df6c0df33c67f1799f33d90686f51e469a955dad2a65ad7cbe74663f9b024
BLAKE2b-256 checksum
How to use checksums
43bc262de9a889da088b9d6d86c2cb0177d3ecfaa2f688ce16cf2d94fb5cbfd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 577.7 kB
Tags CPython 3.15 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3c2eda22b9517471c0adb5571956fa2611991178a7d19f38381e4e4b0861dab8
BLAKE2b-256 checksum
How to use checksums
6b25333d948e5bec4ff6a923003dc9c7cbc806946320416a179c0f013f97ea08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp315-cp315-macosx_11_0_arm64.whl

Download URL reaf-1.1.2-cp315-cp315-macosx_11_0_arm64.whl
Size 373.0 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d9f707b30ac5785bebd1fbe9431d9631290130fadad5dec87ea8f8cb101f1bc3
BLAKE2b-256 checksum
How to use checksums
4c7d09d56fffd288bb8cc18d219fd7c673cb5e556b5f39f6bf6ace34e9d7c591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 603.1 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
674b4d1740e869c29f5ae9c30a15c746d11496cc58264c9643ea4cbe0f90a255
BLAKE2b-256 checksum
How to use checksums
acf685373392711e0eaa6f31e5883edb6eab0802ee40cda0bebeb389d3d2f787
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 577.7 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
004ca0351a8d8a3e4dfe5d20aa6a053f66cb988d0ac9ba621ea926a4c2500ada
BLAKE2b-256 checksum
How to use checksums
156cf8fb0ec5abeeadf6509df13bf7b26fbeb39b2e1afe2ae3431d0f30a35e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL reaf-1.1.2-cp314-cp314-macosx_11_0_arm64.whl
Size 373.0 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
113c17f4c8b8f6da6d9705eeecf8c44bbf8ec2f7c8c0a69dab8f618ff6de2d43
BLAKE2b-256 checksum
How to use checksums
9e4db17db422337de579d5b9fa90492cfa7b4f059baaed338f33eb992c915c12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 602.9 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cde6fbe74479b7058ba618950f07e3c03089506889baab8aae3f867aedfc5b10
BLAKE2b-256 checksum
How to use checksums
a54c3a3c4fbe3f205b2b433845eaf5ef83111d43b70ddb67a37bd4eaba662873
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 577.1 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
562d6b82edafe1378e778057a16f361112d4902571df341a6e26893737a4aa31
BLAKE2b-256 checksum
How to use checksums
61112201c5a35126bb5389da51f6f077c98af9f6b24a91bfe8139dcf9c48089a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL reaf-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
Size 373.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
99fc7b4f647dc1772bf4b7f8fe1864c42cd32830cafe48672def78d9ee8b24b3
BLAKE2b-256 checksum
How to use checksums
e667a1b27660df7bd6facfcff5198eb16d1eb431f2664dcaa8517d5ad49399f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 602.9 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b94d168094bedea4fe47b2161c2878824a2949cf711f03a02bccca282682789d
BLAKE2b-256 checksum
How to use checksums
8aa549eb37eb424af970bfca0d72f97ece24f6d61c312f903d643ac3994c0f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 577.0 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3cfe4dfc1321b740bc60ae873fcf93c4ceac678d7671520f6b7f79eadf805bd5
BLAKE2b-256 checksum
How to use checksums
c1acf096caaf05811cf5e05e682a123741233b3c1abd15dd1beff0fab02d7ce2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL reaf-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Size 373.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0ffe7bf2d00e7eb978bbe124755202f1c51f4464e3cfaa6ea291085ce5a95a17
BLAKE2b-256 checksum
How to use checksums
a76c24ddb72d4f4716daa09f746828a95889ac8d3cacab137acb80412d2d655f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 601.8 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eae17482599fae022ea3add55e13c317784b5aa8dddf25622bd09a59d135e4e1
BLAKE2b-256 checksum
How to use checksums
d01de765f9ddcae7f8dd6b0e93f7908c5e1c4668e25261fe839ba327a350d141
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 576.6 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0022d291156b6135026a29249d4d9bea71d9fa7db14942218f22a6fbf92e958d
BLAKE2b-256 checksum
How to use checksums
7a4746539d5e71653f0017cc400f40613649ade5751287282f5499f2b6373f48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL reaf-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Size 373.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
464eaf0dae3c79fef0e215102fdd6154d973188e27f75a323296d871025d967e
BLAKE2b-256 checksum
How to use checksums
5c033b7df42c7e1e3ea872956844a438133433a0182d7d200c2ad99f479f36be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL reaf-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 601.2 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
761380f512e264306bafcb02873a7c8dcea0aad203cb9991227f0b6f3c617ffe
BLAKE2b-256 checksum
How to use checksums
c8a6c95bcc034d95b9c40ed4a6b6dd354af5069ba61a9c3f5864803201805464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / reaf-1.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL reaf-1.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 575.6 kB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
99f53746016f468821cb825f7c5bfef13ae218194864097923a9a4021a0426a0
BLAKE2b-256 checksum
How to use checksums
f3703d08838e900c3e54b23d48f859cfb908b9f676fd2fcf5ab90ca5301fd643
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.11.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

Security for reaf 1.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 18 files in this release have been uploaded with provenance metadata.

Select from 18 files

Attestation for reaf-1.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by Google Cloud, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page