├── .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 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
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
--------------------------------------------------------------------------------