pub struct EmbeddedPythonContext<'a> {
pub config: PyembedPythonInterpreterConfig,
pub link_settings: LibpythonLinkSettings,
pub pending_resources: Vec<(CompiledResourcesCollection<'a>, PathBuf)>,
pub extra_files: FileManifest,
pub host_triple: String,
pub target_triple: String,
pub python_implementation: PythonImplementation,
pub python_version: PythonVersion,
pub python_exe_host: PathBuf,
pub python_build_flags: BuildFlags,
pub licensing_filename: Option<String>,
pub licensing: LicensedComponents,
}
Expand description
Holds context necessary to embed Python in a binary.
Fields§
§config: PyembedPythonInterpreterConfig
The configuration for the embedded interpreter.
link_settings: LibpythonLinkSettings
Information on how to link against Python.
pending_resources: Vec<(CompiledResourcesCollection<'a>, PathBuf)>
Python resources that need to be serialized to a file.
extra_files: FileManifest
Extra files to install next to produced binary.
host_triple: String
Rust target triple for the host we are running on.
target_triple: String
Rust target triple for the target we are building for.
python_implementation: PythonImplementation
Name of the Python implementation.
python_version: PythonVersion
Python interpreter version.
python_exe_host: PathBuf
Path to a python
executable that runs on the host/build machine.
python_build_flags: BuildFlags
Python build flags.
To pass to PyO3.
licensing_filename: Option<String>
Name of file to write licensing information to.
licensing: LicensedComponents
Licensing metadata for components to be built/embedded.
Implementations§
Source§impl<'a> EmbeddedPythonContext<'a>
impl<'a> EmbeddedPythonContext<'a>
Sourcepub fn interpreter_config_rs_path(&self, dest_dir: impl AsRef<Path>) -> PathBuf
pub fn interpreter_config_rs_path(&self, dest_dir: impl AsRef<Path>) -> PathBuf
Obtain the filesystem of the generated Rust source file containing the interpreter configuration.
Sourcepub fn pyo3_config_path(&self, dest_dir: impl AsRef<Path>) -> PathBuf
pub fn pyo3_config_path(&self, dest_dir: impl AsRef<Path>) -> PathBuf
Resolve the filesystem path to the PyO3 configuration file.
Sourcepub fn pyo3_interpreter_config(
&self,
dest_dir: impl AsRef<Path>,
) -> Result<PyO3InterpreterConfig>
pub fn pyo3_interpreter_config( &self, dest_dir: impl AsRef<Path>, ) -> Result<PyO3InterpreterConfig>
Resolve a PyO3InterpreterConfig for this instance.
Sourcepub fn write_packed_resources(&self, dest_dir: impl AsRef<Path>) -> Result<()>
pub fn write_packed_resources(&self, dest_dir: impl AsRef<Path>) -> Result<()>
Ensure packed resources files are written.
Sourcepub fn write_libpython(&self, dest_dir: impl AsRef<Path>) -> Result<()>
pub fn write_libpython(&self, dest_dir: impl AsRef<Path>) -> Result<()>
Ensure files required by libpython are written.
Sourcepub fn write_interpreter_config_rs(
&self,
dest_dir: impl AsRef<Path>,
) -> Result<()>
pub fn write_interpreter_config_rs( &self, dest_dir: impl AsRef<Path>, ) -> Result<()>
Write the file containing the default interpreter configuration Rust struct.
Sourcepub fn write_pyo3_config(&self, dest_dir: impl AsRef<Path>) -> Result<()>
pub fn write_pyo3_config(&self, dest_dir: impl AsRef<Path>) -> Result<()>
Write the PyO3 configuration file.
Sourcepub fn write_licensing(&self, dest_dir: impl AsRef<Path>) -> Result<()>
pub fn write_licensing(&self, dest_dir: impl AsRef<Path>) -> Result<()>
Write an aggregated licensing document, if enabled.
Sourcepub fn write_files(&self, dest_dir: &Path) -> Result<()>
pub fn write_files(&self, dest_dir: &Path) -> Result<()>
Write out files needed to build a binary against our configuration.
Sourcepub fn licensing(&self) -> &LicensedComponents
pub fn licensing(&self) -> &LicensedComponents
Obtain licensing information for this instance.
Sourcepub fn add_licensed_component(
&mut self,
component: LicensedComponent,
) -> Result<()>
pub fn add_licensed_component( &mut self, component: LicensedComponent, ) -> Result<()>
Add a licensed component to the collection.
Sourcepub fn synchronize_licensing(&mut self) -> Result<()>
pub fn synchronize_licensing(&mut self) -> Result<()>
Ensuring licensing state between registered licenses and an output licensing file is in sync.
Auto Trait Implementations§
impl<'a> Freeze for EmbeddedPythonContext<'a>
impl<'a> RefUnwindSafe for EmbeddedPythonContext<'a>
impl<'a> Send for EmbeddedPythonContext<'a>
impl<'a> Sync for EmbeddedPythonContext<'a>
impl<'a> Unpin for EmbeddedPythonContext<'a>
impl<'a> UnwindSafe for EmbeddedPythonContext<'a>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.