René's URL Explorer Experiment


Title: Introduction — Python-evdev

direct link

Domain: python-evdev.rtfd.org

readthedocs-addons-api-version1
readthedocs-project-slugpython-evdev
readthedocs-version-sluglatest
readthedocs-resolver-filename/
readthedocs-http-status200

Links:

python-evdev https://python-evdev.rtfd.org/
From an OS packagehttps://python-evdev.rtfd.org/install.html
From sourcehttps://python-evdev.rtfd.org/install.html#from-source
From a binary packagehttps://python-evdev.rtfd.org/install.html#from-a-binary-package
Quick Starthttps://python-evdev.rtfd.org/usage.html
Tutorialhttps://python-evdev.rtfd.org/tutorial.html
API Referencehttps://python-evdev.rtfd.org/apidoc.html
Scope and statushttps://python-evdev.rtfd.org/scope.html
Changeloghttps://python-evdev.rtfd.org/changelog.html
python-evdevhttps://python-evdev.rtfd.org/
https://python-evdev.rtfd.org/
View page sourcehttps://python-evdev.rtfd.org/_sources/index.rst.txt
https://python-evdev.rtfd.org/#introduction
From an OS packagehttps://python-evdev.rtfd.org/install.html
From sourcehttps://python-evdev.rtfd.org/install.html#from-source
Specifying header locationshttps://python-evdev.rtfd.org/install.html#specifying-header-locations
From a binary packagehttps://python-evdev.rtfd.org/install.html#from-a-binary-package
Quick Starthttps://python-evdev.rtfd.org/usage.html
Listing accessible event deviceshttps://python-evdev.rtfd.org/usage.html#listing-accessible-event-devices
Reading events from a devicehttps://python-evdev.rtfd.org/usage.html#reading-events-from-a-device
Accessing event codeshttps://python-evdev.rtfd.org/usage.html#accessing-event-codes
Listing and monitoring input deviceshttps://python-evdev.rtfd.org/usage.html#listing-and-monitoring-input-devices
Tutorialhttps://python-evdev.rtfd.org/tutorial.html
Listing accessible event deviceshttps://python-evdev.rtfd.org/tutorial.html#listing-accessible-event-devices
Listing device capabilitieshttps://python-evdev.rtfd.org/tutorial.html#listing-device-capabilities
Listing device capabilities (devices with absolute axes)https://python-evdev.rtfd.org/tutorial.html#listing-device-capabilities-devices-with-absolute-axes
Getting and setting LED stateshttps://python-evdev.rtfd.org/tutorial.html#getting-and-setting-led-states
Getting currently active keyshttps://python-evdev.rtfd.org/tutorial.html#getting-currently-active-keys
Reading eventshttps://python-evdev.rtfd.org/tutorial.html#reading-events
Reading events (using asyncio)https://python-evdev.rtfd.org/tutorial.html#reading-events-using-asyncio
Reading events from multiple devices (using select)https://python-evdev.rtfd.org/tutorial.html#reading-events-from-multiple-devices-using-select
Reading events from multiple devices (using selectors)https://python-evdev.rtfd.org/tutorial.html#reading-events-from-multiple-devices-using-selectors
Reading events from multiple devices (using asyncio)https://python-evdev.rtfd.org/tutorial.html#reading-events-from-multiple-devices-using-asyncio
Accessing evdev constantshttps://python-evdev.rtfd.org/tutorial.html#accessing-evdev-constants
Searching event codes by regexhttps://python-evdev.rtfd.org/tutorial.html#searching-event-codes-by-regex
Getting exclusive access to a devicehttps://python-evdev.rtfd.org/tutorial.html#getting-exclusive-access-to-a-device
Associating classes with event typeshttps://python-evdev.rtfd.org/tutorial.html#associating-classes-with-event-types
Injecting inputhttps://python-evdev.rtfd.org/tutorial.html#injecting-input
Injecting events (using a context manager)https://python-evdev.rtfd.org/tutorial.html#injecting-events-using-a-context-manager
Specifying uinput device optionshttps://python-evdev.rtfd.org/tutorial.html#specifying-uinput-device-options
Create uinput device with capabilities of another devicehttps://python-evdev.rtfd.org/tutorial.html#create-uinput-device-with-capabilities-of-another-device
Create uinput device capable of receiving FF-effectshttps://python-evdev.rtfd.org/tutorial.html#create-uinput-device-capable-of-receiving-ff-effects
Injecting an FF-event into first FF-capable device foundhttps://python-evdev.rtfd.org/tutorial.html#injecting-an-ff-event-into-first-ff-capable-device-found
Forwarding force-feedback from uinput to a real devicehttps://python-evdev.rtfd.org/tutorial.html#forwarding-force-feedback-from-uinput-to-a-real-device
API Referencehttps://python-evdev.rtfd.org/apidoc.html
eventshttps://python-evdev.rtfd.org/apidoc.html#module-evdev.events
InputEventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent
InputEvent.sechttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.sec
InputEvent.usechttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.usec
InputEvent.typehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.type
InputEvent.codehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.code
InputEvent.valuehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.value
InputEvent.timestamp()https://python-evdev.rtfd.org/apidoc.html#evdev.events.InputEvent.timestamp
KeyEventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent
KeyEvent.key_uphttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.key_up
KeyEvent.key_downhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.key_down
KeyEvent.key_holdhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.key_hold
KeyEvent.scancodehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.scancode
KeyEvent.keystatehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.keystate
KeyEvent.keycodehttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.keycode
KeyEvent.eventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.KeyEvent.event
RelEventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.RelEvent
RelEvent.eventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.RelEvent.event
SynEventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.SynEvent
SynEvent.eventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.SynEvent.event
AbsEventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.AbsEvent
AbsEvent.eventhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.AbsEvent.event
event_factoryhttps://python-evdev.rtfd.org/apidoc.html#evdev.events.event_factory
eventiohttps://python-evdev.rtfd.org/apidoc.html#module-evdev.eventio
EventIOhttps://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO
EventIO.fileno()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.fileno
EventIO.read_loop()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.read_loop
EventIO.read_one()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.read_one
EventIO.read()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.read
EventIO.need_write()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.need_write
EventIO.write_event()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.write_event
EventIO.write()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.write
EventIO.syn()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.syn
EventIO.close()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.close
EventIO.__weakref__https://python-evdev.rtfd.org/apidoc.html#evdev.eventio.EventIO.__weakref__
eventio_asynchttps://python-evdev.rtfd.org/apidoc.html#module-evdev.eventio_async
EventIOhttps://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO
EventIO.async_read_one()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO.async_read_one
EventIO.async_read()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO.async_read
EventIO.async_read_loop()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO.async_read_loop
EventIO.__annotations__https://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO.__annotations__
EventIO.close()https://python-evdev.rtfd.org/apidoc.html#evdev.eventio_async.EventIO.close
devicehttps://python-evdev.rtfd.org/apidoc.html#module-evdev.device
AbsInfohttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo
AbsInfo.valuehttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.value
AbsInfo.minhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.min
AbsInfo.maxhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.max
AbsInfo.fuzzhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.fuzz
AbsInfo.flathttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.flat
AbsInfo.resolutionhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.resolution
AbsInfo.valuehttps://python-evdev.rtfd.org/apidoc.html#id0
AbsInfo.minhttps://python-evdev.rtfd.org/apidoc.html#id1
AbsInfo.maxhttps://python-evdev.rtfd.org/apidoc.html#id2
AbsInfo.fuzzhttps://python-evdev.rtfd.org/apidoc.html#id3
AbsInfo.flathttps://python-evdev.rtfd.org/apidoc.html#id4
AbsInfo.resolutionhttps://python-evdev.rtfd.org/apidoc.html#id5
AbsInfo.__annotations__https://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.__annotations__
AbsInfo.__getnewargs__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.__getnewargs__
AbsInfo.__match_args__https://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.__match_args__
AbsInfo.__new__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.__new__
AbsInfo.__orig_bases__https://python-evdev.rtfd.org/apidoc.html#evdev.device.AbsInfo.__orig_bases__
KbdInfohttps://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo
KbdInfo.delayhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.delay
KbdInfo.repeathttps://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.repeat
KbdInfo.delayhttps://python-evdev.rtfd.org/apidoc.html#id6
KbdInfo.repeathttps://python-evdev.rtfd.org/apidoc.html#id7
KbdInfo.__annotations__https://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.__annotations__
KbdInfo.__getnewargs__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.__getnewargs__
KbdInfo.__match_args__https://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.__match_args__
KbdInfo.__new__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.__new__
KbdInfo.__orig_bases__https://python-evdev.rtfd.org/apidoc.html#evdev.device.KbdInfo.__orig_bases__
DeviceInfohttps://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo
DeviceInfo.bustypehttps://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.bustype
DeviceInfo.vendorhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.vendor
DeviceInfo.producthttps://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.product
DeviceInfo.versionhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.version
DeviceInfo.bustypehttps://python-evdev.rtfd.org/apidoc.html#id8
DeviceInfo.vendorhttps://python-evdev.rtfd.org/apidoc.html#id9
DeviceInfo.producthttps://python-evdev.rtfd.org/apidoc.html#id10
DeviceInfo.versionhttps://python-evdev.rtfd.org/apidoc.html#id11
DeviceInfo.__annotations__https://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.__annotations__
DeviceInfo.__getnewargs__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.__getnewargs__
DeviceInfo.__match_args__https://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.__match_args__
DeviceInfo.__new__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.__new__
DeviceInfo.__orig_bases__https://python-evdev.rtfd.org/apidoc.html#evdev.device.DeviceInfo.__orig_bases__
InputDevicehttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice
InputDevice.__init__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__init__
InputDevice.pathhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.path
InputDevice.fdhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.fd
InputDevice.infohttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.info
InputDevice.namehttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.name
InputDevice.physhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.phys
InputDevice.uniqhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.uniq
InputDevice.versionhttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.version
InputDevice.ff_effects_counthttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.ff_effects_count
InputDevice.capabilities()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.capabilities
InputDevice.input_props()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.input_props
InputDevice.leds()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.leds
InputDevice.set_led()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.set_led
InputDevice.__eq__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__eq__
InputDevice.__fspath__()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__fspath__
InputDevice.close()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.close
InputDevice.grab()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.grab
InputDevice.ungrab()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.ungrab
InputDevice.grab_context()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.grab_context
InputDevice.upload_effect()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.upload_effect
InputDevice.erase_effect()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.erase_effect
InputDevice.repeathttps://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.repeat
InputDevice.__annotations__https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__annotations__
InputDevice.__hash__https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__hash__
InputDevice.__orig_bases__https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__orig_bases__
InputDevice.__parameters__https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.__parameters__
InputDevice.active_keys()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.active_keys
InputDevice.absinfo()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.absinfo
InputDevice.set_absinfo()https://python-evdev.rtfd.org/apidoc.html#evdev.device.InputDevice.set_absinfo
uinputhttps://python-evdev.rtfd.org/apidoc.html#module-evdev.uinput
UInputhttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput
UInput.from_device()https://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.from_device
UInput.__init__()https://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.__init__
UInput.namehttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.name
UInput.vendorhttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.vendor
UInput.producthttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.product
UInput.versionhttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.version
UInput.bustypehttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.bustype
UInput.physhttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.phys
UInput.devnodehttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.devnode
UInput.fdhttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.fd
UInput.devicehttps://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.device
UInput.capabilities()https://python-evdev.rtfd.org/apidoc.html#evdev.uinput.UInput.capabilities
utilhttps://python-evdev.rtfd.org/apidoc.html#module-evdev.util
list_devices()https://python-evdev.rtfd.org/apidoc.html#evdev.util.list_devices
is_device()https://python-evdev.rtfd.org/apidoc.html#evdev.util.is_device
categorize()https://python-evdev.rtfd.org/apidoc.html#evdev.util.categorize
resolve_ecodes()https://python-evdev.rtfd.org/apidoc.html#evdev.util.resolve_ecodes
resolve_ecodes_dict()https://python-evdev.rtfd.org/apidoc.html#evdev.util.resolve_ecodes_dict
ecodeshttps://python-evdev.rtfd.org/apidoc.html#module-evdev.ecodes
keyshttps://python-evdev.rtfd.org/apidoc.html#evdev.ecodes.keys
ecodeshttps://python-evdev.rtfd.org/apidoc.html#evdev.ecodes.ecodes
bytypehttps://python-evdev.rtfd.org/apidoc.html#evdev.ecodes.bytype
Scope and statushttps://python-evdev.rtfd.org/scope.html
Changeloghttps://python-evdev.rtfd.org/changelog.html
1.9.2 (May 01, 2025)https://python-evdev.rtfd.org/changelog.html#may-01-2025
1.9.1 (Feb 22, 2025)https://python-evdev.rtfd.org/changelog.html#feb-22-2025
1.9.0 (Feb 08, 2025)https://python-evdev.rtfd.org/changelog.html#feb-08-2025
1.8.0 (Jan 25, 2025)https://python-evdev.rtfd.org/changelog.html#jan-25-2025
1.7.1 (May 8, 2024)https://python-evdev.rtfd.org/changelog.html#may-8-2024
1.7.0 (Feb 18, 2024)https://python-evdev.rtfd.org/changelog.html#feb-18-2024
1.6.1 (Jan 20, 2023)https://python-evdev.rtfd.org/changelog.html#jan-20-2023
1.6.0 (Jul 17, 2022)https://python-evdev.rtfd.org/changelog.html#jul-17-2022
1.5.0 (Mar 24, 2022)https://python-evdev.rtfd.org/changelog.html#mar-24-2022
1.4.0 (Jan 16, 2021)https://python-evdev.rtfd.org/changelog.html#jan-16-2021
1.3.0 (Jan 12, 2020)https://python-evdev.rtfd.org/changelog.html#jan-12-2020
1.2.0 (Apr 7, 2019)https://python-evdev.rtfd.org/changelog.html#apr-7-2019
1.1.2 (Sep 1, 2018)https://python-evdev.rtfd.org/changelog.html#sep-1-2018
1.1.0 (Aug 27, 2018)https://python-evdev.rtfd.org/changelog.html#aug-27-2018
1.0.0 (Jun 02, 2018)https://python-evdev.rtfd.org/changelog.html#jun-02-2018
0.8.1 (Mar 24, 2018)https://python-evdev.rtfd.org/changelog.html#mar-24-2018
0.8.0 (Mar 22, 2018)https://python-evdev.rtfd.org/changelog.html#mar-22-2018
0.7.0 (Jun 16, 2017)https://python-evdev.rtfd.org/changelog.html#jun-16-2017
0.6.4 (Oct 07, 2016)https://python-evdev.rtfd.org/changelog.html#oct-07-2016
0.6.3 (Oct 06, 2016)https://python-evdev.rtfd.org/changelog.html#oct-06-2016
0.6.1 (Jun 04, 2016)https://python-evdev.rtfd.org/changelog.html#jun-04-2016
0.6.0 (Feb 14, 2016)https://python-evdev.rtfd.org/changelog.html#feb-14-2016
0.5.0 (Jun 16, 2015)https://python-evdev.rtfd.org/changelog.html#jun-16-2015
0.4.7 (Oct 07, 2014)https://python-evdev.rtfd.org/changelog.html#oct-07-2014
0.4.6 (Oct 07, 2014)https://python-evdev.rtfd.org/changelog.html#id15
0.4.5 (Jul 06, 2014)https://python-evdev.rtfd.org/changelog.html#jul-06-2014
0.4.4 (Jun 04, 2014)https://python-evdev.rtfd.org/changelog.html#jun-04-2014
0.4.3 (Dec 19, 2013)https://python-evdev.rtfd.org/changelog.html#dec-19-2013
0.4.2 (Dec 13, 2013)https://python-evdev.rtfd.org/changelog.html#dec-13-2013
0.4.1 (Jul 24, 2013)https://python-evdev.rtfd.org/changelog.html#jul-24-2013
0.4.0 (Jul 01, 2013)https://python-evdev.rtfd.org/changelog.html#jul-01-2013
0.3.3 (May 29, 2013)https://python-evdev.rtfd.org/changelog.html#may-29-2013
0.3.2 (Apr 05, 2013)https://python-evdev.rtfd.org/changelog.html#apr-05-2013
0.3.1 (Nov 23, 2012)https://python-evdev.rtfd.org/changelog.html#nov-23-2012
0.3.0 (Nov 06, 2012)https://python-evdev.rtfd.org/changelog.html#nov-06-2012
0.2.0 (Aug 22, 2012)https://python-evdev.rtfd.org/changelog.html#aug-22-2012
0.1.1 (May 18, 2012)https://python-evdev.rtfd.org/changelog.html#may-18-2012
0.1.0 (May 17, 2012)https://python-evdev.rtfd.org/changelog.html#may-17-2012
https://python-evdev.rtfd.org/#license
Revised BSD Licensehttps://raw.github.com/gvalkov/python-evdev/master/LICENSE
Next https://python-evdev.rtfd.org/install.html
Sphinxhttps://www.sphinx-doc.org/
themehttps://github.com/readthedocs/sphinx_rtd_theme
Read the Docshttps://readthedocs.org

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.