diff options
author | Mattias Andrée <maandree@kth.se> | 2022-07-21 14:53:18 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2022-07-21 14:53:18 +0200 |
commit | 3be28b4e8f75190d30e311f0e69da714cac62cc5 (patch) | |
tree | 95374a0ac30802f838e0fee1d7c686b66dd26b11 /src/libgamma_native_error.pyx | |
parent | Remove dist (diff) | |
download | pylibgamma-1.1.3.tar.gz pylibgamma-1.1.3.tar.bz2 pylibgamma-1.1.3.tar.xz |
Change license to ISC, change style, improve makefile1.1.3
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/libgamma_native_error.pyx')
-rw-r--r-- | src/libgamma_native_error.pyx | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/src/libgamma_native_error.pyx b/src/libgamma_native_error.pyx deleted file mode 100644 index 6963a44..0000000 --- a/src/libgamma_native_error.pyx +++ /dev/null @@ -1,205 +0,0 @@ -# -*- python -*- -''' -pylibgamma — Python 3 wrapper for libgamma -Copyright © 2014 Mattias Andrée (maandree@member.fsf.org) - -This library is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this library. If not, see <http://www.gnu.org/licenses/>. -''' - -cimport cython - -from posix.unistd cimport gid_t -from libc.string cimport strerror as c_strerror - - -cdef extern gid_t libgamma_group_gid_get() nogil -cdef extern void libgamma_group_gid_set(gid_t) nogil -''' -Group that the user needs to be a member of if -`LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. -''' - -cdef extern const char* libgamma_group_name_get() nogil -cdef extern void libgamma_group_name_set(const char*) nogil -''' -Group that the user needs to be a member of if -`LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, -`NULL` if the name of the group `libgamma_group_gid` -cannot be determined. -''' - - -cdef extern void libgamma_perror(const char* name, int error_code) nogil -''' -Prints an error to stderr in a `perror` fashion, -however this function will not translate the `libgamma` -errors into human-readable strings, it will simply -print the name of the error. If the value `error_code` -is the value of `LIBGAMMA_ERRNO_SET`, `perror` will be -used to print the current error stored in `errno`. -If `error_code` is non-negative (an `errno` value`), that -value will be stored in `errno` and `perror` will be -used to print it. Additionally, if the `error_code` is -the value of `LIBGAMMA_DEVICE_REQUIRE_GROUP` the -required group will be printed with its numerical value -and, if known, its name. - -@param name The text to add at the beginning. -@param value The error code, may be an `errno` value. -''' - -cdef extern const char* libgamma_name_of_error(int value) nogil -''' -Returns the name of the definition associated with a `libgamma` error code. - -@param value The error code. -@return The name of the definition associated with the error code, - `NULL` if the error code does not exist. The return string - should not be `free`:d. -''' - -cdef extern int libgamma_value_of_error(const char* name) nogil -''' -Return the value of a `libgamma` error definition refered to by name. - -@param name The name of the definition associated with the error code. -@return The error code, zero if the name does is `NULL` - or does not refer to a `libgamma` error. -''' - - - -def libgamma_native_get_group_gid() -> int: - ''' - Getter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. - ''' - return int(libgamma_group_gid_get()) - -def libgamma_native_set_group_gid(gid : int): - ''' - Setter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. - ''' - libgamma_group_gid_set(<int>gid) - - -def libgamma_native_get_group_name() -> str: - ''' - Getter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, - `None` if the name of the group `libgamma_group_gid` - cannot be determined. - ''' - cdef const char* group_name - cdef bytes bs - group_name = libgamma_group_name_get() - if group_name is NULL: - return None - bs = group_name - return bs.decode('utf-8', 'strict') - -def libgamma_native_set_group_name(name : str): - ''' - Setter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, - `None` if the name of the group `libgamma_group_gid` - cannot be determined. - ''' - cdef const char* group_name - cdef bytes bs - if name is None: - libgamma_group_name_set(<char*>NULL) - return - bs = name.encode('utf-8') + bytes([0]) - group_name = bs - libgamma_group_name_set(group_name) - - -def libgamma_native_perror(name : str, error_code : int): - ''' - Prints an error to stderr in a `perror` fashion, - however this function will not translate the `libgamma` - errors into human-readable strings, it will simply - print the name of the error. If the value `error_code` - is the value of `LIBGAMMA_ERRNO_SET`, `perror` will be - used to print the current error stored in `errno`. - If `error_code` is non-negative (an `errno` value`), that - value will be stored in `errno` and `perror` will be - used to print it. Additionally, if the `error_code` is - the value of `LIBGAMMA_DEVICE_REQUIRE_GROUP` the - required group will be printed with its numerical value - and, if known, its name. - - @param name The text to add at the beginning. - @param value The error code, may be an `errno` value. - ''' - cdef bytes bs - bs = name.encode('utf-8') + bytes([0]) - libgamma_perror(bs, <int>error_code) - - -def libgamma_native_name_of_error(value : int) -> str: - ''' - Returns the name of the definition associated with a `libgamma` error code. - - @param value The error code. - @return The name of the definition associated with the error code, - `None` if the error code does not exist. - ''' - cdef const char* name - cdef bytes bs - name = libgamma_name_of_error(<int>value) - if name is NULL: - return None - bs = name - return bs.decode('utf-8', 'strict') - - -def libgamma_native_value_of_error(name : str) -> int: - ''' - Return the value of a `libgamma` error definition refered to by name. - - @param name The name of the definition associated with the error code. - @return The error code, zero if the name is `None`, - or does not refer to a `libgamma` error. - ''' - cdef bytes bs - if name is None: - return 0 - bs = name.encode('utf-8') + bytes([0]) - return int(libgamma_value_of_error(bs)) - - -def strerror(error : int) -> str: - ''' - Get a textual description of an error. - - @param error The number of the error. - @return The description of the error. - ''' - cdef const char* text - cdef bytes bs - text = c_strerror(<int>error) - bs = text - return bs.decode('utf-8', 'strict') - |