mirror of
https://github.com/mii443/tokenizers.git
synced 2025-08-22 16:25:30 +00:00
* Upgrade pyo3 to 0.15 Rebase-conflicts-fixed-by: H. Vetinari <h.vetinari@gmx.com> * Upgrade pyo3 to 0.16 Rebase-conflicts-fixed-by: H. Vetinari <h.vetinari@gmx.com> * Install Python before running cargo clippy * Fix clippy warnings * Use `PyArray_Check` instead of downcasting to `PyArray1<u8>` * Enable `auto-initialize` of pyo3 to fix `cargo test --no-default-features` * Fix some test cases Why do they change? * Refactor and add SAFETY comments to `PyArrayUnicode` Replace deprecated `PyUnicode_FromUnicode` with `PyUnicode_FromKindAndData` Co-authored-by: messense <messense@icloud.com>
44 lines
1.3 KiB
Rust
44 lines
1.3 KiB
Rust
use pyo3::exceptions;
|
|
use pyo3::prelude::*;
|
|
use pyo3::type_object::PyTypeObject;
|
|
use std::fmt::{Display, Formatter, Result as FmtResult};
|
|
use tokenizers::tokenizer::Result;
|
|
|
|
#[derive(Debug)]
|
|
pub struct PyError(pub String);
|
|
impl PyError {
|
|
#[allow(dead_code)]
|
|
pub fn from(s: &str) -> Self {
|
|
PyError(String::from(s))
|
|
}
|
|
pub fn into_pyerr<T: PyTypeObject>(self) -> PyErr {
|
|
PyErr::new::<T, _>(format!("{}", self))
|
|
}
|
|
}
|
|
impl Display for PyError {
|
|
fn fmt(&self, fmt: &mut Formatter) -> FmtResult {
|
|
write!(fmt, "{}", self.0)
|
|
}
|
|
}
|
|
impl std::error::Error for PyError {}
|
|
|
|
pub struct ToPyResult<T>(pub Result<T>);
|
|
impl<T> From<ToPyResult<T>> for PyResult<T> {
|
|
fn from(v: ToPyResult<T>) -> Self {
|
|
v.0.map_err(|e| exceptions::PyException::new_err(format!("{}", e)))
|
|
}
|
|
}
|
|
impl<T> ToPyResult<T> {
|
|
pub fn into_py(self) -> PyResult<T> {
|
|
self.into()
|
|
}
|
|
}
|
|
|
|
pub(crate) fn deprecation_warning(version: &str, message: &str) -> PyResult<()> {
|
|
let gil = pyo3::Python::acquire_gil();
|
|
let python = gil.python();
|
|
let deprecation_warning = python.import("builtins")?.getattr("DeprecationWarning")?;
|
|
let full_message = format!("Deprecated in {}: {}", version, message);
|
|
pyo3::PyErr::warn(python, deprecation_warning, &full_message, 0)
|
|
}
|