pub struct CoinbaseHttpClient { /* private fields */ }Expand description
Provides a domain-level HTTP client for the Coinbase Advanced Trade API.
Wraps CoinbaseRawHttpClient in an Arc and adds instrument caching
and Nautilus type conversions. This is the primary HTTP interface for the
data and execution clients.
Implementations§
Source§impl CoinbaseHttpClient
impl CoinbaseHttpClient
Sourcepub fn new(
environment: CoinbaseEnvironment,
timeout_secs: u64,
proxy_url: Option<String>,
retry_config: Option<RetryConfig>,
) -> Result<Self, HttpClientError>
pub fn new( environment: CoinbaseEnvironment, timeout_secs: u64, proxy_url: Option<String>, retry_config: Option<RetryConfig>, ) -> Result<Self, HttpClientError>
Creates a new CoinbaseHttpClient for public endpoints only.
§Errors
Returns an error if the HTTP client cannot be created.
Sourcepub fn with_credentials(
credential: CoinbaseCredential,
environment: CoinbaseEnvironment,
timeout_secs: u64,
proxy_url: Option<String>,
retry_config: Option<RetryConfig>,
) -> Result<Self, HttpClientError>
pub fn with_credentials( credential: CoinbaseCredential, environment: CoinbaseEnvironment, timeout_secs: u64, proxy_url: Option<String>, retry_config: Option<RetryConfig>, ) -> Result<Self, HttpClientError>
Creates a new CoinbaseHttpClient with credentials for authenticated requests.
§Errors
Returns an error if the HTTP client cannot be created.
Sourcepub fn from_env(environment: CoinbaseEnvironment) -> Result<Self>
pub fn from_env(environment: CoinbaseEnvironment) -> Result<Self>
Creates an authenticated client from environment variables.
§Errors
Returns Error::Auth if required environment variables are not set.
Sourcepub fn from_credentials(
api_key: &str,
api_secret: &str,
environment: CoinbaseEnvironment,
timeout_secs: u64,
proxy_url: Option<String>,
retry_config: Option<RetryConfig>,
) -> Result<Self>
pub fn from_credentials( api_key: &str, api_secret: &str, environment: CoinbaseEnvironment, timeout_secs: u64, proxy_url: Option<String>, retry_config: Option<RetryConfig>, ) -> Result<Self>
Creates a new CoinbaseHttpClient with explicit credentials.
§Errors
Returns Error::Auth if credentials are invalid.
Sourcepub fn cancellation_token(&self) -> &CancellationToken
pub fn cancellation_token(&self) -> &CancellationToken
Returns the cancellation token shared by in-flight requests.
Sourcepub fn set_base_url(&self, url: String)
pub fn set_base_url(&self, url: String)
Overrides the base REST URL (for testing with mock servers).
Safe to call regardless of how many clones share the inner client.
Sourcepub fn environment(&self) -> CoinbaseEnvironment
pub fn environment(&self) -> CoinbaseEnvironment
Returns the configured environment.
Sourcepub fn is_authenticated(&self) -> bool
pub fn is_authenticated(&self) -> bool
Returns true if this client has credentials for authenticated requests.
Sourcepub fn instruments(&self) -> &Arc<AtomicMap<InstrumentId, InstrumentAny>> ⓘ
pub fn instruments(&self) -> &Arc<AtomicMap<InstrumentId, InstrumentAny>> ⓘ
Returns a reference to the instrument cache.
Sourcepub fn product_aliases(&self) -> &Arc<AtomicMap<Ustr, Ustr>> ⓘ
pub fn product_aliases(&self) -> &Arc<AtomicMap<Ustr, Ustr>> ⓘ
Returns a reference to the product alias map (product_id -> canonical product_id).
Sourcepub async fn get_products(&self) -> Result<Value>
pub async fn get_products(&self) -> Result<Value>
Gets all available products.
Sourcepub async fn get_product(&self, product_id: &str) -> Result<Value>
pub async fn get_product(&self, product_id: &str) -> Result<Value>
Gets a specific product by ID.
Sourcepub async fn get_candles(
&self,
product_id: &str,
start: &str,
end: &str,
granularity: &str,
) -> Result<Value>
pub async fn get_candles( &self, product_id: &str, start: &str, end: &str, granularity: &str, ) -> Result<Value>
Gets candles for a product.
Sourcepub async fn get_market_trades(
&self,
product_id: &str,
limit: u32,
) -> Result<Value>
pub async fn get_market_trades( &self, product_id: &str, limit: u32, ) -> Result<Value>
Gets market trades for a product.
Sourcepub async fn get_best_bid_ask(&self, product_ids: &[&str]) -> Result<Value>
pub async fn get_best_bid_ask(&self, product_ids: &[&str]) -> Result<Value>
Gets best bid/ask for one or more products.
Sourcepub async fn get_product_book(
&self,
product_id: &str,
limit: Option<u32>,
) -> Result<Value>
pub async fn get_product_book( &self, product_id: &str, limit: Option<u32>, ) -> Result<Value>
Gets the product order book.
Sourcepub async fn get_accounts(&self) -> Result<Value>
pub async fn get_accounts(&self) -> Result<Value>
Gets all accounts.
Sourcepub async fn get_account(&self, account_id: &str) -> Result<Value>
pub async fn get_account(&self, account_id: &str) -> Result<Value>
Gets a specific account by UUID.
Sourcepub async fn get_portfolios(&self) -> Result<Value>
pub async fn get_portfolios(&self) -> Result<Value>
Lists all portfolios visible to the authenticated key.
Sourcepub async fn preview_order(&self, body: &Value) -> Result<Value>
pub async fn preview_order(&self, body: &Value) -> Result<Value>
Validates an order payload against the venue without submitting it.
Useful for diagnosing account is not available and similar errors
because it returns the same error envelope as POST /orders.
Sourcepub async fn get_orders(&self, query: &str) -> Result<Value>
pub async fn get_orders(&self, query: &str) -> Result<Value>
Gets historical orders.
Sourcepub async fn get_transaction_summary(&self) -> Result<Value>
pub async fn get_transaction_summary(&self) -> Result<Value>
Gets fee transaction summary.
Sourcepub async fn request_instruments(
&self,
product_type: Option<CoinbaseProductType>,
) -> Result<Vec<InstrumentAny>>
pub async fn request_instruments( &self, product_type: Option<CoinbaseProductType>, ) -> Result<Vec<InstrumentAny>>
Requests all instruments from Coinbase, optionally filtered by product type.
Parses each supported product into a Nautilus [InstrumentAny] and caches
the results in the shared instrument map. Unsupported products (non-crypto
futures, UNKNOWN product types) are skipped with a debug log.
§Errors
Returns an error when the HTTP request fails or the response cannot be deserialized.
Sourcepub async fn request_instrument(
&self,
product_id: &str,
) -> Result<InstrumentAny>
pub async fn request_instrument( &self, product_id: &str, ) -> Result<InstrumentAny>
Requests a single instrument by product ID.
Caches the result on success.
§Errors
Returns an error when the HTTP request fails, deserialization fails, or the product cannot be parsed into a supported instrument.
Sourcepub async fn request_raw_product(&self, product_id: &str) -> Result<Product>
pub async fn request_raw_product(&self, product_id: &str) -> Result<Product>
Requests the raw product payload for a product ID.
Returns the full crate::http::models::Product so callers can read
derivatives-specific fields (future_product_details.index_price,
funding_rate, funding_time) that are stripped when parsing to a
Nautilus instrument.
§Errors
Returns an error when the HTTP request fails or the response cannot be deserialized.
Sourcepub async fn request_account_state(
&self,
account_id: AccountId,
) -> Result<AccountState>
pub async fn request_account_state( &self, account_id: AccountId, ) -> Result<AccountState>
Requests the current account state.
Builds a cash-type [AccountState] from /accounts with one balance
per currency. Follows Coinbase’s cursor pagination so multi-wallet
accounts are reported in full. reported is set to true since the
values come from the venue.
§Errors
Returns an error when the HTTP request fails or the response cannot be parsed.
Sourcepub async fn request_order_status_report(
&self,
account_id: AccountId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
) -> Result<OrderStatusReport>
pub async fn request_order_status_report( &self, account_id: AccountId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, ) -> Result<OrderStatusReport>
Requests a single order status report by venue or client order ID.
Resolves venue order IDs first via /orders/historical/{id}. When only a
client_order_id is provided, paginates the order history filtered to
that client ID.
§Errors
Returns an error when the HTTP request fails, the order cannot be found, or the response cannot be parsed.
Sourcepub async fn request_order_status_reports(
&self,
account_id: AccountId,
instrument_id: Option<InstrumentId>,
open_only: bool,
start: Option<DateTime<Utc>>,
end: Option<DateTime<Utc>>,
limit: Option<u32>,
) -> Result<Vec<OrderStatusReport>>
pub async fn request_order_status_reports( &self, account_id: AccountId, instrument_id: Option<InstrumentId>, open_only: bool, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<u32>, ) -> Result<Vec<OrderStatusReport>>
Requests order status reports, optionally filtered by instrument, open status, and time window.
§Errors
Returns an error when the HTTP request fails or when any response cannot be deserialized.
Sourcepub async fn request_fill_reports(
&self,
account_id: AccountId,
instrument_id: Option<InstrumentId>,
venue_order_id: Option<VenueOrderId>,
start: Option<DateTime<Utc>>,
end: Option<DateTime<Utc>>,
limit: Option<u32>,
) -> Result<Vec<FillReport>>
pub async fn request_fill_reports( &self, account_id: AccountId, instrument_id: Option<InstrumentId>, venue_order_id: Option<VenueOrderId>, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<u32>, ) -> Result<Vec<FillReport>>
Requests fill reports, optionally filtered by instrument, venue order ID, and time window.
§Errors
Returns an error when the HTTP request fails or the response cannot be deserialized.
Sourcepub fn cache_instrument(&self, instrument: &InstrumentAny)
pub fn cache_instrument(&self, instrument: &InstrumentAny)
Caches an instrument in the shared instrument map.
Sourcepub fn cache_instruments(&self, instruments: &[InstrumentAny])
pub fn cache_instruments(&self, instruments: &[InstrumentAny])
Caches a batch of instruments in the shared instrument map.
Sourcepub fn record_product_aliases(&self, products: &[Product])
pub fn record_product_aliases(&self, products: &[Product])
Records product_id -> alias entries for any product whose alias
field is non-empty. Coinbase aliases pairs to a canonical id (e.g.
BTC-USDC -> BTC-USD) that the WebSocket and user channel use on the
wire even when callers operate on the alias side.
Sourcepub async fn submit_order(
&self,
client_order_id: ClientOrderId,
instrument_id: InstrumentId,
side: OrderSide,
order_type: OrderType,
quantity: Quantity,
time_in_force: TimeInForce,
price: Option<Price>,
trigger_price: Option<Price>,
expire_time: Option<UnixNanos>,
post_only: bool,
is_quote_quantity: bool,
leverage: Option<Decimal>,
margin_type: Option<CoinbaseMarginType>,
reduce_only: bool,
retail_portfolio_id: Option<String>,
) -> Result<CreateOrderResponse>
pub async fn submit_order( &self, client_order_id: ClientOrderId, instrument_id: InstrumentId, side: OrderSide, order_type: OrderType, quantity: Quantity, time_in_force: TimeInForce, price: Option<Price>, trigger_price: Option<Price>, expire_time: Option<UnixNanos>, post_only: bool, is_quote_quantity: bool, leverage: Option<Decimal>, margin_type: Option<CoinbaseMarginType>, reduce_only: bool, retail_portfolio_id: Option<String>, ) -> Result<CreateOrderResponse>
Submits a new order built from Nautilus domain types.
Maps the order side, order type, and time-in-force to Coinbase’s
order_configuration shape and posts to /orders. Returns the
venue’s create-order response; callers inspect success and the
success/error response variants.
§Errors
Returns an error when the order parameters cannot be mapped to a supported Coinbase configuration, when the HTTP request fails, or when the response cannot be parsed.
Sourcepub async fn cancel_orders(
&self,
venue_order_ids: &[VenueOrderId],
) -> Result<CancelOrdersResponse>
pub async fn cancel_orders( &self, venue_order_ids: &[VenueOrderId], ) -> Result<CancelOrdersResponse>
Cancels one or more orders by venue order ID via batch_cancel.
§Errors
Returns an error when the HTTP request fails or the response cannot be parsed.
Sourcepub async fn request_cfm_balance_summary(&self) -> Result<CfmBalanceSummary>
pub async fn request_cfm_balance_summary(&self) -> Result<CfmBalanceSummary>
Fetches the CFM (futures) balance summary.
§Errors
Returns an error when the HTTP request fails or the response cannot be deserialized.
Sourcepub async fn request_cfm_margin_balances(&self) -> Result<Vec<MarginBalance>>
pub async fn request_cfm_margin_balances(&self) -> Result<Vec<MarginBalance>>
Fetches margin balances derived from the CFM balance summary.
§Errors
Returns an error when the summary cannot be fetched or when a balance cannot be constructed.
Sourcepub async fn request_cfm_account_state(
&self,
account_id: AccountId,
) -> Result<AccountState>
pub async fn request_cfm_account_state( &self, account_id: AccountId, ) -> Result<AccountState>
Fetches a margin [AccountState] derived from the CFM balance summary.
§Errors
Returns an error when the summary cannot be fetched or when balances cannot be constructed.
Sourcepub async fn request_position_status_reports(
&self,
account_id: AccountId,
) -> Result<Vec<PositionStatusReport>>
pub async fn request_position_status_reports( &self, account_id: AccountId, ) -> Result<Vec<PositionStatusReport>>
Fetches all CFM futures positions and returns Nautilus position reports.
§Errors
Returns an error when the HTTP request fails or a position cannot be parsed.
Sourcepub async fn request_position_status_report(
&self,
account_id: AccountId,
instrument_id: InstrumentId,
) -> Result<Option<PositionStatusReport>>
pub async fn request_position_status_report( &self, account_id: AccountId, instrument_id: InstrumentId, ) -> Result<Option<PositionStatusReport>>
Fetches a single CFM futures position and returns a position status report when the venue reports a non-flat position.
§Errors
Returns an error when the HTTP request fails or the position cannot be parsed.
Sourcepub async fn modify_order(
&self,
venue_order_id: VenueOrderId,
price: Option<Price>,
quantity: Option<Quantity>,
trigger_price: Option<Price>,
) -> Result<EditOrderResponse>
pub async fn modify_order( &self, venue_order_id: VenueOrderId, price: Option<Price>, quantity: Option<Quantity>, trigger_price: Option<Price>, ) -> Result<EditOrderResponse>
Modifies an existing GTC order’s price, size, or stop price.
Coinbase’s /orders/edit endpoint is documented to accept edits on
these fields for supported order configurations (primarily LIMIT
GTC). At least one of price, quantity, or trigger_price must
be supplied.
§Errors
Returns an error when the HTTP request fails or the response cannot be deserialized.
Trait Implementations§
Source§impl Clone for CoinbaseHttpClient
impl Clone for CoinbaseHttpClient
Source§fn clone(&self) -> CoinbaseHttpClient
fn clone(&self) -> CoinbaseHttpClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CoinbaseHttpClient
impl Debug for CoinbaseHttpClient
Source§impl Default for CoinbaseHttpClient
impl Default for CoinbaseHttpClient
Source§impl<'a, 'py> FromPyObject<'a, 'py> for CoinbaseHttpClientwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for CoinbaseHttpClientwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for CoinbaseHttpClient
impl<'py> IntoPyObject<'py> for CoinbaseHttpClient
Source§type Target = CoinbaseHttpClient
type Target = CoinbaseHttpClient
Source§type Output = Bound<'py, <CoinbaseHttpClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <CoinbaseHttpClient as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for CoinbaseHttpClient
impl PyClass for CoinbaseHttpClient
Source§impl PyClassImpl for CoinbaseHttpClient
impl PyClassImpl for CoinbaseHttpClient
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Provides a domain-level HTTP client for the Coinbase Advanced Trade API.
///
/// Wraps [`CoinbaseRawHttpClient`] in an `Arc` and adds instrument caching
/// and Nautilus type conversions. This is the primary HTTP interface for the
/// data and execution clients.
const RAW_DOC: &'static CStr = /// Provides a domain-level HTTP client for the Coinbase Advanced Trade API. /// /// Wraps [`CoinbaseRawHttpClient`] in an `Arc` and adds instrument caching /// and Nautilus type conversions. This is the primary HTTP interface for the /// data and execution clients.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<CoinbaseHttpClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<CoinbaseHttpClient>
type Layout = <<CoinbaseHttpClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<CoinbaseHttpClient>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForCoinbaseHttpClient
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyStubType for CoinbaseHttpClient
impl PyStubType for CoinbaseHttpClient
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for CoinbaseHttpClient
impl PyTypeInfo for CoinbaseHttpClient
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for CoinbaseHttpClient
Auto Trait Implementations§
impl Freeze for CoinbaseHttpClient
impl !RefUnwindSafe for CoinbaseHttpClient
impl Send for CoinbaseHttpClient
impl Sync for CoinbaseHttpClient
impl Unpin for CoinbaseHttpClient
impl UnsafeUnpin for CoinbaseHttpClient
impl !UnwindSafe for CoinbaseHttpClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read more§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
§fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
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.
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more