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_error.py | |
parent | Remove dist (diff) | |
download | pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.gz pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.bz2 pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.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_error.py')
-rw-r--r-- | src/libgamma_error.py | 476 |
1 files changed, 0 insertions, 476 deletions
diff --git a/src/libgamma_error.py b/src/libgamma_error.py deleted file mode 100644 index afefd5e..0000000 --- a/src/libgamma_error.py +++ /dev/null @@ -1,476 +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/>. -''' - - - -class LibgammaGroup: - ''' - Class for `group` - ''' - - @property - def gid(self) -> int: - ''' - Getter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. - ''' - from libgamma_native_error import libgamma_native_get_group_gid - return libgamma_native_get_group_gid() - - @gid.setter - def gid(self, value : int): - ''' - Setter. - - Group that the user needs to be a member of if - `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. - ''' - from libgamma_native_error import libgamma_native_set_group_gid - libgamma_native_set_group_gid(value) - - - @property - def name(self) -> 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 `group.gid` - cannot be determined. - ''' - from libgamma_native_error import libgamma_native_get_group_name - return libgamma_native_get_group_name() - - @name.setter - def name(self, value : 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 `group.gid` - cannot be determined. - ''' - from libgamma_native_error import libgamma_native_set_group_name - libgamma_native_set_group_name(value) - - -group = LibgammaGroup() -''' - Group that the user needs to be a member of if -`LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. -''' - - -def 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. - ''' - from libgamma_native_error import libgamma_native_perror - libgamma_native_perror(name, error_code) - - -def 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. - ''' - from libgamma_native_error import libgamma_native_name_of_error - return libgamma_native_name_of_error(value) - - -def 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. - ''' - from libgamma_native_error import libgamma_native_value_of_error - return libgamma_native_value_of_error(name) - - - -LIBGAMMA_ERRNO_SET = -1 -''' -`errno` has be set with a standard error number -to indicate the what has gone wrong. -''' - -LIBGAMMA_NO_SUCH_ADJUSTMENT_METHOD = -2 -''' -The selected adjustment method does not exist -or has been excluded at compile-time. -''' - -LIBGAMMA_NO_SUCH_SITE = -3 -''' -The selected site does not exist. -''' - -LIBGAMMA_NO_SUCH_PARTITION = -4 -''' -The selected partition does not exist. -''' - -LIBGAMMA_NO_SUCH_CRTC = -5 -''' -The selected CRTC does not exist. -''' - -LIBGAMMA_IMPOSSIBLE_AMOUNT = -6 -''' -Counter overflowed when counting the number -of available items. -''' - -LIBGAMMA_CONNECTOR_DISABLED = -7 -''' -The selected connector is disabled, it does -not have a CRTC. -''' - -LIBGAMMA_OPEN_CRTC_FAILED = -8 -''' -The selected CRTC could not be opened, -reason unknown. -''' - -LIBGAMMA_CRTC_INFO_NOT_SUPPORTED = -9 -''' -The CRTC information field is not supported -by the adjustment method. -''' - -LIBGAMMA_GAMMA_RAMP_READ_FAILED = -10 -''' -Failed to read the current gamma ramps for -the selected CRTC, reason unknown. -''' - -LIBGAMMA_GAMMA_RAMP_WRITE_FAILED = -11 -''' -Failed to write the current gamma ramps for -the selected CRTC, reason unknown. -''' - -LIBGAMMA_GAMMA_RAMP_SIZE_CHANGED = -12 -''' -The specified ramp sizes does not match the -ramps sizes returned by the adjustment methods -in response to the query/command. -''' - -LIBGAMMA_MIXED_GAMMA_RAMP_SIZE = -13 -''' -The specified ramp sizes are not identical -which is required by the adjustment method. -(Only returned in debug mode.) -''' - -LIBGAMMA_WRONG_GAMMA_RAMP_SIZE = -14 -''' -The specified ramp sizes are not supported -by the adjustment method. -(Only returned in debug mode.) -''' - -LIBGAMMA_SINGLETON_GAMMA_RAMP = -15 -''' -The adjustment method reported that the gamma -ramps size is 1, or perhaps even zero or negative. -''' - -LIBGAMMA_LIST_CRTCS_FAILED = -16 -''' -The adjustment method failed to list -available CRTC:s, reason unknown. -''' - -LIBGAMMA_ACQUIRING_MODE_RESOURCES_FAILED = -17 -''' -Failed to acquire mode resources from the -adjustment method. -''' - -LIBGAMMA_NEGATIVE_PARTITION_COUNT = -18 -''' -The adjustment method reported that a negative -number of partitions exists in the site. -''' - -LIBGAMMA_NEGATIVE_CRTC_COUNT = -19 -''' -The adjustment method reported that a negative -number of CRTC:s exists in the partition. -''' - -LIBGAMMA_DEVICE_RESTRICTED = -20 -''' -Device cannot be access becauses of -insufficient permissions. -''' - -LIBGAMMA_DEVICE_ACCESS_FAILED = -21 -''' -Device cannot be access, reason unknown. -''' - -LIBGAMMA_DEVICE_REQUIRE_GROUP = -22 -''' -Device cannot be access, membership of the -`group.gid` (named by `group.name` (can be -`None`, if so `errno` may have been set to -tell why)) is required. -''' - -LIBGAMMA_GRAPHICS_CARD_REMOVED = -23 -''' -The graphics card appear to have been removed. -''' - -LIBGAMMA_STATE_UNKNOWN = -24 -''' -The state of the requested information is unknown. -''' - -LIBGAMMA_CONNECTOR_UNKNOWN = -25 -''' -Failed to determine which connector the -CRTC belongs to. -''' - -LIBGAMMA_CONNECTOR_TYPE_NOT_RECOGNISED = -26 -''' -The detected connector type is not listed -in this library and has to be updated. -''' - -LIBGAMMA_SUBPIXEL_ORDER_NOT_RECOGNISED = -27 -''' -The detected subpixel order is not listed -in this library and has to be updated. -''' - -LIBGAMMA_EDID_LENGTH_UNSUPPORTED = -28 -''' -The length of the EDID does not match that -of any supported EDID structure revision. -''' - -LIBGAMMA_EDID_WRONG_MAGIC_NUMBER = -29 -''' -The magic number in the EDID does not match -that of any supported EDID structure revision. -''' - -LIBGAMMA_EDID_REVISION_UNSUPPORTED = -30 -''' -The EDID structure revision used by the -monitor is not supported. -''' - -LIBGAMMA_GAMMA_NOT_SPECIFIED = -31 -''' -The gamma characteristics field in the EDID -is left unspecified. -(This could be considered a non-error.) -''' - -LIBGAMMA_EDID_CHECKSUM_ERROR = -32 -''' -The checksum in the EDID is incorrect, all -request information has been provided -by you cannot count on it. -''' - -LIBGAMMA_GAMMA_NOT_SPECIFIED_AND_EDID_CHECKSUM_ERROR = -33 -''' -Both of the errors `LIBGAMMA_GAMMA_NOT_SPECIFIED` -and `LIBGAMMA_EDID_CHECKSUM_ERROR` have occurred. -''' - -LIBGAMMA_GAMMA_RAMPS_SIZE_QUERY_FAILED = -34 -''' -Failed to query the gamma ramps size from the -adjustment method, reason unknown. -''' - -LIBGAMMA_OPEN_PARTITION_FAILED = -35 -''' -The selected partition could not be opened, -reason unknown. -''' - -LIBGAMMA_OPEN_SITE_FAILED = -36 -''' -The selected site could not be opened, -reason unknown. -''' - -LIBGAMMA_PROTOCOL_VERSION_QUERY_FAILED = -37 -''' -Failed to query the adjustment method for -its protocol version, reason unknown. -''' - -LIBGAMMA_PROTOCOL_VERSION_NOT_SUPPORTED = -38 -''' -The adjustment method's version of its -protocol is not supported. -''' - -LIBGAMMA_LIST_PARTITIONS_FAILED = -39 -''' -The adjustment method failed to list -available partitions, reason unknown. -''' - -LIBGAMMA_NULL_PARTITION = -40 -''' -Partition exists by index, but the partition -at that index does not exist. -''' - -LIBGAMMA_NOT_CONNECTED = -41 -''' -There is not monitor connected to the -connector of the selected CRTC. -''' - -LIBGAMMA_REPLY_VALUE_EXTRACTION_FAILED = -42 -''' -Data extraction from a reply from the -adjustment method failed, reason unknown. -''' - -LIBGAMMA_EDID_NOT_FOUND = -43 -''' -No EDID property was found on the output. -''' - -LIBGAMMA_LIST_PROPERTIES_FAILED = -44 -''' -Failed to list properties on the output, -reason unknown. -''' - -LIBGAMMA_PROPERTY_VALUE_QUERY_FAILED = -45 -''' -Failed to query a property's value from -the output, reason unknown. -''' - -LIBGAMMA_OUTPUT_INFORMATION_QUERY_FAILED = -46 -''' -A request for information on an output -failed, reason unknown. -''' - - -LIBGAMMA_ERROR_MIN = -46 -''' -The number of the libgamma error with the -lowest number. If this is lower than the -number your program thinks it should be sould -update your program for new errors. -''' - - - -class LibgammaError(Exception): - ''' - libgamma error class. - - @variable errno The error code. - @variable strerror The name of the error. - ''' - - def __init__(self, errno : int, strerror : str): - ''' - Constructor. - - @param errno The error code. - @param strerror The name of the error. - ''' - self.errno = errno - self.strerror = strerror - - def __str__(self) -> str: - ''' - Return the name of the error. - - @return The name of the error. - ''' - return self.strerror - - - def __repr__(self) -> str: - ''' - Create a string representation of the error. - - @return A string representation of the error. - ''' - return 'LibgammaError(%i, %s)' % (self.errno, repr(self.strerror)) - - - -def create_error(error_code : int) -> Exception: - ''' - Create an exception from an error code. - - @param error_code The error code. - @return :OSError|LibgammaError The error as a throwable object. - ''' - if error_code == LIBGAMMA_ERRNO_SET: - import ctypes - error_code = ctypes.get_errno() - - if error_code >= 0: - import libgamma_native_error as c - e = OSError() - e.errno = error_code - e.strerror = c.strerror(e.errno) - else: - strerror = name_of_error(error_code) - e = LibgammaError(error_code, strerror) - - return e - |