mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
add constants and implement functions
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
This commit is contained in:
1 parent
1f3a9672c3
commit
d7a72b5755
3 files changed
+75
-8
No files matched your search
Generated
+3
-2
@@ -1644,11 +1644,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "puruspe"
|
||||
version = "0.3.0"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5666f1226a41ebb7191b702947674f4814c9919da58a9f91a60090412664bbce"
|
||||
checksum = "d76c522e44709f541a403db419a7e34d6fbbc8e6b208589ae29a030cddeefd96"
|
||||
dependencies = [
|
||||
"lambert_w",
|
||||
"num-complex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
+65
-3
@@ -28,10 +28,20 @@ mod _winapi {
|
||||
ERROR_PIPE_CONNECTED, ERROR_SEM_TIMEOUT, GENERIC_READ, GENERIC_WRITE, STILL_ACTIVE,
|
||||
WAIT_ABANDONED, WAIT_ABANDONED_0, WAIT_OBJECT_0, WAIT_TIMEOUT,
|
||||
},
|
||||
Globalization::{
|
||||
LCMAP_FULLWIDTH, LCMAP_HALFWIDTH, LCMAP_HIRAGANA, LCMAP_KATAKANA,
|
||||
LCMAP_LINGUISTIC_CASING, LCMAP_LOWERCASE, LCMAP_SIMPLIFIED_CHINESE, LCMAP_TITLECASE,
|
||||
LCMAP_TRADITIONAL_CHINESE, LCMAP_UPPERCASE,
|
||||
},
|
||||
Storage::FileSystem::{
|
||||
FILE_FLAG_FIRST_PIPE_INSTANCE, FILE_FLAG_OVERLAPPED, FILE_GENERIC_READ,
|
||||
FILE_GENERIC_WRITE, FILE_TYPE_CHAR, FILE_TYPE_DISK, FILE_TYPE_PIPE, FILE_TYPE_REMOTE,
|
||||
FILE_TYPE_UNKNOWN, OPEN_EXISTING, PIPE_ACCESS_DUPLEX, PIPE_ACCESS_INBOUND, SYNCHRONIZE,
|
||||
COPYFILE2_CALLBACK_CHUNK_FINISHED, COPYFILE2_CALLBACK_CHUNK_STARTED,
|
||||
COPYFILE2_CALLBACK_ERROR, COPYFILE2_CALLBACK_POLL_CONTINUE,
|
||||
COPYFILE2_CALLBACK_STREAM_FINISHED, COPYFILE2_CALLBACK_STREAM_STARTED,
|
||||
COPYFILE2_PROGRESS_CANCEL, COPYFILE2_PROGRESS_CONTINUE, COPYFILE2_PROGRESS_PAUSE,
|
||||
COPYFILE2_PROGRESS_QUIET, COPYFILE2_PROGRESS_STOP, FILE_FLAG_FIRST_PIPE_INSTANCE,
|
||||
FILE_FLAG_OVERLAPPED, FILE_GENERIC_READ, FILE_GENERIC_WRITE, FILE_TYPE_CHAR,
|
||||
FILE_TYPE_DISK, FILE_TYPE_PIPE, FILE_TYPE_REMOTE, FILE_TYPE_UNKNOWN, OPEN_EXISTING,
|
||||
PIPE_ACCESS_DUPLEX, PIPE_ACCESS_INBOUND, SYNCHRONIZE,
|
||||
},
|
||||
System::{
|
||||
Console::{STD_ERROR_HANDLE, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE},
|
||||
@@ -53,6 +63,13 @@ mod _winapi {
|
||||
IDLE_PRIORITY_CLASS, INFINITE, NORMAL_PRIORITY_CLASS, PROCESS_DUP_HANDLE,
|
||||
REALTIME_PRIORITY_CLASS, STARTF_USESHOWWINDOW, STARTF_USESTDHANDLES,
|
||||
},
|
||||
WindowsProgramming::{
|
||||
COPY_FILE_ALLOW_DECRYPTED_DESTINATION, COPY_FILE_COPY_SYMLINK,
|
||||
COPY_FILE_FAIL_IF_EXISTS, COPY_FILE_NO_BUFFERING, COPY_FILE_NO_OFFLOAD,
|
||||
COPY_FILE_OPEN_SOURCE_FOR_WRITE, COPY_FILE_REQUEST_COMPRESSED_TRAFFIC,
|
||||
COPY_FILE_REQUEST_SECURITY_PRIVILEGES, COPY_FILE_RESTARTABLE,
|
||||
COPY_FILE_RESUME_FROM_PAUSE,
|
||||
},
|
||||
},
|
||||
UI::WindowsAndMessaging::SW_HIDE,
|
||||
};
|
||||
@@ -142,6 +159,16 @@ mod _winapi {
|
||||
}
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn GetLastError() -> u32 {
|
||||
unsafe { windows_sys::Win32::Foundation::GetLastError() }
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn GetVersion() -> u32 {
|
||||
unsafe { windows_sys::Win32::System::SystemInformation::GetVersion() }
|
||||
}
|
||||
|
||||
#[derive(FromArgs)]
|
||||
struct CreateProcessArgs {
|
||||
#[pyarg(positional)]
|
||||
@@ -254,6 +281,21 @@ mod _winapi {
|
||||
))
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn OpenProcess(
|
||||
desired_access: u32,
|
||||
inherit_handle: bool,
|
||||
process_id: u32,
|
||||
) -> windows_sys::Win32::Foundation::HANDLE {
|
||||
unsafe {
|
||||
windows_sys::Win32::System::Threading::OpenProcess(
|
||||
desired_access,
|
||||
BOOL::from(inherit_handle),
|
||||
process_id,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn NeedCurrentDirectoryForExePath(exe_name: PyStrRef) -> bool {
|
||||
let exe_name = exe_name.as_str().to_wide_with_nul();
|
||||
@@ -452,4 +494,24 @@ mod _winapi {
|
||||
let (path, _) = path.split_at(length as usize);
|
||||
Ok(String::from_utf16(path).unwrap())
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn OpenMutexW(desired_access: u32, inherit_handle: bool, name: u16) -> PyResult<isize> {
|
||||
let handle = unsafe {
|
||||
windows_sys::Win32::System::Threading::OpenMutexW(
|
||||
desired_access,
|
||||
BOOL::from(inherit_handle),
|
||||
windows_sys::core::PCWSTR::from(name as _),
|
||||
)
|
||||
};
|
||||
// if handle.is_invalid() {
|
||||
// return Err(errno_err(vm));
|
||||
// }
|
||||
Ok(handle)
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn ReleaseMutex(handle: isize) -> WindowsSysResult<BOOL> {
|
||||
WindowsSysResult(unsafe { windows_sys::Win32::System::Threading::ReleaseMutex(handle) })
|
||||
}
|
||||
}
|
||||
@@ -47,9 +47,13 @@ mod winreg {
|
||||
// value types
|
||||
#[pyattr]
|
||||
pub use windows_sys::Win32::System::Registry::{
|
||||
REG_BINARY, REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_DWORD_LITTLE_ENDIAN, REG_EXPAND_SZ,
|
||||
REG_FULL_RESOURCE_DESCRIPTOR, REG_LINK, REG_MULTI_SZ, REG_NONE, REG_QWORD,
|
||||
REG_QWORD_LITTLE_ENDIAN, REG_RESOURCE_LIST, REG_RESOURCE_REQUIREMENTS_LIST, REG_SZ,
|
||||
REG_BINARY, REG_CREATED_NEW_KEY, REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_DWORD_LITTLE_ENDIAN,
|
||||
REG_EXPAND_SZ, REG_FULL_RESOURCE_DESCRIPTOR, REG_LINK, REG_MULTI_SZ, REG_NONE,
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES, REG_NOTIFY_CHANGE_LAST_SET, REG_NOTIFY_CHANGE_NAME,
|
||||
REG_NOTIFY_CHANGE_SECURITY, REG_OPENED_EXISTING_KEY, REG_OPTION_BACKUP_RESTORE,
|
||||
REG_OPTION_CREATE_LINK, REG_OPTION_NON_VOLATILE, REG_OPTION_OPEN_LINK, REG_OPTION_RESERVED,
|
||||
REG_OPTION_VOLATILE, REG_QWORD, REG_QWORD_LITTLE_ENDIAN, REG_RESOURCE_LIST,
|
||||
REG_RESOURCE_REQUIREMENTS_LIST, REG_SZ, REG_WHOLE_HIVE_VOLATILE,
|
||||
};
|
||||
|
||||
#[pyattr]
|
||||
|
||||
Reference in new issue
Block a user