diff options
| author | Syndamia <kami02882@gmail.com> | 2019-07-29 11:46:36 +0300 |
|---|---|---|
| committer | Syndamia <kami02882@gmail.com> | 2019-07-29 11:46:36 +0300 |
| commit | bc09da5a7b65b08b5d5dcd1e90173ad3b6081c23 (patch) | |
| tree | c66cebc02aac30ff859c06ca462f3dd58b6809b0 /Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py | |
| parent | 65edf7296baf48aad1b4e0c09b57f1a7f48791a8 (diff) | |
| download | Self-learning-bc09da5a7b65b08b5d5dcd1e90173ad3b6081c23.tar Self-learning-bc09da5a7b65b08b5d5dcd1e90173ad3b6081c23.tar.gz Self-learning-bc09da5a7b65b08b5d5dcd1e90173ad3b6081c23.zip | |
Did some more work in Python and started officially learning Java
Diffstat (limited to 'Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py')
| -rw-r--r-- | Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py b/Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py new file mode 100644 index 0000000..6d9f279 --- /dev/null +++ b/Python/venv1/Lib/site-packages/keyboard/_keyboard_event.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- + +from time import time as now +import json +from ._canonical_names import canonical_names, normalize_name + +try: + basestring +except NameError: + basestring = str + +KEY_DOWN = 'down' +KEY_UP = 'up' + +class KeyboardEvent(object): + event_type = None + scan_code = None + name = None + time = None + device = None + modifiers = None + is_keypad = None + + def __init__(self, event_type, scan_code, name=None, time=None, device=None, modifiers=None, is_keypad=None): + self.event_type = event_type + self.scan_code = scan_code + self.time = now() if time is None else time + self.device = device + self.is_keypad = is_keypad + self.modifiers = modifiers + if name: + self.name = normalize_name(name) + + def to_json(self, ensure_ascii=False): + attrs = dict( + (attr, getattr(self, attr)) for attr in ['event_type', 'scan_code', 'name', 'time', 'device', 'is_keypad'] + if not attr.startswith('_') and getattr(self, attr) is not None + ) + return json.dumps(attrs, ensure_ascii=ensure_ascii) + + def __repr__(self): + return 'KeyboardEvent({} {})'.format(self.name or 'Unknown {}'.format(self.scan_code), self.event_type) + + def __eq__(self, other): + return ( + isinstance(other, KeyboardEvent) + and self.event_type == other.event_type + and ( + not self.scan_code or not other.scan_code or self.scan_code == other.scan_code + ) and ( + not self.name or not other.name or self.name == other.name + ) + ) |
