pub struct TardisHttpClient { /* private fields */ }Expand description
A Tardis HTTP API client. See https://docs.tardis.dev/api/http.
Implementations§
Source§impl TardisHttpClient
impl TardisHttpClient
Sourcepub fn new(
api_key: Option<&str>,
base_url: Option<&str>,
timeout_secs: Option<u64>,
normalize_symbols: bool,
proxy_url: Option<String>,
) -> Result<Self>
pub fn new( api_key: Option<&str>, base_url: Option<&str>, timeout_secs: Option<u64>, normalize_symbols: bool, proxy_url: Option<String>, ) -> Result<Self>
Creates a new TardisHttpClient instance.
§Errors
Returns an error if no API key is provided (argument or TARDIS_API_KEY env var),
or if the HTTP client cannot be built.
Sourcepub const fn credential(&self) -> Option<&Credential>
pub const fn credential(&self) -> Option<&Credential>
Returns the credential associated with this client.
Sourcepub async fn instruments_info(
&self,
exchange: TardisExchange,
symbol: Option<&str>,
filter: Option<&InstrumentFilter>,
) -> Result<Vec<TardisInstrumentInfo>>
pub async fn instruments_info( &self, exchange: TardisExchange, symbol: Option<&str>, filter: Option<&InstrumentFilter>, ) -> Result<Vec<TardisInstrumentInfo>>
Returns all Tardis instrument definitions for the given exchange.
§Errors
Returns an error if the HTTP request fails or the response cannot be parsed.
Sourcepub async fn instruments(
&self,
exchange: TardisExchange,
symbol: Option<&str>,
filter: Option<&InstrumentFilter>,
start: Option<UnixNanos>,
end: Option<UnixNanos>,
available_offset: Option<UnixNanos>,
effective: Option<UnixNanos>,
ts_init: Option<UnixNanos>,
) -> Result<Vec<InstrumentAny>>
pub async fn instruments( &self, exchange: TardisExchange, symbol: Option<&str>, filter: Option<&InstrumentFilter>, start: Option<UnixNanos>, end: Option<UnixNanos>, available_offset: Option<UnixNanos>, effective: Option<UnixNanos>, ts_init: Option<UnixNanos>, ) -> Result<Vec<InstrumentAny>>
Returns all Nautilus instrument definitions for the given exchange, and filter params.
§Errors
Returns an error if fetching instrument info or parsing into domain types fails.
Sourcepub async fn bootstrap_instruments(
&self,
exchanges: &AHashSet<TardisExchange>,
) -> Result<(AHashMap<TardisInstrumentKey, Arc<TardisInstrumentMiniInfo>>, Vec<InstrumentAny>)>
pub async fn bootstrap_instruments( &self, exchanges: &AHashSet<TardisExchange>, ) -> Result<(AHashMap<TardisInstrumentKey, Arc<TardisInstrumentMiniInfo>>, Vec<InstrumentAny>)>
Fetches instruments for the given exchanges, builds the mini-info map for WS message parsing, and parses Nautilus instrument definitions.
Returns a tuple of (instrument_map, nautilus_instruments). The caller
decides how to use each half: data.rs emits instruments via the data
sender; replay.rs only needs the map.
§Errors
Returns an error if fetching instrument info for any exchange fails.
Trait Implementations§
Source§impl Clone for TardisHttpClient
impl Clone for TardisHttpClient
Source§fn clone(&self) -> TardisHttpClient
fn clone(&self) -> TardisHttpClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TardisHttpClient
impl Debug for TardisHttpClient
Source§impl<'a, 'py> FromPyObject<'a, 'py> for TardisHttpClientwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for TardisHttpClientwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for TardisHttpClient
impl<'py> IntoPyObject<'py> for TardisHttpClient
Source§type Target = TardisHttpClient
type Target = TardisHttpClient
Source§type Output = Bound<'py, <TardisHttpClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <TardisHttpClient 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 TardisHttpClient
impl PyClass for TardisHttpClient
Source§impl PyClassImpl for TardisHttpClient
impl PyClassImpl for TardisHttpClient
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 = /// A Tardis HTTP API client.
/// See <https://docs.tardis.dev/api/http>.
const RAW_DOC: &'static CStr = /// A Tardis HTTP API client. /// See <https://docs.tardis.dev/api/http>.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<TardisHttpClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<TardisHttpClient>
type Layout = <<TardisHttpClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<TardisHttpClient>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForTardisHttpClient
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 PyClassNewTextSignature for TardisHttpClient
impl PyClassNewTextSignature for TardisHttpClient
const TEXT_SIGNATURE: &'static str = "(api_key=None, base_url=None, timeout_secs=None, normalize_symbols=True, proxy_url=None)"
Source§impl PyStubType for TardisHttpClient
impl PyStubType for TardisHttpClient
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for TardisHttpClient
impl PyTypeInfo for TardisHttpClient
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 TardisHttpClient
Auto Trait Implementations§
impl Freeze for TardisHttpClient
impl !RefUnwindSafe for TardisHttpClient
impl Send for TardisHttpClient
impl Sync for TardisHttpClient
impl Unpin for TardisHttpClient
impl UnsafeUnpin for TardisHttpClient
impl !UnwindSafe for TardisHttpClient
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