├── .gitignore ├── .idea ├── joydrv.iml ├── misc.xml ├── modules.xml ├── vcs.xml └── workspace.xml ├── LICENSE ├── Pipfile ├── Pipfile.lock ├── build.sh ├── dist ├── devices.yaml └── input_pipe ├── readme.md ├── run.sh ├── setup.sh ├── setup_helpers └── inputpipe.service ├── src ├── main │ ├── python │ │ ├── announcer │ │ │ ├── __init__.py │ │ │ ├── announcer.py │ │ │ └── periodictask.py │ │ ├── ev_core │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── drivers │ │ │ │ ├── __init__.py │ │ │ │ ├── basedriver.py │ │ │ │ ├── driverregistry.py │ │ │ │ ├── exec.py │ │ │ │ ├── feval.py │ │ │ │ ├── keybd.py │ │ │ │ ├── mouse.py │ │ │ │ ├── serial.py │ │ │ │ └── xbx360.py │ │ │ ├── event_loop.py │ │ │ ├── eventtree.py │ │ │ ├── sourcedevices2.py │ │ │ ├── supportive │ │ │ │ └── __init__.py │ │ │ └── targetdevices.py │ │ ├── input_pipe.py │ │ ├── messaging_server │ │ │ ├── __init__.py │ │ │ ├── receiver.py │ │ │ └── sender.py │ │ ├── prototype │ │ │ ├── __init__.py │ │ │ └── inputevent.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ └── config.cpython-37.pyc │ │ │ ├── evdevutils.py │ │ │ └── langutils.py │ └── resources │ │ ├── config_examples │ │ ├── a-autofire-overlay.json5 │ │ ├── b-autofire-overlay.json5 │ │ ├── devices-serial.json5 │ │ ├── devices-serial.json5.vm │ │ ├── devices.json5 │ │ ├── devices.json5.vm │ │ ├── devices.yaml │ │ ├── macros.vm │ │ └── mouse_signals.txt │ │ ├── events.txt │ │ ├── plugin_examples │ │ ├── Burping_2_short.ogg │ │ ├── a-toggle.py │ │ ├── b-toggle.py │ │ ├── burping.py │ │ ├── exponential_translate.py │ │ ├── moo.py │ │ ├── moo.yaml │ │ └── onscreen_keyboard_uae.py │ │ └── xboxevents.txt └── test │ ├── python │ ├── ConfigTest.py │ ├── EventTreeTest.py │ ├── SourceDevicesTest.py │ ├── TargetDevicesTest.py │ ├── TestSuite.py │ ├── UdevListenerTest.py │ ├── UtilsTest.py │ ├── florence_start.py │ └── test_utils │ │ ├── __init__.py │ │ ├── deviceMock.py │ │ ├── eventControllerMock.py │ │ ├── exevDriverMock.py │ │ ├── sourceDevicesMock.py │ │ ├── udevDeviceMock.py │ │ ├── udevListenerMock.py │ │ └── udevlistener.py │ └── resources │ ├── devices.json5 │ ├── devices.json5.vtpl │ ├── devices.toml │ ├── devices.yaml │ ├── empty_input_devices.json5 │ ├── inputs.txt │ ├── licenses.txt │ ├── macros.vm │ └── overlay.yaml ├── test.sh └── venv ├── lib └── python3.7 │ └── site-packages │ ├── __pycache__ │ └── six.cpython-37.pyc │ ├── evdev │ └── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ ├── device.cpython-37.pyc │ │ ├── ecodes.cpython-37.pyc │ │ ├── eventio.cpython-37.pyc │ │ ├── eventio_async.cpython-37.pyc │ │ ├── events.cpython-37.pyc │ │ ├── evtest.cpython-37.pyc │ │ ├── ff.cpython-37.pyc │ │ ├── genecodes.cpython-37.pyc │ │ ├── uinput.cpython-37.pyc │ │ └── util.cpython-37.pyc │ ├── pip-19.0.3-py3.7.egg │ └── pip │ │ ├── __pycache__ │ │ └── __init__.cpython-37.pyc │ │ ├── _internal │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── build_env.cpython-37.pyc │ │ │ ├── cache.cpython-37.pyc │ │ │ ├── configuration.cpython-37.pyc │ │ │ ├── download.cpython-37.pyc │ │ │ ├── exceptions.cpython-37.pyc │ │ │ ├── index.cpython-37.pyc │ │ │ ├── locations.cpython-37.pyc │ │ │ ├── pep425tags.cpython-37.pyc │ │ │ ├── pyproject.cpython-37.pyc │ │ │ ├── resolve.cpython-37.pyc │ │ │ └── wheel.cpython-37.pyc │ │ ├── cli │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── autocompletion.cpython-37.pyc │ │ │ │ ├── base_command.cpython-37.pyc │ │ │ │ ├── cmdoptions.cpython-37.pyc │ │ │ │ ├── main_parser.cpython-37.pyc │ │ │ │ ├── parser.cpython-37.pyc │ │ │ │ └── status_codes.cpython-37.pyc │ │ ├── commands │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── check.cpython-37.pyc │ │ │ │ ├── completion.cpython-37.pyc │ │ │ │ ├── configuration.cpython-37.pyc │ │ │ │ ├── download.cpython-37.pyc │ │ │ │ ├── freeze.cpython-37.pyc │ │ │ │ ├── hash.cpython-37.pyc │ │ │ │ ├── help.cpython-37.pyc │ │ │ │ ├── install.cpython-37.pyc │ │ │ │ ├── list.cpython-37.pyc │ │ │ │ ├── search.cpython-37.pyc │ │ │ │ ├── show.cpython-37.pyc │ │ │ │ ├── uninstall.cpython-37.pyc │ │ │ │ └── wheel.cpython-37.pyc │ │ ├── models │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── candidate.cpython-37.pyc │ │ │ │ ├── format_control.cpython-37.pyc │ │ │ │ ├── index.cpython-37.pyc │ │ │ │ └── link.cpython-37.pyc │ │ ├── operations │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── check.cpython-37.pyc │ │ │ │ ├── freeze.cpython-37.pyc │ │ │ │ └── prepare.cpython-37.pyc │ │ ├── req │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── constructors.cpython-37.pyc │ │ │ │ ├── req_file.cpython-37.pyc │ │ │ │ ├── req_install.cpython-37.pyc │ │ │ │ ├── req_set.cpython-37.pyc │ │ │ │ ├── req_tracker.cpython-37.pyc │ │ │ │ └── req_uninstall.cpython-37.pyc │ │ ├── utils │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── appdirs.cpython-37.pyc │ │ │ │ ├── compat.cpython-37.pyc │ │ │ │ ├── deprecation.cpython-37.pyc │ │ │ │ ├── encoding.cpython-37.pyc │ │ │ │ ├── filesystem.cpython-37.pyc │ │ │ │ ├── glibc.cpython-37.pyc │ │ │ │ ├── hashes.cpython-37.pyc │ │ │ │ ├── logging.cpython-37.pyc │ │ │ │ ├── misc.cpython-37.pyc │ │ │ │ ├── models.cpython-37.pyc │ │ │ │ ├── outdated.cpython-37.pyc │ │ │ │ ├── packaging.cpython-37.pyc │ │ │ │ ├── setuptools_build.cpython-37.pyc │ │ │ │ ├── temp_dir.cpython-37.pyc │ │ │ │ ├── typing.cpython-37.pyc │ │ │ │ └── ui.cpython-37.pyc │ │ └── vcs │ │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── bazaar.cpython-37.pyc │ │ │ ├── git.cpython-37.pyc │ │ │ ├── mercurial.cpython-37.pyc │ │ │ └── subversion.cpython-37.pyc │ │ └── _vendor │ │ ├── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ ├── appdirs.cpython-37.pyc │ │ ├── distro.cpython-37.pyc │ │ ├── pyparsing.cpython-37.pyc │ │ ├── retrying.cpython-37.pyc │ │ └── six.cpython-37.pyc │ │ ├── cachecontrol │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── adapter.cpython-37.pyc │ │ │ ├── cache.cpython-37.pyc │ │ │ ├── compat.cpython-37.pyc │ │ │ ├── controller.cpython-37.pyc │ │ │ ├── filewrapper.cpython-37.pyc │ │ │ ├── serialize.cpython-37.pyc │ │ │ └── wrapper.cpython-37.pyc │ │ └── caches │ │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── file_cache.cpython-37.pyc │ │ │ └── redis_cache.cpython-37.pyc │ │ ├── certifi │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ └── core.cpython-37.pyc │ │ ├── chardet │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── big5freq.cpython-37.pyc │ │ │ ├── big5prober.cpython-37.pyc │ │ │ ├── chardistribution.cpython-37.pyc │ │ │ ├── charsetgroupprober.cpython-37.pyc │ │ │ ├── charsetprober.cpython-37.pyc │ │ │ ├── codingstatemachine.cpython-37.pyc │ │ │ ├── compat.cpython-37.pyc │ │ │ ├── cp949prober.cpython-37.pyc │ │ │ ├── enums.cpython-37.pyc │ │ │ ├── escprober.cpython-37.pyc │ │ │ ├── escsm.cpython-37.pyc │ │ │ ├── eucjpprober.cpython-37.pyc │ │ │ ├── euckrfreq.cpython-37.pyc │ │ │ ├── euckrprober.cpython-37.pyc │ │ │ ├── euctwfreq.cpython-37.pyc │ │ │ ├── euctwprober.cpython-37.pyc │ │ │ ├── gb2312freq.cpython-37.pyc │ │ │ ├── gb2312prober.cpython-37.pyc │ │ │ ├── hebrewprober.cpython-37.pyc │ │ │ ├── jisfreq.cpython-37.pyc │ │ │ ├── jpcntx.cpython-37.pyc │ │ │ ├── langbulgarianmodel.cpython-37.pyc │ │ │ ├── langcyrillicmodel.cpython-37.pyc │ │ │ ├── langgreekmodel.cpython-37.pyc │ │ │ ├── langhebrewmodel.cpython-37.pyc │ │ │ ├── langthaimodel.cpython-37.pyc │ │ │ ├── langturkishmodel.cpython-37.pyc │ │ │ ├── latin1prober.cpython-37.pyc │ │ │ ├── mbcharsetprober.cpython-37.pyc │ │ │ ├── mbcsgroupprober.cpython-37.pyc │ │ │ ├── mbcssm.cpython-37.pyc │ │ │ ├── sbcharsetprober.cpython-37.pyc │ │ │ ├── sbcsgroupprober.cpython-37.pyc │ │ │ ├── sjisprober.cpython-37.pyc │ │ │ ├── universaldetector.cpython-37.pyc │ │ │ ├── utf8prober.cpython-37.pyc │ │ │ └── version.cpython-37.pyc │ │ ├── colorama │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── ansi.cpython-37.pyc │ │ │ ├── ansitowin32.cpython-37.pyc │ │ │ ├── initialise.cpython-37.pyc │ │ │ ├── win32.cpython-37.pyc │ │ │ └── winterm.cpython-37.pyc │ │ ├── distlib │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── compat.cpython-37.pyc │ │ │ ├── resources.cpython-37.pyc │ │ │ ├── scripts.cpython-37.pyc │ │ │ └── util.cpython-37.pyc │ │ ├── html5lib │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── _ihatexml.cpython-37.pyc │ │ │ ├── _inputstream.cpython-37.pyc │ │ │ ├── _tokenizer.cpython-37.pyc │ │ │ ├── _utils.cpython-37.pyc │ │ │ ├── constants.cpython-37.pyc │ │ │ ├── html5parser.cpython-37.pyc │ │ │ └── serializer.cpython-37.pyc │ │ ├── _trie │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── _base.cpython-37.pyc │ │ │ │ ├── datrie.cpython-37.pyc │ │ │ │ └── py.cpython-37.pyc │ │ ├── treebuilders │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── base.cpython-37.pyc │ │ │ │ └── etree.cpython-37.pyc │ │ └── treewalkers │ │ │ └── __pycache__ │ │ │ └── __init__.cpython-37.pyc │ │ ├── idna │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── core.cpython-37.pyc │ │ │ ├── idnadata.cpython-37.pyc │ │ │ ├── intranges.cpython-37.pyc │ │ │ └── package_data.cpython-37.pyc │ │ ├── lockfile │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── linklockfile.cpython-37.pyc │ │ │ └── mkdirlockfile.cpython-37.pyc │ │ ├── msgpack │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── _version.cpython-37.pyc │ │ │ ├── exceptions.cpython-37.pyc │ │ │ └── fallback.cpython-37.pyc │ │ ├── packaging │ │ └── __pycache__ │ │ │ ├── __about__.cpython-37.pyc │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── _compat.cpython-37.pyc │ │ │ ├── _structures.cpython-37.pyc │ │ │ ├── markers.cpython-37.pyc │ │ │ ├── requirements.cpython-37.pyc │ │ │ ├── specifiers.cpython-37.pyc │ │ │ ├── utils.cpython-37.pyc │ │ │ └── version.cpython-37.pyc │ │ ├── pep517 │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── compat.cpython-37.pyc │ │ │ └── wrappers.cpython-37.pyc │ │ ├── pkg_resources │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ └── py31compat.cpython-37.pyc │ │ ├── progress │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── bar.cpython-37.pyc │ │ │ ├── helpers.cpython-37.pyc │ │ │ └── spinner.cpython-37.pyc │ │ ├── pytoml │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── core.cpython-37.pyc │ │ │ ├── parser.cpython-37.pyc │ │ │ ├── test.cpython-37.pyc │ │ │ ├── utils.cpython-37.pyc │ │ │ └── writer.cpython-37.pyc │ │ ├── requests │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── __version__.cpython-37.pyc │ │ │ ├── _internal_utils.cpython-37.pyc │ │ │ ├── adapters.cpython-37.pyc │ │ │ ├── api.cpython-37.pyc │ │ │ ├── auth.cpython-37.pyc │ │ │ ├── certs.cpython-37.pyc │ │ │ ├── compat.cpython-37.pyc │ │ │ ├── cookies.cpython-37.pyc │ │ │ ├── exceptions.cpython-37.pyc │ │ │ ├── hooks.cpython-37.pyc │ │ │ ├── models.cpython-37.pyc │ │ │ ├── packages.cpython-37.pyc │ │ │ ├── sessions.cpython-37.pyc │ │ │ ├── status_codes.cpython-37.pyc │ │ │ ├── structures.cpython-37.pyc │ │ │ └── utils.cpython-37.pyc │ │ ├── urllib3 │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── _collections.cpython-37.pyc │ │ │ ├── connection.cpython-37.pyc │ │ │ ├── connectionpool.cpython-37.pyc │ │ │ ├── exceptions.cpython-37.pyc │ │ │ ├── fields.cpython-37.pyc │ │ │ ├── filepost.cpython-37.pyc │ │ │ ├── poolmanager.cpython-37.pyc │ │ │ ├── request.cpython-37.pyc │ │ │ └── response.cpython-37.pyc │ │ ├── contrib │ │ │ └── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ ├── _appengine_environ.cpython-37.pyc │ │ │ │ ├── pyopenssl.cpython-37.pyc │ │ │ │ └── socks.cpython-37.pyc │ │ ├── packages │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-37.pyc │ │ │ │ └── six.cpython-37.pyc │ │ │ └── ssl_match_hostname │ │ │ │ └── __pycache__ │ │ │ │ └── __init__.cpython-37.pyc │ │ └── util │ │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── connection.cpython-37.pyc │ │ │ ├── queue.cpython-37.pyc │ │ │ ├── request.cpython-37.pyc │ │ │ ├── response.cpython-37.pyc │ │ │ ├── retry.cpython-37.pyc │ │ │ ├── ssl_.cpython-37.pyc │ │ │ ├── timeout.cpython-37.pyc │ │ │ ├── url.cpython-37.pyc │ │ │ └── wait.cpython-37.pyc │ │ └── webencodings │ │ └── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ └── labels.cpython-37.pyc │ ├── pyudev │ ├── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ ├── _compat.cpython-37.pyc │ │ ├── _qt_base.cpython-37.pyc │ │ ├── _util.cpython-37.pyc │ │ ├── core.cpython-37.pyc │ │ ├── discover.cpython-37.pyc │ │ ├── glib.cpython-37.pyc │ │ ├── monitor.cpython-37.pyc │ │ ├── pyqt4.cpython-37.pyc │ │ ├── pyqt5.cpython-37.pyc │ │ ├── pyside.cpython-37.pyc │ │ ├── version.cpython-37.pyc │ │ └── wx.cpython-37.pyc │ ├── _ctypeslib │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── _errorcheckers.cpython-37.pyc │ │ │ ├── libc.cpython-37.pyc │ │ │ ├── libudev.cpython-37.pyc │ │ │ └── utils.cpython-37.pyc │ ├── _os │ │ └── __pycache__ │ │ │ ├── __init__.cpython-37.pyc │ │ │ ├── pipe.cpython-37.pyc │ │ │ └── poll.cpython-37.pyc │ └── device │ │ └── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ ├── _device.cpython-37.pyc │ │ └── _errors.cpython-37.pyc │ ├── regexp │ └── __pycache__ │ │ └── __init__.cpython-37.pyc │ ├── uinput │ └── __pycache__ │ │ ├── __init__.cpython-37.pyc │ │ └── ev.cpython-37.pyc │ └── yaml │ └── __pycache__ │ ├── __init__.cpython-37.pyc │ ├── composer.cpython-37.pyc │ ├── constructor.cpython-37.pyc │ ├── cyaml.cpython-37.pyc │ ├── dumper.cpython-37.pyc │ ├── emitter.cpython-37.pyc │ ├── error.cpython-37.pyc │ ├── events.cpython-37.pyc │ ├── loader.cpython-37.pyc │ ├── nodes.cpython-37.pyc │ ├── parser.cpython-37.pyc │ ├── reader.cpython-37.pyc │ ├── representer.cpython-37.pyc │ ├── resolver.cpython-37.pyc │ ├── scanner.cpython-37.pyc │ ├── serializer.cpython-37.pyc │ └── tokens.cpython-37.pyc └── readme.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.spec 2 | .idea/ 3 | _install.sh 4 | build/ 5 | .venv 6 | .venvlib 7 | .vscode 8 | __pycache__ 9 | -------------------------------------------------------------------------------- /.idea/joydrv.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Werner Punz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | virtualenv = "*" 8 | pylint = "*" 9 | pyinstaller = "*" 10 | 11 | [packages] 12 | evdev = "*" 13 | asyncio = "*" 14 | pyyaml = "*" 15 | regexp = "*" 16 | pyudev = "*" 17 | python-pidfile = "*" 18 | python-uinput = "*" 19 | pytest = "*" 20 | shiv = "*" 21 | pynt = "*" 22 | argparse = "*" 23 | uvloop = "*" 24 | psutil = "*" 25 | json5 = "*" 26 | toml = "*" 27 | pyinotify = "*" 28 | pymitter = "*" 29 | airspeed = "*" 30 | serial = "*" 31 | pyserial = "*" 32 | 33 | [requires] 34 | python_version = "3.8" 35 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #cd src/main/python 3 | #export PIPENV_IGNORE_VIRTUALENVS=1 4 | rm ./dist/input_pipe 5 | pipenv run pyinstaller -s -n input_pipe --onefile --distpath ./dist/ ./src/main/python/input_pipe.py 6 | pip freeze > requirements.txt 7 | -------------------------------------------------------------------------------- /dist/devices.yaml: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | ###################################################################### 24 | # device definitions 25 | ####################################################################### 26 | 27 | inputs: 28 | 29 | digital: 30 | name: Ultimarc I-PAC Ultimarc I-PAC 31 | exclusive: true 32 | relpos: 1 33 | 34 | analog_left: 35 | name_re: ^Ultimarc.*Ultrastik\sPlayer\ 1$ 36 | exclusive: true 37 | relpos: 1 38 | 39 | analog_right: 40 | name_re: ^Ultimarc.*Ultrastik\sPlayer\ 2$ 41 | exclusive: true 42 | relpos: 1 43 | 44 | 45 | 46 | ######################################################################## 47 | # output devices 48 | ######################################################################## 49 | outputs: 50 | 51 | xbox1: 52 | name: Microsoft X-Box 360 pad 53 | type: xbx360 54 | 55 | xbox2: 56 | name: Microsoft X-Box 360 pad 57 | type: xbx360 58 | 59 | mouse1: 60 | name: mouse 61 | type: mouse 62 | 63 | keybd1: 64 | name: key1 65 | type: keybd 66 | 67 | exec1: 68 | name: exec1 69 | type: exec 70 | 71 | 72 | ########################################################## 73 | # rules section, maps events from one device into another 74 | ########################################################## 75 | rules: 76 | - from: digital # analog 1 77 | target_rules: 78 | - from_ev: code 1 (EV_KEY), code 103 (KEY_UP) # keyup event as coming in from evtest 79 | targets: 80 | - to: xbox1 # artificial xbox controiler 81 | to_ev: (EV_KEY), code 103 (KEY_UP), value -1 # pad up event 82 | 83 | - from: analog_left 84 | target_rules: 85 | - from_ev: (EV_KEY), code 103 (KEY_UP) 86 | targets: 87 | - to: xbox1 88 | to_ev: (EV_KEY), code 103 (KEY_UP) 89 | - to: xbox2 90 | to_ev: (EV_KEY), code 103 (KEY_UP) 91 | 92 | - from: analog_left 93 | target_rules: 94 | - from_ev: (EV_KEY), code 105 (KEY_UP) 95 | targets: 96 | - to: exec1 97 | to_ev: (META), /usr/local/bin/4way 98 | - from_ev: (EV_KEY), code 108 (KEY_UP) 99 | targets: 100 | - to: exec1 101 | to_ev: (META), /usr/local/bin/4way 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /dist/input_pipe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/dist/input_pipe -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #export PIPENV_IGNORE_VIRTUALENVS=1 4 | pipenv run python ./src/main/python/input_pipe.py -c /home/pi/development/input_pipe/src/main/resources/config_examples/devices-serial.json5.vm 5 | 6 | 7 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export PIPENV_IGNORE_VIRTUALENVS=1 3 | pipenv --python 3.8 install 4 | 5 | 6 | -------------------------------------------------------------------------------- /setup_helpers/inputpipe.service: -------------------------------------------------------------------------------- 1 | # Installs as /etc/systemd/system/inputpipe.service. 2 | 3 | [Unit] 4 | Description=InputPipe SystemD service 5 | 6 | [Service] 7 | Type=simple 8 | ExecStart=/whatever/gamepadservice/input_pipe -c /whatever/gamepadservice/devices.yaml 9 | PIDFile=/tmp/input_pipe.pid 10 | TimeoutSec=5 11 | WorkingDirectory=/whatever 12 | ExecReload=/bin/killall -15 -- $MAINPID 13 | ExecStop=/usr/bin/killall -15 -- $MAINPID 14 | Restart=on-failure 15 | 16 | TimeoutStopSec=5 17 | KillMode=process 18 | 19 | [Install] 20 | WantedBy=default.target -------------------------------------------------------------------------------- /src/main/python/announcer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/announcer/__init__.py -------------------------------------------------------------------------------- /src/main/python/announcer/announcer.py: -------------------------------------------------------------------------------- 1 | import socket 2 | import json 3 | import threading 4 | from subprocess import check_output 5 | 6 | from announcer.periodictask import periodic_task 7 | 8 | 9 | class Announcer: 10 | 11 | def __init__(self, udp_host='192.168.0.1', udp_port=5000, server_port="9001"): 12 | self.udp_host = udp_host 13 | self.udp_port = udp_port 14 | self.host_name = socket.gethostname() 15 | self.host_port = server_port 16 | self.host_ip = check_output(['hostname', '-I']) 17 | 18 | # socket.gethostbyname(self.host_name) 19 | self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 20 | 21 | def announce(self): 22 | msg_json = { 23 | "msg": "pipe_location", 24 | "ip": str(self.host_ip, 'UTF-8').split(" ")[0], 25 | "port": self.host_port 26 | } 27 | msg = json.dumps(msg_json) 28 | 29 | b = bytearray() 30 | b.extend(map(ord, msg)) 31 | self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 32 | self.socket.sendto(b, ('255.255.255.255', 12345)) 33 | 34 | @periodic_task(5) 35 | def run(self): 36 | self.announce() 37 | 38 | def start(self): 39 | self.run() 40 | 41 | -------------------------------------------------------------------------------- /src/main/python/announcer/periodictask.py: -------------------------------------------------------------------------------- 1 | import threading 2 | 3 | # Dependency for the task 4 | 5 | 6 | # from https://gist.github.com/Depado/7925679 7 | # Function wrapper 8 | # you can annotate an arbitrary function 9 | # as periodical in its own thread 10 | def periodic_task(interval, times=-1): 11 | def outer_wrap(function): 12 | def wrap(*args, **kwargs): 13 | stop = threading.Event() 14 | 15 | def inner_wrap(): 16 | i = 0 17 | while i != times and not stop.isSet(): 18 | stop.wait(interval) 19 | function(*args, **kwargs) 20 | i += 1 21 | 22 | t = threading.Timer(0, inner_wrap) 23 | t.daemon = True 24 | t.start() 25 | return stop 26 | return wrap 27 | return outer_wrap 28 | -------------------------------------------------------------------------------- /src/main/python/ev_core/__init__.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/__init__.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/driverregistry.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | from ev_core.drivers.serial import SerialDriver 23 | from ev_core.drivers.xbx360 import Xbox360 24 | from ev_core.drivers.mouse import VirtualMouse 25 | from ev_core.drivers.keybd import VirtualKeyboard 26 | from ev_core.drivers.exec import ExecDriver 27 | from ev_core.drivers.feval import FEvalDriver 28 | 29 | 30 | DEV_TYPES = { 31 | "xbx360": Xbox360, 32 | "keybd": VirtualKeyboard, 33 | "mouse": VirtualMouse, 34 | "exec": ExecDriver, 35 | "eval": FEvalDriver, 36 | "serial": SerialDriver 37 | } 38 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/exec.py: -------------------------------------------------------------------------------- 1 | from ev_core.config import Config 2 | from ev_core.drivers.basedriver import BaseDriver 3 | import os 4 | 5 | 6 | # 7 | # A simple noń virtual driver 8 | # which allows to trigger external processes 9 | # it uses the meta data to trigger the external 10 | # command delivered by meta 11 | class ExecDriver(BaseDriver): 12 | _init_cnt = 0 13 | 14 | def __init__(self): 15 | self.phys = "exec" + ExecDriver._init_cnt.__str__() 16 | ExecDriver._init_cnt += 1 17 | pass 18 | 19 | def create(self, meta=None): 20 | pass 21 | 22 | def write(self, config: Config, drivers, e_type, e_sub_type, value, meta=None, periodical=0, frequency=0, event=None): 23 | if value == 1: 24 | os.system(meta) 25 | 26 | def close(self): 27 | pass 28 | 29 | def syn(self): 30 | pass 31 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/feval.py: -------------------------------------------------------------------------------- 1 | from ev_core.config import Config 2 | from ev_core.drivers.basedriver import BaseDriver 3 | import os 4 | import hashlib 5 | from utils.langutils import * 6 | 7 | 8 | # 9 | # A simple noń virtual driver 10 | # which allows to trigger another python script 11 | # this can be used for macros or whatever comes your mind 12 | # 13 | class FEvalDriver(BaseDriver): 14 | _init_cnt = 0 15 | 16 | def __init__(self): 17 | self.phys = "eval" + FEvalDriver._init_cnt.__str__() 18 | FEvalDriver._init_cnt += 1 19 | self._file_data = {} 20 | 21 | def create(self, meta=None): 22 | pass 23 | 24 | def write(self, config: Config, drivers, e_type, e_sub_type, value, meta=None, periodical=0, frequency=0, event=None): 25 | if value >= 1: 26 | key = hashlib.md5(meta.encode("utf-8")).hexdigest() 27 | if save_fetch(lambda: self._file_data[key]) is None: 28 | file = open(meta, "r") 29 | self._file_data[key] = compile(file.read(), meta, "exec") 30 | file.close() 31 | 32 | exec(self._file_data[key], { 33 | "config": config, 34 | "drivers": drivers, 35 | "meta": meta, 36 | "event": event 37 | }) 38 | 39 | def close(self): 40 | pass 41 | 42 | def syn(self): 43 | pass 44 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/mouse.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import os 24 | import stat 25 | import time 26 | from time import sleep 27 | 28 | from evdev import UInput, ecodes, AbsInfo 29 | from ev_core.drivers.basedriver import BaseDriver 30 | 31 | 32 | class VirtualMouse(BaseDriver): 33 | 34 | _init_cnt = 0 35 | 36 | def __init__(self): 37 | BaseDriver.__init__(self) 38 | 39 | self.phys = "joydrv/virtmouse" + VirtualMouse._init_cnt.__str__() 40 | self.name = "virtual-mouse" 41 | 42 | VirtualMouse._init_cnt += 1 43 | 44 | self.capabilities = { 45 | ecodes.EV_REL: (ecodes.REL_X, ecodes.REL_Y), 46 | ecodes.EV_KEY: (ecodes.BTN_LEFT, ecodes.BTN_MIDDLE, ecodes.BTN_RIGHT) 47 | } 48 | 49 | def create(self, meta=None): 50 | 51 | self.input_dev = UInput(self.capabilities, 52 | self.name, 53 | phys=self.phys) 54 | self.transfer_dev_data() 55 | 56 | return self 57 | 58 | def close(self): 59 | BaseDriver.close(self) 60 | VirtualMouse._init_cnt -= 1 61 | 62 | # helpers for the exec macros 63 | def press_btn_middle(self): 64 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_MIDDLE, 1) 65 | self.syn() 66 | time.sleep(100e-3) 67 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_MIDDLE, 0) 68 | self.syn() 69 | 70 | def press_btn_left(self): 71 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_LEFT, 1) 72 | self.syn() 73 | time.sleep(100e-3) 74 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_LEFT, 0) 75 | self.syn() 76 | 77 | def press_btn_right(self): 78 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_RIGHT, 1) 79 | self.syn() 80 | time.sleep(100e-3) 81 | self.write(None, None, ecodes.EV_KEY, ecodes.BTN_RIGHT, 0) 82 | self.syn() 83 | 84 | def move(self, rel_x, rel_y): 85 | self.write(None, None, ecodes.EV_REL, ecodes.REL_X, rel_x) 86 | self.write(None, None, ecodes.EV_REL, ecodes.REL_Y, rel_y) 87 | self.syn() 88 | 89 | -------------------------------------------------------------------------------- /src/main/python/ev_core/drivers/serial.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from ev_core.config import Config 3 | from ev_core.drivers.basedriver import BaseDriver 4 | import serial 5 | 6 | SYN = 254 7 | 8 | START_BYTE = 127 9 | 10 | TARGET_JOY = 0x0 11 | TARGET_KEYBD = 0x1 12 | TARGET_MOUSE = 0x2 13 | 14 | 15 | class SerialDriver(BaseDriver): 16 | """ 17 | Serial driver, for a UART connection 18 | to an external board providing 19 | the joystick emulation to external devices via a simple serial protocol 20 | """ 21 | _init_cnt = 0 22 | 23 | def __init__(self): 24 | self.phys = "serial" + SerialDriver._init_cnt.__str__() 25 | SerialDriver._init_cnt += 1 26 | self.name = "serial" 27 | self.ser = None 28 | 29 | def create(self, meta="/dev/serial0"): 30 | try: 31 | self.ser = serial.Serial(meta, 57600, timeout=0, write_timeout=0) 32 | 33 | except RuntimeError: 34 | print("Error: ", sys.exc_info()[0]) 35 | 36 | def write(self, config: Config, drivers, e_type, e_sub_type, value, meta=None, periodical=0, frequency=0, event=None): 37 | """ 38 | message format 39 | [two startbytes of 127 value, 40 | type byte big endian (high low) unsigned, 41 | boolean byte marking a negative value, 42 | two byte value big endian unsigned] 43 | """ 44 | is_negative = int(value < 0) 45 | abs_value = abs(value) 46 | val_high_byte = abs_value >> 8 & 0xff 47 | value_low_byte = abs_value & 0xff 48 | 49 | s_type = abs(int(e_sub_type)) 50 | type_high_byte = s_type >> 8 & 0xff 51 | type_low_byte = s_type & 0xff 52 | 53 | # we now transmit the data as byte array 54 | ev_list = [START_BYTE, START_BYTE, e_type, type_high_byte, type_low_byte, is_negative, val_high_byte, value_low_byte] 55 | data = bytearray(ev_list) 56 | self.ser.write(data) 57 | # 58 | # Example: 59 | # (EV_ABS), code 17 (ABS_HAT0Y), value -1 60 | # e_type: EV_ABS - actual 3 61 | # e_sub_type: 17 62 | # value: 0/1 - value -1 63 | # 64 | 65 | def close(self): 66 | """ 67 | close connection 68 | :return: 69 | """ 70 | self.ser.close() 71 | pass 72 | 73 | def syn(self): 74 | ev_list = [START_BYTE, START_BYTE, 0, 0, SYN, 0, 0, 0] 75 | data = bytearray(ev_list) 76 | self.ser.write(data) 77 | 78 | pass 79 | -------------------------------------------------------------------------------- /src/main/python/ev_core/supportive/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/ev_core/supportive/__init__.py -------------------------------------------------------------------------------- /src/main/python/ev_core/targetdevices.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | 24 | from ev_core.config import Config, NAME 25 | from utils.langutils import * 26 | from ev_core.drivers.driverregistry import DEV_TYPES 27 | 28 | 29 | class TargetDevices: 30 | 31 | def __init__(self, config: Config): 32 | 33 | self.config = config 34 | self.drivers = {} 35 | 36 | for key in config.outputs: 37 | dev_key, dev_name, dev_type, dev_meta = self.get_config_data(key) 38 | 39 | driver = save_fetch(lambda: DEV_TYPES[dev_type](), None) 40 | 41 | if driver is not None: 42 | driver.create(dev_meta) 43 | self.drivers[dev_key] = driver 44 | print(" - Output driver found for "+dev_name+" ( "+dev_type +" )"+ " node created with phys " + save_fetch(lambda: driver.phys)) 45 | 46 | def close(self): 47 | for key in self.drivers: 48 | if save_fetch(lambda: self.drivers[key].input_dev) is not None: 49 | self.drivers[key].input_dev.close() 50 | 51 | ''' 52 | @returns a given driver from a key 53 | for further processing 54 | ''' 55 | def get_driver(self, key): 56 | return self.drivers[key] 57 | 58 | ''' 59 | Fetches the associated config data 60 | and returns it 61 | @param key ... the device key 62 | @returns dev_key the device key from key 63 | @returns dev_name the device name from key 64 | @returns dev_type the device tyoe 65 | ''' 66 | def get_config_data(self, key): 67 | dev_key = key 68 | dev_name = save_fetch(lambda: self.config.outputs[key][NAME], None) 69 | dev_type = save_fetch(lambda: self.config.outputs[key]["type"], None) 70 | meta = save_fetch(lambda: self.config.outputs[key]["meta"], None) 71 | 72 | return dev_key, dev_name, dev_type, meta 73 | 74 | -------------------------------------------------------------------------------- /src/main/python/messaging_server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/messaging_server/__init__.py -------------------------------------------------------------------------------- /src/main/python/messaging_server/receiver.py: -------------------------------------------------------------------------------- 1 | #### 2 | # message receiver 3 | # for running updates during 4 | # runtime 5 | #### 6 | # thanks to https://steelkiwi.com/blog/working-tcp-sockets/ for the excellent tuorial 7 | 8 | import asyncio 9 | from asyncio import ReadTransport 10 | 11 | from pymitter import EventEmitter 12 | 13 | 14 | class EventProtocol(asyncio.Protocol): 15 | 16 | transport: ReadTransport = None 17 | 18 | def __init__(self, q, e): 19 | self.q = q 20 | self.event_emitter = e 21 | 22 | def connection_made(self, transport: ReadTransport): 23 | self.transport = transport 24 | 25 | ## 26 | # the idea is to use events for the incoming event transmission 27 | # into the subsystem, that way we can avoid loops 28 | # and timeouts to dispatch the incoming events properly 29 | # and let the runtime deal with the ugly details 30 | # we also will get more performance that way 31 | # because the dispatch code now is triggered really 32 | # on demand in a coroutine 33 | ## 34 | def data_received(self, data): 35 | self.q.put(data) 36 | self.event_emitter.emit("data_available") 37 | 38 | 39 | class Receiver: 40 | 41 | def __init__(self, *args, **kwargs): 42 | self.queue = kwargs.pop("__queue") 43 | self.event_emitter = EventEmitter() 44 | 45 | def on(self, event_str, lambda_func): 46 | self.event_emitter.on(event_str, lambda: lambda_func()) 47 | 48 | async def start(self, port): 49 | q = self.queue 50 | e = self.event_emitter 51 | # look at all network interfaces 52 | await (asyncio.get_event_loop()).create_server(protocol_factory=lambda: EventProtocol(q, e), host=None, port=port) 53 | 54 | -------------------------------------------------------------------------------- /src/main/python/messaging_server/sender.py: -------------------------------------------------------------------------------- 1 | #### 2 | # message receiver 3 | # for running updates during 4 | # runtime 5 | #### 6 | import asyncio 7 | 8 | from asyncio import WriteTransport 9 | 10 | 11 | class SenderProtocol(asyncio.Protocol): 12 | 13 | def __init__(self, message): 14 | self.message = message 15 | 16 | def connection_made(self, transport: WriteTransport): 17 | transport.write(self.message.encode()) 18 | transport.close() 19 | 20 | 21 | class Sender: 22 | 23 | def __init__(self, port): 24 | self.port = port 25 | 26 | def send_message(self, msg): 27 | conn = asyncio.get_event_loop().create_connection(lambda: SenderProtocol(msg), "localhost", self.port) 28 | asyncio.get_event_loop().run_until_complete(conn) 29 | conn.close() 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/python/prototype/__init__.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/python/prototype/inputevent.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | from evdev import UInput, ecodes as e 24 | 25 | capabilities = { 26 | e.EV_REL: (e.REL_X, e.REL_Y), 27 | e.EV_KEY: (e.BTN_LEFT, e.BTN_RIGHT), 28 | } 29 | 30 | with UInput(capabilities) as ui: 31 | ui.write(e.EV_REL, e.REL_X, 500) 32 | ui.write(e.EV_REL, e.REL_Y, 500) 33 | ui.write(e.EV_KEY, e.BTN_LEFT, 1) 34 | ui.syn() 35 | -------------------------------------------------------------------------------- /src/main/python/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/utils/__init__.py -------------------------------------------------------------------------------- /src/main/python/utils/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/utils/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /src/main/python/utils/__pycache__/config.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/python/utils/__pycache__/config.cpython-37.pyc -------------------------------------------------------------------------------- /src/main/python/utils/evdevutils.py: -------------------------------------------------------------------------------- 1 | import evdev 2 | 3 | 4 | class EvDevUtils: 5 | 6 | # externalized producer to be replaced in testing cases by mocks 7 | @staticmethod 8 | def get_available_devices(): 9 | return [evdev.InputDevice(path) for path in evdev.list_devices()] 10 | 11 | -------------------------------------------------------------------------------- /src/main/python/utils/langutils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import unicodedata 4 | import re 5 | 6 | 7 | DUMMY_DEFAULT = "__booga__" 8 | 9 | # normalizes a string into a caseless one 10 | def normalize_caseless(text): 11 | if text is None: 12 | return "____none____" 13 | return unicodedata.normalize("NFKD", text.casefold()) 14 | 15 | 16 | # equal ignore case equivalent 17 | def caseless_equal(left, right): 18 | return normalize_caseless(left) == normalize_caseless(right) 19 | 20 | 21 | # a caseless re match 22 | def re_match(my_str, r_exp): 23 | if r_exp is None: 24 | return False 25 | return re.search(r_exp, my_str, re.RegexFlag.IGNORECASE) is not None 26 | 27 | 28 | def save_fetch(first_order_func: callable, default=None): 29 | try: 30 | return first_order_func() 31 | except: 32 | return default 33 | 34 | 35 | def save_call(first_order_func: callable, max_retries=10): 36 | done = False 37 | cnt = 0 38 | while cnt < max_retries and not done: 39 | try: 40 | first_order_func() 41 | done = True 42 | except Exception: 43 | cnt += 1 44 | if cnt == 10: 45 | raise Exception 46 | 47 | 48 | 49 | 50 | # from https://stackoverflow.com/questions/19053707/converting-snake-case-to-lower-camel-case-lowercamelcase 51 | def to_camel_case(snake_str): 52 | components = snake_str.split('_') 53 | return components[0] + ''.join(x.title() for x in components[1:]) 54 | 55 | 56 | def build_tree(target, *args): 57 | 58 | curr_root = target 59 | for arg in args: 60 | curr_root[arg] = save_fetch(lambda: curr_root[arg], {}) 61 | curr_root = curr_root[arg] 62 | 63 | return curr_root 64 | 65 | 66 | # from https://stackoverflow.com/questions/38987/how-to-merge-two-dictionaries-in-a-single-expression 67 | def merge_two_dicts(x, y): 68 | z = x.copy() # start with x's keys and values 69 | z.update(y) # modifies z with y's keys and values & returns None 70 | return z 71 | 72 | 73 | def send_notification(msg): 74 | # os.system('notify-send ' + "'"+msg+"'") 75 | print(msg) 76 | 77 | -------------------------------------------------------------------------------- /src/main/resources/config_examples/a-autofire-overlay.json5: -------------------------------------------------------------------------------- 1 | /* MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | ###################################################################### 24 | # autofire for button a 25 | ####################################################################### 26 | */ 27 | { 28 | rules: [ 29 | { 30 | from: "digital", 31 | target_rules: [ 32 | { 33 | from_ev: "(EV_KEY), code 29 (KEY_LEFTCTRL)", 34 | targets: [ 35 | { 36 | to: "xbox1", 37 | to_ev: "(EV_KEY), code 304 (BTN_SOUTH)", 38 | // auto fire, periodical 1 means that the button needs to be constantly pressed, 39 | // 2 would mean autofire toggle 40 | periodical: 1, 41 | frequency: 200 42 | } 43 | ] 44 | } 45 | ] 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /src/main/resources/config_examples/b-autofire-overlay.json5: -------------------------------------------------------------------------------- 1 | /* MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | ###################################################################### 24 | # autofire for button b 25 | ####################################################################### 26 | */ 27 | { 28 | rules: [ 29 | { 30 | from: "digital", 31 | target_rules: [ 32 | { 33 | from_ev: "(EV_KEY), code 56 (KEY_LEFTALT)", 34 | targets: [ 35 | { 36 | to: "xbox1", 37 | to_ev: "(EV_KEY), code 305 (BTN_EAST)", 38 | // auto fire 39 | periodical: 1, 40 | frequency: 200 41 | } 42 | ] 43 | } 44 | ] 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /src/main/resources/config_examples/devices.json5.vm: -------------------------------------------------------------------------------- 1 | #** 2 | # MIT License 3 | # 4 | # Copyright (c) 2019 Werner Punz 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | *# 24 | 25 | #parse("macros.vm") 26 | 27 | { 28 | inputs: { 29 | #input_def( "digital" "Ultimarc I-PAC Ultimarc I-PAC" "true" "1"), 30 | #input_def( "analog_left" "^Ultimarc.*Ultrastik\\sPlayer\\ 1$" "true" "1"), 31 | #input_def( "analog_right" "^Ultimarc.*Ultrastik\\sPlayer\\ 2$" "true" "1") 32 | }, 33 | outputs: { 34 | #output_def( "xbox1" "Microsoft X-Box 360 pad" "xbx360"), 35 | #output_def( "xbox2" "Microsoft X-Box 360 pad" "xbx360"), 36 | #output_def( "mouse1" "mouse" "mouse"), 37 | #output_def( "keybd1" "key1" "keybd"), 38 | #output_def( "exec1" "exec1" "exec") 39 | }, 40 | 41 | rules: [ 42 | { 43 | from: "digital", 44 | target_rules: [ 45 | #mapping( "code 1 (EV_KEY), code 103 (KEY_UP)" "xbox1" "(EV_KEY), code 103 (KEY_UP), value -1" ), 46 | ] 47 | }, 48 | { 49 | from: "analog_left", 50 | target_rules: [ 51 | { 52 | from_ev: "(EV_KEY), code 103 (KEY_UP)", 53 | targets: [ 54 | #output( "xbox1" "(EV_KEY), code 103 (KEY_UP)" ), 55 | #output( "xbox2" "(EV_KEY), code 103 (KEY_UP)" ) 56 | ] 57 | } 58 | ] 59 | }, 60 | 61 | ## macroed 4way 8 way hotkeys 62 | { 63 | from: "analog_left", 64 | target_rules: [ 65 | #mapping( "(EV_KEY), code 105 (KEY_UP)" "exec1" "(META), /usr/local/bin/4way") , 66 | #mapping( "(EV_KEY), code 108 (KEY_UP)" "exec1" "(META), /usr/local/bin/8way") 67 | ] 68 | } 69 | ] 70 | } 71 | 72 | -------------------------------------------------------------------------------- /src/main/resources/events.txt: -------------------------------------------------------------------------------- 1 | 1u type 1 (EV_KEY), code 103 (KEY_UP), 2 | 1d type 1 (EV_KEY), code 108 (KEY_DOWN) 3 | 1l type 1 (EV_KEY), code 105 (KEY_LEFT) 4 | 1r type 1 (EV_KEY), code 106 (KEY_RIGHT) 5 | 6 | 1a type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0 7 | 1b type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0 8 | 9 | 1x type 1 (EV_KEY), code 57 (KEY_SPACE), value 0 10 | 1y type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0 11 | 12 | 1l type 1 (EV_KEY), code 44 (KEY_Z), value 0 13 | 1r type 1 (EV_KEY), code 45 (KEY_X), value 0 14 | 1l type 1 (EV_KEY), code 46 (KEY_C), value 0 15 | 1rt type 1 (EV_KEY), code 47 (KEY_V), value 0 16 | 1bt type 1 (EV_KEY), code 25 (KEY_P), value 0 17 | 18 | 19 | 2u type 1 (EV_KEY), code 32 (KEY_D), value 0 20 | 2dype 1 (EV_KEY), code 33 (KEY_F), value 0 21 | 2ltype 1 (EV_KEY), code 34 (KEY_G), value 0 22 | 2rtype 1 (EV_KEY), code 19 (KEY_R), value 0 23 | 24 | 2a type 1 (EV_KEY), code 31 (KEY_S), value 0 25 | 2b type 1 (EV_KEY), code 30 (KEY_A), value 0 26 | 2xtype 1 (EV_KEY), code 16 (KEY_Q), value 0 27 | 2ytype 1 (EV_KEY), code 17 (KEY_W), value 0 28 | 2ltype 1 (EV_KEY), code 37 (KEY_K), value 0 29 | 2rtype 1 (EV_KEY), code 23 (KEY_I), value 0 30 | 2ltttype 1 (EV_KEY), code 36 (KEY_J), value 0 31 | 2rtype 1 (EV_KEY), code 38 (KEY_L), value 0 32 | 2bttype 1 (EV_KEY), code 15 (KEY_TAB), value 0 33 | 34 | 35 | 1c type 1 (EV_KEY), code 3 (KEY_2), value 0 36 | 2ctype 1 (EV_KEY), code 7 (KEY_6), value 0 37 | 1ptype 1 (EV_KEY), code 6 (KEY_5), value 0 38 | 2ptype 1 (EV_KEY), code 2 (KEY_1), value 0 39 | 40 | 41 | us1: 42 | 43 | utype 3 - 44 | dtype 3 (EV_ABS), code 1 (ABS_Y) + 45 | l type 3 (EV_ABS), code 0 (ABS_X), - 46 | r type 3 (EV_ABS), code 0 (ABS_X), + 47 | 48 | 1 type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 0 49 | 2ype 1 (EV_KEY), code 289 (BTN_THUMB), value 0 50 | 3 51 | 4 52 | 5 53 | 6 54 | 7 55 | 8 294 56 | 57 | 58 | us2 59 | siehe us1 60 | 61 | orange-left 62 | type 1 (EV_KEY), code 292 (BTN_TOP2), value 1 63 | 64 | 65 | orange-right: 66 | type 1 (EV_KEY), code 291 (BTN_TOP), value 1 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/Burping_2_short.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/src/main/resources/plugin_examples/Burping_2_short.ogg -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/a-toggle.py: -------------------------------------------------------------------------------- 1 | # plugin which demonstrates 2 | # how to toggle a state 3 | # on a keypress, for simplicity reasons we just start vlc in hidden mode 4 | import os 5 | 6 | cfg = globals()["config"] 7 | drv = globals()["drivers"] 8 | 9 | if "a_autofire_press" in cfg: 10 | del cfg["a_autofire_press"] 11 | os.system("/home/werpu/gamepadservice/reset.sh") 12 | pass 13 | else: 14 | cfg["a_autofire_press"] = True 15 | os.system("/home/werpu/gamepadservice/a-autofire.sh") 16 | pass 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/b-toggle.py: -------------------------------------------------------------------------------- 1 | # plugin which demonstrates 2 | # how to toggle a state 3 | # on a keypress, for simplicity reasons we just start vlc in hidden mode 4 | import os 5 | 6 | cfg = globals()["config"] 7 | drv = globals()["drivers"] 8 | 9 | if "b_autofire_press" in cfg: 10 | del cfg["b_autofire_press"] 11 | os.system("/home/werpu/gamepadservice/reset.sh") 12 | pass 13 | else: 14 | cfg["b_autofire_press"] = True 15 | os.system("/home/werpu/gamepadservice/b-autofire.sh") 16 | pass 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/burping.py: -------------------------------------------------------------------------------- 1 | # plugin which demonstrates 2 | # how to play a media file 3 | # on a keypress, for simplicity reasons we just start vlc in hidden mode 4 | import os 5 | 6 | cfg = globals()["config"] 7 | drv = globals()["drivers"] 8 | print(drv) 9 | 10 | os.system("vlc --play-and-exit --intf dummy /home/werpu/PycharmProjects/" + 11 | "input_pipe/src/test/resources/Burping_2_short.ogg") 12 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/exponential_translate.py: -------------------------------------------------------------------------------- 1 | # logarithmic/exponential value translation for delayed sensitivity 2 | # and also example on how to translate event values simply 3 | # with out eval trigger 4 | import math 5 | 6 | from evdev import UInput, ecodes 7 | 8 | event = globals()["event"] 9 | 10 | 11 | # euler exponential base for now 12 | def calc(xVal): 13 | if xVal >= 127: 14 | return math.exp(xVal * 0.0381) + 127 15 | else: 16 | xVal = max(0.001, xVal) 17 | return math.log(xVal) / 0.0381 - 127 18 | 19 | 20 | event.value = calc(event.value) 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/moo.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from utils.langutils import save_fetch 4 | 5 | cfg = globals()["config"] 6 | drv = globals()["drivers"] 7 | print(drv) 8 | 9 | os.system("vlc --play-and-exit --intf dummy /home/werpu/PycharmProjects/" + 10 | "input_pipe/src/test/resources/Mudchute_cow_1.ogg") 11 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/moo.yaml: -------------------------------------------------------------------------------- 1 | # custom exampl,e for an eval overlay 2 | # overlays are small event rule parts 3 | # which can temporarily overlay the normal event rules 4 | # by replacing the device/from_ev combo with this ruleset 5 | # stated here 6 | rules: 7 | - from: analog_right 8 | target_rules: 9 | - from_ev: (EV_KEY), code 290 (BTN_THUMB2) #single button right 10 | targets: 11 | - to: eval1 12 | to_ev: (META), ./moo.py 13 | -------------------------------------------------------------------------------- /src/main/resources/plugin_examples/onscreen_keyboard_uae.py: -------------------------------------------------------------------------------- 1 | # Keyboard starter for the florence keyboard 2 | # utilizing the uaw shortcuts of middle mouse to release the mouse pointer 3 | # and right mouse to capture it again 4 | # you can use this script for your own toggle functionalities 5 | # ideally you probably shuld use overlays to customly attach your own 6 | # generic on screen keyboard to an emulator, since every emulator has 7 | # different shortcuts 8 | import os 9 | import time 10 | import psutil 11 | 12 | 13 | class OSKeyHandler: 14 | 15 | def __init__(self, mouse1): 16 | self.mouse_driver = mouse1 17 | 18 | def kill_florence(self): 19 | p = self.florence_exists() 20 | if p is not None: 21 | p.terminate() 22 | time.sleep(0.5) 23 | self.mouse_driver.press_btn_left() 24 | 25 | @staticmethod 26 | def florence_exists(): 27 | p = None 28 | for proc in psutil.process_iter(): 29 | if proc.as_dict(attrs=["name"])["name"] == "florence": 30 | p = proc 31 | break 32 | return p 33 | 34 | def start_florence(self): 35 | if self.florence_exists() is None: 36 | os.system("florence &") 37 | 38 | def toggle_florence(self): 39 | if self.florence_exists() is None: 40 | self.mouse_driver.press_btn_middle() 41 | self.start_florence() 42 | else: 43 | self.mouse_driver.press_btn_right() 44 | self.kill_florence() 45 | 46 | 47 | drv = globals()["drivers"] 48 | OSKeyHandler(drv["mouse1"]).toggle_florence() 49 | 50 | -------------------------------------------------------------------------------- /src/main/resources/xboxevents.txt: -------------------------------------------------------------------------------- 1 | xbox commands 2 | 3 | A - type 1 (EV_KEY), code 304 (BTN_SOUTH), value 1 4 | B - type 1 (EV_KEY), code 305 (BTN_EAST), value 1 5 | X - type 1 (EV_KEY), code 307 (BTN_NORTH), value 1 6 | Y - type 1 (EV_KEY), code 308 (BTN_WEST), value 1 7 | 8 | D-UP - type 3 (EV_ABS), code 17 (ABS_HAT0Y), value -1 9 | D-DOWN - type 3 (EV_ABS), code 17 (ABS_HAT0Y), value 1 10 | D-LEFT - type 3 (EV_ABS), code 16 (ABS_HAT0X), value -1 11 | D-RIGHT - type 3 (EV_ABS), code 16 (ABS_HAT0X), value 1 12 | 13 | L-A-UP - type 3 (EV_ABS), code 1 (ABS_Y), value -32262 14 | L-A-D - type 3 (EV_ABS), code 1 (ABS_Y), value 32262 15 | L-A-L - type 3 (EV_ABS), code 0 (ABS_X), value -32262 16 | L-A-R - type 3 (EV_ABS), code 0 (ABS_X), value 32262 17 | 18 | R-A-UP - type 3 (EV_ABS), code 4 (ABS_RY), value -32262 19 | R-A-D - type 3 (EV_ABS), code 4 (ABS_RY), value 32262 20 | R-A-L - type 3 (EV_ABS), code 3 (ABS_RX), value -32262 21 | R-A-R - type 3 (EV_ABS), code 3 (ABS_RX), value 32262 22 | 23 | 24 | L - type 1 (EV_KEY), code 310 (BTN_TL), value 1 25 | R - type 1 (EV_KEY), code 311 (BTN_TR), value 1 26 | 27 | LT - type 1 (EV_KEY), code 312 (BTN_TL2), value 1 28 | RT - type 1 (EV_KEY), code 313 (BTN_TR2), value 1 29 | 30 | SEL - type 1 (EV_KEY), code 314 (BTN_SELECT), value 1 31 | START - type 1 (EV_KEY), code 315 (BTN_START), value 1 32 | HOME - type 1 (EV_KEY), code 316 (BTN_MODE), value 0 33 | 34 | BT_THUMBL - type 1 (EV_KEY), code 316 (BTN_MODE), value 1 35 | BT_THUMBR - type 1 (EV_KEY), code 317 (BTN_THUMBL), value 1 36 | BT_THUMBR - type 1 (EV_KEY), code 318 (BTN_THUMBR), value 1 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | d209 -------------------------------------------------------------------------------- /src/test/python/EventTreeTest.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import unittest 24 | 25 | from test_utils.sourceDevicesMock import SourceDevicesMock 26 | from ev_core.targetdevices import TargetDevices 27 | from ev_core.eventtree import EventTree 28 | from ev_core.config import Config 29 | from utils.langutils import * 30 | 31 | 32 | class MyTestCase(unittest.TestCase): 33 | 34 | def test_tree_buildup(self): 35 | config = Config("../resources/devices.yaml") 36 | source_devices = SourceDevicesMock(config) 37 | target_devices = TargetDevices(config) 38 | event_tree = EventTree(config, source_devices, target_devices) 39 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["digital"]["EV_KEY"]["103"]["xbox1"]["driver"])) 40 | self.assertEqual(int(save_fetch(lambda: event_tree.tree["digital"]["EV_KEY"]["103"]["xbox1"]["value"])), -1) 41 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["103"]["xbox1"]["driver"])) 42 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["103"]["xbox2"]["driver"])) 43 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"]["exec1"]["driver"])) 44 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"]["exec1"]["ev_meta"])) 45 | self.assertIsNotNone(save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"]["exec1"]["driver"])) 46 | 47 | 48 | if __name__ == '__main__': 49 | unittest.main() 50 | -------------------------------------------------------------------------------- /src/test/python/SourceDevicesTest.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import unittest 24 | 25 | import asyncio 26 | 27 | from test_utils.sourceDevicesMock import SourceDevicesMock 28 | from ev_core.config import Config 29 | 30 | 31 | class MyTestCase(unittest.TestCase): 32 | 33 | def test_device_parsing(self): 34 | 35 | self.devices = SourceDevicesMock(Config("../resources/devices.yaml")) 36 | 37 | asyncio.run(self.assertAll()) 38 | 39 | async def assertAll(self): 40 | 41 | while not self.devices.all_found: 42 | await asyncio.sleep(5) 43 | 44 | self.assertTrue(len(self.devices.devices) == 3) 45 | self.assertEqual(self.devices.devices[2].name, 'Ultimarc UltraStik Ultimarc UltraStik Player 2') 46 | self.assertEqual(self.devices.devices[1].name, 'Ultimarc UltraStik Ultimarc UltraStik Player 1') 47 | self.assertEqual(self.devices.devices[0].name, 'Ultimarc I-PAC Ultimarc I-PAC') 48 | 49 | 50 | if __name__ == '__main__': 51 | unittest.main() 52 | -------------------------------------------------------------------------------- /src/test/python/TargetDevicesTest.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import unittest 24 | from time import sleep 25 | 26 | from ev_core.drivers.keybd import VirtualKeyboard 27 | from ev_core.drivers.mouse import VirtualMouse 28 | from ev_core.drivers.xbx360 import Xbox360 29 | from ev_core.targetdevices import TargetDevices 30 | from ev_core.config import Config 31 | from utils.evdevutils import EvDevUtils 32 | 33 | 34 | # Tests for the target device capabilities 35 | # We test the driver generation the target device matching 36 | # and the event sendinng here 37 | class TargetDevTestCase(unittest.TestCase): 38 | 39 | def test_device_creation(self): 40 | self._assert_created_device(Xbox360()) 41 | self._assert_created_device(VirtualMouse()) 42 | self._assert_created_device(VirtualKeyboard()) 43 | 44 | # config test for matching devices after creation 45 | def test_device_match(self): 46 | devices = TargetDevices(Config("../resources/devices.yaml")) 47 | self.assertEqual(len(devices.drivers), 5, "5 devices found") 48 | self.assertTrue(devices.drivers["xbox1"] is not None) 49 | self.assertTrue(devices.drivers["xbox2"] is not None) 50 | self.assertTrue(devices.drivers["mouse1"] is not None) 51 | self.assertTrue(devices.drivers["keybd1"] is not None) 52 | 53 | # Generic dives creation assert routine 54 | def _assert_created_device(self, device_drv): 55 | device_drv.create().syn() 56 | found = False 57 | cnt = 0 58 | # give linux time to catch up usually 0.05sec on a semi modern machine 59 | while cnt < 3 and not found: 60 | cnt += 1 61 | sleep(0.1) 62 | for dev in EvDevUtils.get_available_devices(): 63 | found = found or dev.phys == device_drv.phys 64 | self.assertTrue(found, "device created and available") 65 | 66 | 67 | 68 | 69 | if __name__ == '__main__': 70 | unittest.main() 71 | -------------------------------------------------------------------------------- /src/test/python/TestSuite.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import glob 24 | import unittest 25 | 26 | test_files = glob.glob('*Test.py') 27 | module_strings = [test_file[0:len(test_file)-3] for test_file in test_files] 28 | suites = [unittest.defaultTestLoader.loadTestsFromName(test_file) for test_file in module_strings] 29 | test_suite = unittest.TestSuite(suites) 30 | test_runner = unittest.TextTestRunner().run(test_suite) -------------------------------------------------------------------------------- /src/test/python/UdevListenerTest.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from ev_core.config import Config 4 | from test_utils.eventControllerMock import EventControllerMock 5 | from test_utils.udevDeviceMock import UdevDeviceMock 6 | from test_utils.udevListenerMock import UdevListenerMock 7 | 8 | 9 | class MyTestCase(unittest.TestCase): 10 | def test_udev_event_handling(self): 11 | config = Config("../resources/devices.yaml") 12 | eventcontroller = EventControllerMock(config) 13 | listener = UdevListenerMock(eventcontroller) 14 | 15 | device1 = UdevDeviceMock("Ultimarc_UltraStik", "Ultimarc_Ultra-Stik_Player_1") 16 | self.assertTrue(eventcontroller.started) 17 | self.assertTrue(eventcontroller.restarted_cnt == 0) 18 | listener.trigger_event_usb("remove", device1) 19 | self.assertFalse(eventcontroller.started) 20 | listener.trigger_event_input("add", device1) 21 | self.assertTrue(eventcontroller.started) 22 | self.assertTrue(eventcontroller.restarted_cnt > 0) 23 | 24 | 25 | if __name__ == '__main__': 26 | unittest.main() 27 | -------------------------------------------------------------------------------- /src/test/python/UtilsTest.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | import unittest 24 | 25 | from utils.langutils import * 26 | 27 | 28 | class MyTestCase(unittest.TestCase): 29 | 30 | def test_elvis(self): 31 | a = {'a': 3, "b": {"c": 5}} 32 | self.assertEqual(save_fetch(lambda: a['b']['c'], "booga"), 5) 33 | self.assertEqual(save_fetch(lambda: a['b']['d'], "booga"), "booga") 34 | self.assertIsNone(save_fetch(lambda: a['b']['d'])) 35 | 36 | def test_caseless_equal(self): 37 | self.assertTrue(caseless_equal("AAA", "AaA")) 38 | self.assertFalse(caseless_equal("AAA", "xaA")) 39 | 40 | def test_re_match(self): 41 | self.assertTrue(re_match("aaaBBBccc", "^a.*C$")) 42 | self.assertTrue(re_match("aaaBBBccc", "^a.*c$")) 43 | self.assertTrue(re_match("aaaBBBccc", "a.*c")) 44 | self.assertFalse(re_match("aaaBBBccx", "a.*c$")) 45 | 46 | def test_build_tree(self): 47 | root = {} 48 | last = build_tree(root, "a", "b", "c") 49 | last["data"] = "booga" 50 | self.assertEqual(root["a"]["b"]["c"]["data"],"booga") 51 | 52 | 53 | if __name__ == '__main__': 54 | unittest.main() 55 | -------------------------------------------------------------------------------- /src/test/python/florence_start.py: -------------------------------------------------------------------------------- 1 | # Keyboard starter for the florence keyboard 2 | import os 3 | import time 4 | import psutil 5 | 6 | 7 | class OSKeyHandler: 8 | 9 | def __init__(self, mouse1): 10 | self.mouse_driver = mouse1 11 | 12 | def kill_florence(self): 13 | p = self.florence_exists() 14 | if p is not None: 15 | p.terminate() 16 | time.sleep(0.5) 17 | self.mouse_driver.press_btn_left() 18 | 19 | @staticmethod 20 | def florence_exists(): 21 | p = None 22 | for proc in psutil.process_iter(): 23 | if proc.as_dict(attrs=["name"])["name"] == "florence": 24 | p = proc 25 | break 26 | return p 27 | 28 | def start_florence(self): 29 | if self.florence_exists() is None: 30 | os.system("florence &") 31 | 32 | def toggle_florence(self): 33 | if self.florence_exists() is None: 34 | self.mouse_driver.press_btn_middle() 35 | self.start_florence() 36 | else: 37 | self.mouse_driver.press_btn_right() 38 | self.kill_florence() 39 | 40 | 41 | 42 | #cfg = globals()["config"] 43 | #drv = globals()["drivers"] 44 | # middle mouse (EV_KEY), code 274 (BTN_MIDDLE) 45 | # florence /usr/bin/florence 46 | # btn-left: (EV_KEY), code 272 (BTN_LEFT) 47 | 48 | 49 | drv = globals()["drivers"] 50 | OSKeyHandler(drv["mouse1"]).toggle_florence() 51 | 52 | -------------------------------------------------------------------------------- /src/test/python/test_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/test/python/test_utils/deviceMock.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | 24 | # a basic device mockup 25 | class DeviceMock: 26 | 27 | def __init__(self, path="", info=[], name="", phys="", uniq="", version=""): 28 | self.path = path 29 | self.info = info # bustype, vendor, product, version 30 | self.name = name 31 | self.phys = phys 32 | self.uniq = uniq 33 | self.version = version 34 | 35 | @staticmethod 36 | def grab(): 37 | print("grabbing device") 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/test/python/test_utils/eventControllerMock.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | # A mocked event controller to check whether our routines 4 | # into the starting and restarting are touched correctly 5 | from ev_core.config import Config 6 | 7 | 8 | class EventControllerMock: 9 | 10 | def __init__(self, config: Config): 11 | self.started = True 12 | self.restarted_cnt = 0 13 | self.config = config 14 | 15 | def start(self): 16 | self.restarted_cnt += 1 17 | self.started = True 18 | 19 | def stop(self): 20 | self.started = False 21 | 22 | def reload(self): 23 | self.stop() 24 | self.start() 25 | 26 | -------------------------------------------------------------------------------- /src/test/python/test_utils/exevDriverMock.py: -------------------------------------------------------------------------------- 1 | from ev_core.drivers.exec import ExecDriver 2 | 3 | 4 | class ExecDriverMock(ExecDriver): 5 | 6 | def __init__(self): 7 | ExecDriver.__init__(self) 8 | self.meta = "" 9 | 10 | def write(self, e_type, e_sub_type, value, meta=None): 11 | self.meta = meta -------------------------------------------------------------------------------- /src/test/python/test_utils/sourceDevicesMock.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | from ev_core.sourcedevices2 import SourceDevices2 24 | from ev_core.config import Config 25 | from test_utils.deviceMock import DeviceMock 26 | 27 | 28 | class SourceDevicesMock(SourceDevices2): 29 | 30 | def __init__(self, config: Config): 31 | SourceDevices2.__init__(self, config) 32 | 33 | def get_available_devices(self): 34 | return [ 35 | DeviceMock("/dev/input/event3", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC", "usb-0000:38:00.3-3.2/input0", "8"), 36 | DeviceMock("/dev/input/event4", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC", "usb-0000:38:00.3-3.2/input1", "8"), 37 | DeviceMock("/dev/input/event5", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC System Control", "usb-0000:38:00.3-3.2/input2", "8"), 38 | DeviceMock("/dev/input/event6", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC Consumer Control", "usb-0000:38:00.3-3.2/input2", "8"), 39 | DeviceMock("/dev/input/event7", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC", "usb-0000:38:00.3-3.2/input2", "8"), 40 | DeviceMock("/dev/input/event8", ["BUS_USB", "0xd209", "0x410", "273"], "Ultimarc I-PAC Ultimarc I-PAC", "usb-0000:38:00.3-3.2/input2", "8"), 41 | DeviceMock("/dev/input/event9", ["BUS_USB", "0xd209", "0x410", "273"], "Universal Human Interface Device", "usb-0000:38:00.3-3.1.2/input0", "9"), 42 | DeviceMock("/dev/input/event10", ["BUS_USB", "0xd209", "0x511", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 1", "usb-0000:38:00.3-3.3/input0", "1"), 43 | DeviceMock("/dev/input/event11", ["BUS_USB", "0xd209", "0x511", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 1", "usb-0000:38:00.3-3.3/input1", "1"), 44 | DeviceMock("/dev/input/event12", ["BUS_USB", "0xd209", "0x511", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 1", "usb-0000:38:00.3-3.3/input2", "1"), 45 | DeviceMock("/dev/input/event13", ["BUS_USB", "0xd209", "0x512", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 2", "usb-0000:38:00.3-3.1.3/input0", "1"), 46 | DeviceMock("/dev/input/event14", ["BUS_USB", "0xd209", "0x512", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 2", "usb-0000:38:00.3-3.1.3/input1", "1"), 47 | DeviceMock("/dev/input/event15", ["BUS_USB", "0xd209", "0x512", "273"], "Ultimarc UltraStik Ultimarc UltraStik Player 2", "usb-0000:38:00.3-3.1.3/input2", "1") 48 | ] 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/test/python/test_utils/udevDeviceMock.py: -------------------------------------------------------------------------------- 1 | from utils.langutils import to_camel_case 2 | 3 | 4 | # A simple udev device mock needed to mock 5 | # the device parts of the udev system we touch here 6 | class UdevDeviceMock: 7 | def __init__(self, idVendor, idModel, idVendorId = "", idModelId = ""): 8 | self.idVendor = idVendor 9 | self.idModel = idModel 10 | self.idVendorId = idVendorId 11 | self.idModelId = idModelId 12 | 13 | def get(self, key): 14 | return self.__getattribute__(to_camel_case(key.lower())) 15 | -------------------------------------------------------------------------------- /src/test/python/test_utils/udevListenerMock.py: -------------------------------------------------------------------------------- 1 | from test_utils.udevlistener import UdevListener 2 | from test_utils.eventControllerMock import EventControllerMock 3 | from test_utils.udevDeviceMock import UdevDeviceMock 4 | 5 | 6 | # Listener mock which isolates the system dependend parts 7 | # of the udev and frees the non system dependent ones for testing 8 | class UdevListenerMock(UdevListener): 9 | 10 | def __init__(self, ev_ctl: EventControllerMock): 11 | self.ev_ctl = ev_ctl 12 | self.config = ev_ctl.config 13 | self.restarting = False 14 | 15 | def trigger_event_usb(self, action, device: UdevDeviceMock): 16 | self._usb_event_handler(action, device) 17 | 18 | def trigger_event_input(self, action, device: UdevDeviceMock): 19 | self._input_event_handler(action, device) 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/test/python/test_utils/udevlistener.py: -------------------------------------------------------------------------------- 1 | import pyudev 2 | 3 | from utils.langutils import * 4 | from time import sleep 5 | 6 | 7 | # Udev hotplugging listener 8 | # the idea is to simulate udev rules with this one 9 | # whenever one of our source devices is removed we need to shutdown 10 | # the pipe and whenever it is attached 11 | # we reactivate the pipe and target inputs 12 | # it is an all or nothing approach 13 | # partial piping is not yet supported 14 | class UdevListener: 15 | 16 | def __init__(self, ev_ctl): 17 | context = pyudev.Context() 18 | monitor = pyudev.Monitor.from_netlink(context) 19 | monitor.filter_by("usb") 20 | 21 | monitor2 = pyudev.Monitor.from_netlink(context) 22 | monitor2.filter_by("input") 23 | 24 | self.config = ev_ctl.config 25 | self.ev_ctl = ev_ctl 26 | self.restarting = False 27 | self.observer = pyudev.MonitorObserver(monitor, self._usb_event_handler) 28 | self.observer2 = pyudev.MonitorObserver(monitor, self._input_event_handler) 29 | self.observer.start() 30 | self.observer2.start() 31 | 32 | # id vendor only on input level detectable in the remove case 33 | def _usb_event_handler(self, action, device): 34 | found, name = self._get_udev_base_data(device) 35 | found = self._match_udev_data(found, name) 36 | 37 | if found and action == "remove": 38 | self.ev_ctl.stop() 39 | 40 | # in the add case we can savely work only on usb level 41 | # because doing that over input would put us into an endless 42 | # loop 43 | def _input_event_handler(self, action, device): 44 | found, name = self._get_udev_base_data(device) 45 | found = self._match_udev_data(found, name) 46 | 47 | if found and action == "add": 48 | if self.restarting: 49 | return 50 | self.restarting = True 51 | sleep(5) 52 | self.ev_ctl.reload() 53 | self.restarting = False 54 | 55 | def _match_udev_data(self, found, name, vendor=None): 56 | for input_key in self.config.inputs: 57 | c_name, name_re, phys, phys_re, rel_pos, c_vendor, product, exclusive, i_max, i_min, deadzone = \ 58 | self.config.get_config_input_params(input_key) 59 | # todo assert for i_max, i_min, deadzone 60 | if c_name is not None: 61 | found = found or caseless_equal(name, c_name) 62 | # elif vendor is not None: 63 | # found = found or caseless_equal("0x"+vendor, c_vendor) 64 | elif name_re is not None: 65 | found = found or re_match(name, name_re) 66 | 67 | if found: 68 | break 69 | return found 70 | 71 | @staticmethod 72 | def _get_udev_base_data(device): 73 | name = (device.get("ID_VENDOR") or "____") + " " + (device.get("ID_MODEL") or "____") 74 | name = name.replace("_", " ") 75 | found = True 76 | return found, name 77 | -------------------------------------------------------------------------------- /src/test/resources/devices.json5: -------------------------------------------------------------------------------- 1 | /** 2 | # MIT License 3 | # 4 | # Copyright (c) 2019 Werner Punz 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | */ 24 | { 25 | inputs: { 26 | digital: { 27 | name: "Ultimarc I-PAC Ultimarc I-PAC", 28 | exclusive: true, 29 | relpos: 1 30 | }, 31 | analog_left: { 32 | name_re: "^Ultimarc.*Ultrastik\\sPlayer\\ 1$", 33 | exclusive: true, 34 | relpos: 1 35 | }, 36 | analog_right: { 37 | name_re: "^Ultimarc.*Ultrastik\\sPlayer\\ 2$", 38 | exclusive: true, 39 | relpos: 1 40 | } 41 | }, 42 | outputs: { 43 | xbox1: { 44 | name: "Microsoft X-Box 360 pad", 45 | type: "xbx360" 46 | }, 47 | xbox2: { 48 | name: "Microsoft X-Box 360 pad", 49 | type: "xbx360" 50 | }, 51 | mouse1: { 52 | name: "mouse", 53 | type: "mouse" 54 | }, 55 | keybd1: { 56 | name: "key1", 57 | type: "keybd" 58 | }, 59 | exec1: { 60 | name: "exec1", 61 | type: "exec" 62 | } 63 | }, 64 | rules: [ 65 | { 66 | from: "digital", 67 | target_rules: [ 68 | { 69 | from_ev: "code 1 (EV_KEY), code 103 (KEY_UP)", 70 | targets: [ 71 | { 72 | to: "xbox1", 73 | to_ev: "(EV_KEY), code 103 (KEY_UP), value -1", 74 | //recurring aka auto fire 75 | periodical: 1, 76 | frequency: 10 77 | } 78 | ] 79 | } 80 | ] 81 | }, 82 | { 83 | from: "analog_left", 84 | target_rules: [ 85 | { 86 | from_ev: "(EV_KEY), code 103 (KEY_UP)", 87 | targets: [ 88 | { 89 | to: "xbox1", 90 | to_ev: "(EV_KEY), code 103 (KEY_UP)" 91 | }, 92 | { 93 | to: "xbox2", 94 | to_ev: "(EV_KEY), code 103 (KEY_UP)" 95 | } 96 | ] 97 | } 98 | ] 99 | }, 100 | { 101 | from: "analog_left", 102 | target_rules: [ 103 | { 104 | from_ev: "(EV_KEY), code 105 (KEY_UP)", 105 | targets: [ 106 | { 107 | to: "exec1", 108 | to_ev: "(META), /usr/local/bin/4way" 109 | } 110 | ] 111 | }, 112 | { 113 | from_ev: "(EV_KEY), code 108 (KEY_UP)", 114 | targets: [ 115 | { 116 | to: "exec1", 117 | to_ev: "(META), /usr/local/bin/4way" 118 | } 119 | ] 120 | } 121 | ] 122 | } 123 | ] 124 | } -------------------------------------------------------------------------------- /src/test/resources/devices.json5.vtpl: -------------------------------------------------------------------------------- 1 | #** 2 | # MIT License 3 | # 4 | # Copyright (c) 2019 Werner Punz 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | *# 24 | 25 | #parse("macros.vm") 26 | 27 | { 28 | inputs: { 29 | #input_def( "digital" "Ultimarc I-PAC Ultimarc I-PAC" "true" "1"), 30 | #input_def( "analog_left" "^Ultimarc.*Ultrastik\\sPlayer\\ 1$" "true" "1"), 31 | #input_def( "analog_right" "^Ultimarc.*Ultrastik\\sPlayer\\ 2$" "true" "1") 32 | }, 33 | outputs: { 34 | #output_def( "xbox1" "Microsoft X-Box 360 pad" "xbx360"), 35 | #output_def( "xbox2" "Microsoft X-Box 360 pad" "xbx360"), 36 | #output_def( "mouse1" "mouse" "mouse"), 37 | #output_def( "keybd1" "key1" "keybd"), 38 | #output_def( "exec1" "exec1" "exec") 39 | }, 40 | 41 | rules: [ 42 | { 43 | from: "digital", 44 | target_rules: [ 45 | #mapping( "code 1 (EV_KEY), code 103 (KEY_UP)" "xbox1" "(EV_KEY), code 103 (KEY_UP), value -1" ), 46 | ] 47 | }, 48 | { 49 | from: "analog_left", 50 | target_rules: [ 51 | { 52 | from_ev: "(EV_KEY), code 103 (KEY_UP)", 53 | targets: [ 54 | #output( "xbox1" "(EV_KEY), code 103 (KEY_UP)" ), 55 | #output( "xbox2" "(EV_KEY), code 103 (KEY_UP)" ) 56 | ] 57 | } 58 | ] 59 | }, 60 | 61 | ## macroed 4way 8 way hotkeys 62 | { 63 | from: "analog_left", 64 | target_rules: [ 65 | #mapping( "(EV_KEY), code 105 (KEY_UP)" "exec1" "(META), /usr/local/bin/4way") , 66 | #mapping( "(EV_KEY), code 108 (KEY_UP)" "exec1" "(META), /usr/local/bin/4way") 67 | ] 68 | } 69 | ] 70 | } 71 | 72 | -------------------------------------------------------------------------------- /src/test/resources/devices.toml: -------------------------------------------------------------------------------- 1 | # toml testing, you can use https://toolkit.site/format.html 2 | # for a proper cross conversion 3 | 4 | 5 | # MIT License 6 | # 7 | # Copyright (c) 2019 Werner Punz 8 | # 9 | # Permission is hereby granted, free of charge, to any person obtaining a copy 10 | # of this software and associated documentation files (the "Software"), to deal 11 | # in the Software without restriction, including without limitation the rights 12 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | # copies of the Software, and to permit persons to whom the Software is 14 | # furnished to do so, subject to the following conditions: 15 | # 16 | # The above copyright notice and this permission notice shall be included in all 17 | # copies or substantial portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | ###################################################################### 28 | # device definitions 29 | ####################################################################### 30 | 31 | [inputs] 32 | 33 | [inputs.digital] 34 | name = "Ultimarc I-PAC Ultimarc I-PAC" 35 | exclusive = true 36 | relpos = 1.0 37 | 38 | [inputs.analog_left] 39 | name_re = "^Ultimarc.*Ultrastik\\sPlayer\\ 1$" 40 | exclusive = true 41 | relpos = 1.0 42 | 43 | [inputs.analog_right] 44 | name_re = "^Ultimarc.*Ultrastik\\sPlayer\\ 2$" 45 | exclusive = true 46 | relpos = 1.0 47 | 48 | [outputs] 49 | 50 | [outputs.xbox1] 51 | name = "Microsoft X-Box 360 pad" 52 | type = "xbx360" 53 | 54 | [outputs.xbox2] 55 | name = "Microsoft X-Box 360 pad" 56 | type = "xbx360" 57 | 58 | [outputs.mouse1] 59 | name = "mouse" 60 | type = "mouse" 61 | 62 | [outputs.keybd1] 63 | name = "key1" 64 | type = "keybd" 65 | 66 | [outputs.exec1] 67 | name = "exec1" 68 | type = "exec" 69 | 70 | [[rules]] 71 | from = "digital" 72 | 73 | [[rules.target_rules]] 74 | from_ev = "code 1 (EV_KEY), code 103 (KEY_UP)" 75 | 76 | [[rules.target_rules.targets]] 77 | to = "xbox1" 78 | to_ev = "(EV_KEY), code 103 (KEY_UP), value -1" 79 | 80 | ########################################################## 81 | # rules section, maps events from one device into another 82 | ########################################################## 83 | [[rules]] 84 | from = "analog_left" 85 | 86 | [[rules.target_rules]] 87 | from_ev = "(EV_KEY), code 103 (KEY_UP)" 88 | 89 | [[rules.target_rules.targets]] 90 | to = "xbox1" 91 | to_ev = "(EV_KEY), code 103 (KEY_UP)" 92 | 93 | [[rules.target_rules.targets]] 94 | to = "xbox2" 95 | to_ev = "(EV_KEY), code 103 (KEY_UP)" 96 | 97 | [[rules]] 98 | from = "analog_left" 99 | 100 | [[rules.target_rules]] 101 | from_ev = "(EV_KEY), code 105 (KEY_UP)" 102 | 103 | [[rules.target_rules.targets]] 104 | to = "exec1" 105 | to_ev = "(META), /usr/local/bin/4way" 106 | 107 | [[rules.target_rules]] 108 | from_ev = "(EV_KEY), code 108 (KEY_UP)" 109 | 110 | [[rules.target_rules.targets]] 111 | to = "exec1" 112 | to_ev = "(META), /usr/local/bin/4way" -------------------------------------------------------------------------------- /src/test/resources/devices.yaml: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2019 Werner Punz 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | ###################################################################### 24 | # device definitions 25 | ####################################################################### 26 | 27 | inputs: 28 | 29 | digital: 30 | name: Ultimarc I-PAC Ultimarc I-PAC 31 | exclusive: true 32 | relpos: 1 33 | 34 | analog_left: 35 | name_re: ^Ultimarc.*Ultrastik\sPlayer\ 1$ 36 | exclusive: true 37 | relpos: 1 38 | 39 | analog_right: 40 | name_re: ^Ultimarc.*Ultrastik\sPlayer\ 2$ 41 | exclusive: true 42 | relpos: 1 43 | 44 | 45 | 46 | ######################################################################## 47 | # output devices 48 | ######################################################################## 49 | outputs: 50 | 51 | xbox1: 52 | name: Microsoft X-Box 360 pad 53 | type: xbx360 54 | 55 | xbox2: 56 | name: Microsoft X-Box 360 pad 57 | type: xbx360 58 | 59 | mouse1: 60 | name: mouse 61 | type: mouse 62 | 63 | keybd1: 64 | name: key1 65 | type: keybd 66 | 67 | exec1: 68 | name: exec1 69 | type: exec 70 | 71 | 72 | ########################################################## 73 | # rules section, maps events from one device into another 74 | ########################################################## 75 | rules: 76 | - from: digital # analog 1 77 | target_rules: 78 | - from_ev: code 1 (EV_KEY), code 103 (KEY_UP) # keyup event as coming in from evtest 79 | targets: 80 | - to: xbox1 # artificial xbox controiler 81 | to_ev: (EV_KEY), code 103 (KEY_UP), value -1 # pad up event 82 | 83 | - from: analog_left 84 | target_rules: 85 | - from_ev: (EV_KEY), code 103 (KEY_UP) 86 | targets: 87 | - to: xbox1 88 | to_ev: (EV_KEY), code 103 (KEY_UP) 89 | - to: xbox2 90 | to_ev: (EV_KEY), code 103 (KEY_UP) 91 | 92 | - from: analog_left 93 | target_rules: 94 | - from_ev: (EV_KEY), code 105 (KEY_UP) 95 | targets: 96 | - to: exec1 97 | to_ev: (META), /usr/local/bin/4way 98 | - from_ev: (EV_KEY), code 108 (KEY_UP) 99 | targets: 100 | - to: exec1 101 | to_ev: (META), /usr/local/bin/4way 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /src/test/resources/empty_input_devices.json5: -------------------------------------------------------------------------------- 1 | /** 2 | # MIT License 3 | # 4 | # Copyright (c) 2019 Werner Punz 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | */ 24 | { 25 | inputs: { 26 | /*no inputs as special case, we can use such a combination for 27 | command server only without mapping*/ 28 | }, 29 | outputs: { 30 | xbox1: { 31 | name: "Microsoft X-Box 360 pad", 32 | type: "xbx360" 33 | }, 34 | xbox2: { 35 | name: "Microsoft X-Box 360 pad", 36 | type: "xbx360" 37 | }, 38 | mouse1: { 39 | name: "mouse", 40 | type: "mouse" 41 | }, 42 | keybd1: { 43 | name: "key1", 44 | type: "keybd" 45 | }, 46 | exec1: { 47 | name: "exec1", 48 | type: "exec" 49 | } 50 | }, 51 | rules: [ 52 | { 53 | from: "digital", 54 | target_rules: [ 55 | { 56 | from_ev: "code 1 (EV_KEY), code 103 (KEY_UP)", 57 | targets: [ 58 | { 59 | to: "xbox1", 60 | to_ev: "(EV_KEY), code 103 (KEY_UP), value -1", 61 | //recurring aka auto fire 62 | periodical: 1, 63 | frequency: 10 64 | } 65 | ] 66 | } 67 | ] 68 | }, 69 | { 70 | from: "analog_left", 71 | target_rules: [ 72 | { 73 | from_ev: "(EV_KEY), code 103 (KEY_UP)", 74 | targets: [ 75 | { 76 | to: "xbox1", 77 | to_ev: "(EV_KEY), code 103 (KEY_UP)" 78 | }, 79 | { 80 | to: "xbox2", 81 | to_ev: "(EV_KEY), code 103 (KEY_UP)" 82 | } 83 | ] 84 | } 85 | ] 86 | }, 87 | { 88 | from: "analog_left", 89 | target_rules: [ 90 | { 91 | from_ev: "(EV_KEY), code 105 (KEY_UP)", 92 | targets: [ 93 | { 94 | to: "exec1", 95 | to_ev: "(META), /usr/local/bin/4way" 96 | } 97 | ] 98 | }, 99 | { 100 | from_ev: "(EV_KEY), code 108 (KEY_UP)", 101 | targets: [ 102 | { 103 | to: "exec1", 104 | to_ev: "(META), /usr/local/bin/4way" 105 | } 106 | ] 107 | } 108 | ] 109 | } 110 | ] 111 | } -------------------------------------------------------------------------------- /src/test/resources/licenses.txt: -------------------------------------------------------------------------------- 1 | burping file from: 2 | 3 | https://commons.wikimedia.org/wiki/File:Burping_2.ogg 4 | 5 | licensed under: Creative Commons Attribution-Share Alike 3.0 Unported license. 6 | 7 | shortened to accommodate a small burp key 8 | -------------------------------------------------------------------------------- /src/test/resources/macros.vm: -------------------------------------------------------------------------------- 1 | #** 2 | # MIT License 3 | # 4 | # Copyright (c) 2019 Werner Punz 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy 7 | # of this software and associated documentation files (the "Software"), to deal 8 | # in the Software without restriction, including without limitation the rights 9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | # copies of the Software, and to permit persons to whom the Software is 11 | # furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice shall be included in all 14 | # copies or substantial portions of the Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | # SOFTWARE. 23 | *# 24 | 25 | #* 26 | * Some Helper macros to reduce the total loc 27 | *# 28 | 29 | #macro( output $to $to_ev ) 30 | { 31 | to: "$to", 32 | to_ev: "$to_ev" 33 | } 34 | #end 35 | 36 | #* 37 | * A simple mapping macro with from event, to and to event definitions 38 | * which extracts into the proper json 5 definition 39 | *# 40 | #macro(mapping $from_ev $to $to_ev) 41 | { 42 | from_ev: "$from_ev", 43 | targets: [ 44 | #output( $to $to_ev ) 45 | ] 46 | } 47 | #end 48 | 49 | #macro(input_def $internal_name $name $exclusive $relpos) 50 | $internal_name: { 51 | name: "$name", 52 | exclusive: $exclusive, 53 | relpos: $relpos 54 | } 55 | #end 56 | 57 | #macro(output_def $internal_name $name $type) 58 | $internal_name: { 59 | name: "$name", 60 | type: "$type" 61 | } 62 | #end -------------------------------------------------------------------------------- /src/test/resources/overlay.yaml: -------------------------------------------------------------------------------- 1 | rules: 2 | - from: analog_left 3 | target_rules: 4 | - from_ev: (EV_KEY), code 105 (KEY_UP) 5 | targets: 6 | - to: booga1 7 | to_ev: (META), overlayed 8 | - from_ev: agaga 9 | targets: 10 | - to: bongobongo 11 | to_ev: (META), overlayed2 12 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #cd src/test/python 3 | #current_dir="./src/test/python/" 4 | #pipenv run python ./src/test/python/TestSuite.py 5 | 6 | #pushd ./src/test/python 7 | #pipenv run python ./TestSuite.py 8 | #popd 9 | #"$PYTHON" "run python ./src/test/python/TestSuite.py" -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/__pycache__/six.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/__pycache__/six.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/device.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/device.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/ecodes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/ecodes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/eventio.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/eventio.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/eventio_async.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/eventio_async.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/events.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/events.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/evtest.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/evtest.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/ff.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/ff.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/genecodes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/genecodes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/uinput.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/uinput.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/evdev/__pycache__/util.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/evdev/__pycache__/util.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/build_env.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/build_env.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/cache.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/cache.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/configuration.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/configuration.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/download.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/download.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/exceptions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/exceptions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/index.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/index.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/locations.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/locations.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pep425tags.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pep425tags.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pyproject.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/pyproject.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/resolve.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/resolve.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/wheel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__pycache__/wheel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/autocompletion.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/autocompletion.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/base_command.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/base_command.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/cmdoptions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/cmdoptions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/main_parser.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/main_parser.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/parser.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/parser.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/status_codes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__pycache__/status_codes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/check.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/check.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/completion.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/completion.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/configuration.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/configuration.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/download.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/download.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/freeze.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/freeze.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/hash.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/hash.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/help.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/help.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/install.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/install.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/list.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/list.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/search.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/search.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/show.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/show.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/uninstall.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/uninstall.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/wheel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__pycache__/wheel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/candidate.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/candidate.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/format_control.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/format_control.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/index.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/index.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/link.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__pycache__/link.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/check.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/check.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/freeze.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/freeze.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/prepare.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__pycache__/prepare.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/constructors.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/constructors.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_file.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_file.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_install.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_install.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_set.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_set.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_tracker.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_tracker.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_uninstall.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__pycache__/req_uninstall.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/appdirs.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/appdirs.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/deprecation.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/deprecation.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/encoding.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/encoding.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/filesystem.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/filesystem.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/glibc.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/glibc.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/hashes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/hashes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/logging.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/logging.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/misc.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/misc.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/models.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/models.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/outdated.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/outdated.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/packaging.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/packaging.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/setuptools_build.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/setuptools_build.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/temp_dir.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/temp_dir.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/typing.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/typing.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/ui.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__pycache__/ui.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/bazaar.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/bazaar.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/git.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/git.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/mercurial.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/mercurial.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/subversion.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__pycache__/subversion.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/appdirs.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/appdirs.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/distro.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/distro.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/pyparsing.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/pyparsing.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/retrying.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/retrying.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/six.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__pycache__/six.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/cache.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/cache.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/controller.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/controller.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/core.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__pycache__/core.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5freq.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5freq.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5prober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/big5prober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/chardistribution.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/chardistribution.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/charsetprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/cp949prober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/cp949prober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/enums.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/enums.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escsm.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/escsm.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euckrprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/euctwprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jisfreq.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jisfreq.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jpcntx.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/jpcntx.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/latin1prober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/latin1prober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcssm.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/mbcssm.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sjisprober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/sjisprober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/universaldetector.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/universaldetector.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/utf8prober.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/utf8prober.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/version.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__pycache__/version.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansi.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansi.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/initialise.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/initialise.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/win32.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/win32.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/winterm.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__pycache__/winterm.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/resources.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/resources.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/scripts.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/scripts.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/_utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/constants.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/constants.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/html5parser.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/html5parser.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/serializer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__pycache__/serializer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/datrie.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/datrie.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/core.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/core.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/idnadata.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/idnadata.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/intranges.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/intranges.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/package_data.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__pycache__/package_data.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/linklockfile.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/linklockfile.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/mkdirlockfile.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__pycache__/mkdirlockfile.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/_version.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/_version.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/exceptions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/exceptions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/fallback.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__pycache__/fallback.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__about__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__about__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_structures.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/_structures.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/markers.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/markers.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/requirements.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/requirements.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/specifiers.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/specifiers.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/version.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__pycache__/version.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/wrappers.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__pycache__/wrappers.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/bar.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/bar.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/helpers.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/helpers.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/spinner.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__pycache__/spinner.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/core.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/core.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/parser.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/parser.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/test.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/test.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/writer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__pycache__/writer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__version__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/__version__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/_internal_utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/_internal_utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/adapters.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/adapters.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/api.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/api.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/auth.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/auth.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/certs.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/certs.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/cookies.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/cookies.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/exceptions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/exceptions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/hooks.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/hooks.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/models.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/models.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/packages.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/packages.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/sessions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/sessions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/status_codes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/status_codes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/structures.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/structures.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__pycache__/utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/_collections.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/_collections.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connection.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connection.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/exceptions.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/exceptions.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/fields.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/fields.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/filepost.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/filepost.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/request.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/request.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/response.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__pycache__/response.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/six.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__pycache__/six.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/connection.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/connection.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/queue.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/queue.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/request.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/request.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/response.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/response.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/retry.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/retry.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/url.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/url.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/wait.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__pycache__/wait.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/labels.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__pycache__/labels.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/_compat.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/_compat.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/_qt_base.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/_qt_base.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/_util.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/_util.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/core.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/core.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/discover.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/discover.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/glib.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/glib.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/monitor.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/monitor.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/pyqt4.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/pyqt4.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/pyqt5.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/pyqt5.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/pyside.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/pyside.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/version.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/version.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/__pycache__/wx.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/__pycache__/wx.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/_errorcheckers.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/_errorcheckers.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/libc.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/libc.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/libudev.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/libudev.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_ctypeslib/__pycache__/utils.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/pipe.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/pipe.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/poll.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/_os/__pycache__/poll.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/device/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/device/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/device/__pycache__/_device.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/device/__pycache__/_device.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/pyudev/device/__pycache__/_errors.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/pyudev/device/__pycache__/_errors.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/regexp/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/regexp/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/uinput/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/uinput/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/uinput/__pycache__/ev.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/uinput/__pycache__/ev.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/composer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/composer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/constructor.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/constructor.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/cyaml.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/cyaml.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/dumper.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/dumper.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/emitter.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/emitter.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/error.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/error.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/events.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/events.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/loader.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/loader.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/nodes.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/nodes.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/parser.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/parser.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/reader.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/reader.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/representer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/representer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/resolver.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/resolver.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/scanner.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/scanner.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/serializer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/serializer.cpython-37.pyc -------------------------------------------------------------------------------- /venv/lib/python3.7/site-packages/yaml/__pycache__/tokens.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werpu/input_pipe/aba735e1f2a9731d84d50545e8009c9bb1d30b9a/venv/lib/python3.7/site-packages/yaml/__pycache__/tokens.cpython-37.pyc -------------------------------------------------------------------------------- /venv/readme.txt: -------------------------------------------------------------------------------- 1 | use pipenv --------------------------------------------------------------------------------