[PATCH evemu 2/7] python: replace event_get_value with the C implementation

Benjamin Tissoires benjamin.tissoires at gmail.com
Fri Aug 15 10:42:55 PDT 2014


On Fri, Aug 15, 2014 at 3:37 AM, Daniel Martin <consume.noise at gmail.com> wrote:
> On Thu, Aug 14, 2014 at 02:00:40PM -0400, Benjamin Tissoires wrote:
>> No functional change, but relying on an external lib removes the
>> pain to maintain our own input.h implementation.
>>
>> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
>> ---
>>  python/evemu/__init__.py | 27 ++++++++++++++++++++++++---
>>  1 file changed, 24 insertions(+), 3 deletions(-)
>>
>> diff --git a/python/evemu/__init__.py b/python/evemu/__init__.py
>> index 02ff3a4..0797d73 100644
>> --- a/python/evemu/__init__.py
>> +++ b/python/evemu/__init__.py
>> @@ -35,6 +35,8 @@ __all__ = ["Device",
>>             "input_prop_get_value",
>>             "input_prop_get_name"]
>>
>> +_libevemu = evemu.base.LibEvemu()
>> +
>>  def event_get_value(event_type, event_code = None):
>>      """
>>      Return the integer-value for the given event type and/or code string
>> @@ -44,10 +46,29 @@ def event_get_value(event_type, event_code = None):
>>      If an event code is passed, the event type may be given as integer or
>>      string.
>>      """
>> -    try:
>> -        return evemu.event_names._event_get_value(event_type, event_code)
>> -    except KeyError:
>> +    t = -1
>> +    c = -1
>> +
>> +    if type(event_type) == str:
>> +        t = _libevemu.evemu_event_type_from_name(event_type)
>> +    else:
>> +        t = event_type
>
> See nitpick below.
>
>> +    if event_code == None:
>> +        if type(event_type) != str:
>> +            raise TypeError("expected a string")
>> +        if t < 0:
>> +            return None
>> +        return t
>> +
>> +    if type(event_code) != str:
>> +        raise TypeError("expected a string")
>> +
>> +    c = _libevemu.evemu_event_code_from_name(t, event_code)
>> +
>> +    if c < 0:
>>          return None
>> +    return c
>
> Nitpick:
>
> That looks C'ish. It could become:
>     return None if c < 0 else c
>
> The same applies for the assignment to 't' above. But, as the condition
> + assignment exceeds the column limits, it would need to be wrapped:
>     t = event_type if instanceof(event_type, int) else \
>             _libevemu.evemu_event_type_from_name(str(event_type))
> Which, on the other hand doesn't look like a benefit.
>

Alright, thanks for the hint (we are really C-developers only :-P )

Will amend the two commits.

Thanks both of you

Cheers,
Benjamin


More information about the Input-tools mailing list