Skip to main content

PyArcAgiClient

Struct PyArcAgiClient 

Source
pub struct PyArcAgiClient { /* private fields */ }
Available on crate feature python only.
Expand description

An HTTP client for interacting with the ARC-AGI-3 REST API.

Construct with ArcAgiClient() for a zero-configuration default that reads credentials from the ARC_API_KEY and ARC_BASE_URL environment variables, or supply keyword arguments to configure them explicitly. All network methods are synchronous from Python’s perspective; they drive an internal single-threaded Tokio runtime for each call.

§See Also

Implementations§

Source§

impl PyArcAgiClient

Source

pub fn new( api_key: Option<String>, base_url: Option<String>, cookie_store: bool, proxy: Option<String>, ) -> PyResult<Self>

Create a new ArcAgiClient.

Args: api_key: Optional API key string. Falls back to ARC_API_KEY environment variable and then to an empty string. base_url: Optional server base URL. Falls back to ARC_BASE_URL environment variable and then to "https://three.arcprize.org". cookie_store: Enable cookie persistence across requests (default False). proxy: Optional proxy URL, e.g. "socks5://127.0.0.1:9050".

Raises: RuntimeError: If the proxy URL is invalid or the HTTP client cannot be constructed.

Source

pub fn get_anonymous_key(&self) -> PyResult<String>

Retrieve an anonymous API key from the server.

Returns: The anonymous API key string.

Raises: RuntimeError: On network or HTTP failure.

Source

pub fn list_environments(&self) -> PyResult<Vec<PyEnvironmentInfo>>

Return the list of all available game environments.

Returns: A list of :class:EnvironmentInfo objects.

Raises: RuntimeError: On network or HTTP failure.

Source

pub fn get_environment(&self, game_id: String) -> PyResult<PyEnvironmentInfo>

Return metadata for a single game environment.

Args: game_id: The game identifier (e.g. "ls20").

Returns: An :class:EnvironmentInfo object.

Raises: RuntimeError: If the game is not found or on network failure.

Source

pub fn open_scorecard( &self, source_url: Option<String>, tags: Option<Vec<String>>, competition_mode: Option<bool>, ) -> PyResult<String>

Create a new scorecard and return its ID.

Args: source_url: Optional URL linking to the agent being evaluated. tags: Optional list of classification tag strings. competition_mode: When True, enables one-way competition semantics.

Returns: The card_id string of the newly created scorecard.

Raises: RuntimeError: On network or HTTP failure.

Source

pub fn get_scorecard(&self, card_id: String) -> PyResult<PyEnvironmentScorecard>

Retrieve an existing scorecard by its ID.

Args: card_id: The scorecard identifier.

Returns: An :class:EnvironmentScorecard object.

Raises: RuntimeError: If the scorecard is not found or on network failure.

Source

pub fn close_scorecard( &self, card_id: String, ) -> PyResult<PyEnvironmentScorecard>

Close and finalise a scorecard.

Args: card_id: The scorecard identifier.

Returns: An :class:EnvironmentScorecard with the final scores.

Raises: RuntimeError: If the scorecard is not found or on network failure.

Source

pub fn reset( &self, game_id: String, scorecard_id: String, guid: Option<String>, seed: u32, ) -> PyResult<PyFrameData>

Reset (or start) a game environment.

Args: game_id: The game identifier. scorecard_id: The scorecard to record this run under. guid: Optional existing run GUID to re-use. seed: Random seed for reproducible level ordering (default 0).

Returns: A :class:FrameData object with the initial game state.

Raises: RuntimeError: On network or HTTP failure.

Source

pub fn step( &self, game_id: String, scorecard_id: String, guid: String, action_id: u32, data: Option<&Bound<'_, PyDict>>, reasoning: Option<&Bound<'_, PyDict>>, ) -> PyResult<PyFrameData>

Send one game action and receive the resulting frame.

Args: game_id: The game identifier. scorecard_id: The scorecard identifier. guid: The run GUID from a prior :meth:reset call. action_id: Numeric action ID (0 = RESET). data: Optional dict of action data (e.g. {"x": 3, "y": 4}). reasoning: Optional dict of freeform reasoning.

Returns: A :class:FrameData object with the updated game state.

Raises: RuntimeError: On network or HTTP failure.

Source

pub fn __repr__(&self) -> String

Trait Implementations§

Source§

impl<'py> IntoPyObject<'py> for PyArcAgiClient

Source§

type Target = PyArcAgiClient

The Python output type
Source§

type Output = Bound<'py, <PyArcAgiClient as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

The type returned in the event of a conversion error.
Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for PyArcAgiClient

Source§

const NAME: &str = "ArcAgiClient"

Name of the class. Read more
Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for PyArcAgiClient

Source§

const MODULE: Option<&str> = ::core::option::Option::None

Module which the class will be associated with. Read more
Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// An HTTP client for interacting with the ARC-AGI-3 REST API. /// /// Construct with ``ArcAgiClient()`` for a zero-configuration default that /// reads credentials from the ``ARC_API_KEY`` and ``ARC_BASE_URL`` environment /// variables, or supply keyword arguments to configure them explicitly. All /// network methods are **synchronous** from Python's perspective; they drive /// an internal single-threaded Tokio runtime for each call. /// /// # See Also /// /// - [ARC-AGI-3 Reference](https://arcprize.org/arc-agi/3)

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type Layout = <<PyArcAgiClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<PyArcAgiClient>

Description of how this class is laid out in memory
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = NoopThreadChecker

This handles following two situations: Read more
Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

Source§

fn dict_offset() -> Option<PyObjectOffset>

Used to provide the dictoffset slot (equivalent to tp_dictoffset)
Source§

fn weaklist_offset() -> Option<PyObjectOffset>

Used to provide the weaklistoffset slot (equivalent to tp_weaklistoffset
Source§

impl PyClassNewTextSignature for PyArcAgiClient

Source§

const TEXT_SIGNATURE: &'static str = "(api_key=None, base_url=None, cookie_store=False, proxy=None)"

Source§

impl PyMethods<PyArcAgiClient> for PyClassImplCollector<PyArcAgiClient>

Source§

fn py_methods(self) -> &'static PyClassItems

Source§

impl PyTypeInfo for PyArcAgiClient

Source§

const NAME: &str = <Self as ::pyo3::PyClass>::NAME

👎Deprecated since 0.28.0:

prefer using ::type_object(py).name() to get the correct runtime value

Class name.
Source§

const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE

👎Deprecated since 0.28.0:

prefer using ::type_object(py).module() to get the correct runtime value

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
Source§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
Source§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
Source§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl DerefToPyAny for PyArcAgiClient

Source§

impl ExtractPyClassWithClone for PyArcAgiClient

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

Source§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
Source§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts self into an owned Python object, dropping type information and unbinding it from the 'py lifetime.
Source§

fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>

Converts self into a Python object. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

Source§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
Source§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

Source§

const NAME: &'static str = T::NAME

👎Deprecated since 0.27.0:

Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.

Name of self. This is used in error messages, for example.
Source§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
Source§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Ungil for T
where T: Send,