|
|
<!DOCTYPE html>
|
|
|
<!-- saved from url=(0046)https://pypi.org/project/keyboard/#description -->
|
|
|
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
|
<meta name="defaultLanguage" content="en">
|
|
|
<meta name="availableLanguages" content="en">
|
|
|
|
|
|
|
|
|
|
|
|
<title>keyboard · PyPI</title>
|
|
|
<meta name="description" content="Hook and simulate keyboard events on Windows and Linux">
|
|
|
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/warehouse.6b3cae16.css">
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/fontawesome.91df071f.css">
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/regular.8819f1a9.css">
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/solid.002489ee.css">
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/brands.0c9eb08b.css">
|
|
|
<link rel="stylesheet" href="./keyboard · PyPI_files/css">
|
|
|
<noscript>
|
|
|
<link rel="stylesheet" href="/static/css/noscript.69d08c82.css">
|
|
|
</noscript>
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="https://pypi.org/static/images/favicon.6a76275d.ico" type="image/x-icon">
|
|
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="RSS: 40 latest updates" href="https://pypi.org/rss/updates.xml">
|
|
|
<link rel="alternate" type="application/rss+xml" title="RSS: 40 newest packages" href="https://pypi.org/rss/packages.xml">
|
|
|
|
|
|
<link rel="canonical" href="https://pypi.org/project/keyboard/">
|
|
|
|
|
|
|
|
|
<meta property="og:url" content="https://pypi.org/project/keyboard/">
|
|
|
<meta property="og:site_name" content="PyPI">
|
|
|
<meta property="og:type" content="website">
|
|
|
<meta property="og:image" content="https://pypi.org/static/images/twitter.c0030826.jpg">
|
|
|
<meta property="og:title" content="keyboard">
|
|
|
<meta property="og:description" content="Hook and simulate keyboard events on Windows and Linux">
|
|
|
|
|
|
<link rel="search" type="application/opensearchdescription+xml" title="PyPI" href="https://pypi.org/opensearch.xml">
|
|
|
|
|
|
|
|
|
<script src="./keyboard · PyPI_files/lib.23f53f0dd5fed5e0b8788024646a4167734db1c0.js.Без названия"></script><script type="text/javascript" async="" src="./keyboard · PyPI_files/analytics.js.Без названия"></script><script src="./keyboard · PyPI_files/raven.min.js.Без названия" integrity="sha384-D6LXy67EIC102DTuqypxwQsTHgiatlbvg7q/1YAWFb6lRyZ1lIZ6bGDsX7jxHNKA" crossorigin="anonymous">
|
|
|
</script>
|
|
|
|
|
|
<script async="" data-ga-id="UA-55961911-1" data-sentry-frontend-dsn="https://3a67b35c9dc248a191d761410b095861@sentry.io/1231155" src="./keyboard · PyPI_files/warehouse.ea40d9aa.js.Без названия">
|
|
|
</script>
|
|
|
|
|
|
|
|
|
<script async="" src="./keyboard · PyPI_files/js"></script>
|
|
|
<script defer="" src="./keyboard · PyPI_files/insights.js.Без названия"></script>
|
|
|
</head>
|
|
|
|
|
|
<body data-controller="viewport-toggle" style="padding-top: 0px;">
|
|
|
|
|
|
|
|
|
<!-- Accessibility: this link should always be the first piece of content inside the body-->
|
|
|
<a href="https://pypi.org/project/keyboard/#content" class="skip-to-content">Skip to main content</a>
|
|
|
|
|
|
<button class="button button--primary button--switch-to-mobile hidden" data-target="viewport-toggle.switchToMobile" data-action="viewport-toggle#switchToMobile">
|
|
|
Switch to mobile version
|
|
|
</button>
|
|
|
|
|
|
<section id="sticky-notifications" class="stick-to-top js-stick-to-top">
|
|
|
<!-- Add browser warning. Will show for ie9 and below -->
|
|
|
<!--[if IE]>
|
|
|
<div class="notification-bar notification-bar--danger">
|
|
|
<span class="notification-bar__icon">
|
|
|
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Warning:</span>
|
|
|
</span>
|
|
|
<span class="notification-bar__message">You are using an unsupported browser, upgrade to a newer version.</span>
|
|
|
</div>
|
|
|
<![endif]-->
|
|
|
|
|
|
<noscript>
|
|
|
<div class="notification-bar notification-bar--danger">
|
|
|
|
|
|
<span class="notification-bar__icon">
|
|
|
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Warning:</span>
|
|
|
</span>
|
|
|
<span class="notification-bar__message">Some features may not work without JavaScript. Please try enabling it if you encounter problems.</span>
|
|
|
</div>
|
|
|
</noscript>
|
|
|
</section>
|
|
|
|
|
|
<div class="notification-bar">
|
|
|
<span class="notification-bar__message">
|
|
|
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF!
|
|
|
<a href="https://www.python.org/psf/donations/2019-q2-drive/" target="_blank" title="Donate to the Python Software Foundation">Donate Now</a>
|
|
|
</span>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div data-html-include="/_includes/flash-messages/">
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div data-html-include="/_includes/session-notifications/">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<header class="site-header ">
|
|
|
<div class="site-container">
|
|
|
<div class="split-layout">
|
|
|
|
|
|
<div class="split-layout">
|
|
|
<div>
|
|
|
<a class="site-header__logo" href="https://pypi.org/">
|
|
|
<img alt="PyPI" src="./keyboard · PyPI_files/logo-small.6eef541e.svg">
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
<form class="search-form search-form--primary" action="https://pypi.org/search/">
|
|
|
<div role="search">
|
|
|
<label for="search" class="sr-only">Search PyPI</label>
|
|
|
<input id="search" class="search-form__search" type="text" name="q" placeholder="Search projects" value="">
|
|
|
|
|
|
<button type="submit" class="search-form__button">
|
|
|
<i class="fa fa-search" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Search</span>
|
|
|
</button>
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div data-html-include="/_includes/current-user-indicator/">
|
|
|
|
|
|
<nav id="user-indicator" class="horizontal-menu horizontal-menu--light horizontal-menu--tall" aria-label="Main navigation">
|
|
|
<a class="horizontal-menu__link horizontal-menu__link--remove-on-mobile" href="https://pypi.org/help/">Help</a>
|
|
|
<a class="horizontal-menu__link horizontal-menu__link--remove-on-mobile" href="https://donate.pypi.org/">Donate</a>
|
|
|
<a class="horizontal-menu__link" href="https://pypi.org/account/login/">Log in</a>
|
|
|
<a class="horizontal-menu__link" href="https://pypi.org/account/register/">Register</a>
|
|
|
</nav>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</header>
|
|
|
|
|
|
|
|
|
<section class="mobile-search">
|
|
|
<form class="search-form search-form--fullwidth" action="https://pypi.org/search/">
|
|
|
<div role="search">
|
|
|
<label for="mobile-search" class="sr-only">Search PyPI</label>
|
|
|
<input id="mobile-search" class="search-form__search" type="text" name="q" placeholder="Search projects" value="">
|
|
|
|
|
|
<button type="submit" class="search-form__button">
|
|
|
<i class="fa fa-search" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Search</span>
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
</form>
|
|
|
</section>
|
|
|
|
|
|
|
|
|
<main id="content">
|
|
|
|
|
|
<section class="banner">
|
|
|
<div class="package-header">
|
|
|
<div class="package-header__left">
|
|
|
<h1 class="package-header__name">
|
|
|
keyboard 0.13.3
|
|
|
</h1>
|
|
|
|
|
|
|
|
|
<p class="package-header__pip-instructions">
|
|
|
<span id="pip-command">pip install keyboard</span>
|
|
|
<button class="-js-copy-pip-command tooltipped tooltipped-s" data-clipboard-target="#pip-command" aria-label="Copy to clipboard" data-original-label="Copy to clipboard">
|
|
|
<i class="fa fa-copy" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Copy PIP instructions<span>
|
|
|
</span></span></button>
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="package-header__right">
|
|
|
|
|
|
<a class="status-badge status-badge--good" href="https://pypi.org/project/keyboard/">Latest version</a>
|
|
|
|
|
|
<p class="package-header__date">Last released: <time class="-js-relative-time" datetime="2019-03-18T08:52:09+0000" data-controller="localized-time" data-localized-time-relative="true">Mar 18, 2019</time></p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
|
|
|
<section class="horizontal-section horizontal-section--grey horizontal-section--thin">
|
|
|
<div class="site-container">
|
|
|
<div class="split-layout split-layout--middle package-description">
|
|
|
|
|
|
<p class="package-description__summary">Hook and simulate keyboard events on Windows and Linux</p>
|
|
|
|
|
|
<div data-html-include="/_includes/edit-project-button/keyboard"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
|
|
|
<section data-controller="project-tabs" data-project-tabs-content="description">
|
|
|
<div class="tabs-container">
|
|
|
<div class="vertical-tabs">
|
|
|
<div class="vertical-tabs__tabs">
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Navigation</h3>
|
|
|
<nav role="tablist">
|
|
|
<a id="description-tab" data-target="project-tabs.tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--is-active" href="https://pypi.org/project/keyboard/#description" role="tab">
|
|
|
<i class="fa fa-align-left" aria-hidden="true"></i>
|
|
|
Project description
|
|
|
</a>
|
|
|
<a id="history-tab" data-target="project-tabs.tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon" href="https://pypi.org/project/keyboard/#history" role="tab">
|
|
|
<i class="fa fa-history" aria-hidden="true"></i>
|
|
|
Release history
|
|
|
</a>
|
|
|
|
|
|
<a id="files-tab" data-target="project-tabs.tab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon" href="https://pypi.org/project/keyboard/#files" role="tab">
|
|
|
<i class="fa fa-download" aria-hidden="true"></i>
|
|
|
Download files
|
|
|
</a>
|
|
|
|
|
|
</nav>
|
|
|
</div>
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Project links</h3>
|
|
|
|
|
|
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed" href="https://github.com/boppreh/keyboard" rel="nofollow">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<i class="fas fa-home" aria-hidden="true"></i>Homepage
|
|
|
</a>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Statistics</h3>
|
|
|
|
|
|
<div class="github-repo-info" data-url="https://api.github.com/repos/boppreh/keyboard">
|
|
|
GitHub statistics:
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/stargazers" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/stargazers">
|
|
|
<i class="fa fa-star" aria-hidden="true"></i>
|
|
|
<strong>Stars: </strong>
|
|
|
<span class="github-repo-info__item" data-key="stargazers_count">1 448</span>
|
|
|
</a>
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/network" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/network">
|
|
|
<i class="fa fa-code-branch" aria-hidden="true"></i>
|
|
|
<strong>Forks: </strong>
|
|
|
<span class="github-repo-info__item" data-key="forks_count">160</span>
|
|
|
</a>
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/issues" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/issues">
|
|
|
<i class="fa fa-exclamation-circle" aria-hidden="true"></i>
|
|
|
<strong>Open issues/PRs: </strong>
|
|
|
<span class="github-repo-info__item" data-key="open_issues_count">126</span>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
<p>View statistics for this project via <a href="https://libraries.io/pypi/keyboard">Libraries.io</a>, or by using
|
|
|
<a href="https://packaging.python.org/guides/analyzing-pypi-package-downloads/">Google
|
|
|
BigQuery</a></p>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Meta</h3>
|
|
|
|
|
|
<p><strong>License:</strong> MIT License (MIT)</p>
|
|
|
|
|
|
|
|
|
<p><strong>Author:</strong> <a href="mailto:boppreh@gmail.com">BoppreH</a></p>
|
|
|
|
|
|
|
|
|
|
|
|
<p class="tags">
|
|
|
<i class="fa fa-tags" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Tags:</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
keyboard,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
hook,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
simulate,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
hotkey
|
|
|
</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Maintainers</h3>
|
|
|
|
|
|
|
|
|
<span class="sidebar-section__maintainer">
|
|
|
<a href="https://pypi.org/user/BoppreH/" aria-label="BoppreH" class="sidebar-section__user-gravatar">
|
|
|
<img src="./keyboard · PyPI_files/68747470733a2f2f7365637572652e67726176617461722e636f6d2f6176617461722f63366235353162363539383061643764356632353737363837643565616665393f73697a653d3530" height="50" width="50" alt="Avatar for BoppreH from gravatar.com" title="Avatar for BoppreH from gravatar.com">
|
|
|
</a>
|
|
|
<a href="https://pypi.org/user/BoppreH/" class="sidebar-section__user-gravatar-text">
|
|
|
BoppreH
|
|
|
</a>
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section classifiers">
|
|
|
<h3>Classifiers</h3>
|
|
|
<dl>
|
|
|
|
|
|
<dt>Development Status</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Development+Status+%3A%3A+4+-+Beta">
|
|
|
4 - Beta
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>License</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=License+%3A%3A+OSI+Approved+%3A%3A+MIT+License">
|
|
|
OSI Approved :: MIT License
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Operating System</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+MacOS+%3A%3A+MacOS+X">
|
|
|
MacOS :: MacOS X
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+Microsoft+%3A%3A+Windows">
|
|
|
Microsoft :: Windows
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+Unix">
|
|
|
Unix
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Programming Language</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+2">
|
|
|
Python :: 2
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3">
|
|
|
Python :: 3
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Topic</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Topic+%3A%3A+Software+Development+%3A%3A+Libraries+%3A%3A+Python+Modules">
|
|
|
Software Development :: Libraries :: Python Modules
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Topic+%3A%3A+Utilities">
|
|
|
Utilities
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
</dl>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
<div class="vertical-tabs__panel">
|
|
|
<!-- mobile menu -->
|
|
|
<nav>
|
|
|
<a id="mobile-description-tab" data-target="project-tabs.mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile vertical-tabs__tab--no-top-border vertical-tabs__tab--is-active" href="https://pypi.org/project/keyboard/#description">
|
|
|
<i class="fa fa-align-left" aria-hidden="true"></i>
|
|
|
Project description
|
|
|
</a>
|
|
|
<a id="mobile-data-tab" data-target="project-tabs.mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" href="https://pypi.org/project/keyboard/#data">
|
|
|
<i class="fa fa-info-circle" aria-hidden="true"></i>
|
|
|
Project details
|
|
|
</a>
|
|
|
<a id="mobile-history-tab" data-target="project-tabs.mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" href="https://pypi.org/project/keyboard/#history">
|
|
|
<i class="fa fa-history" aria-hidden="true"></i>
|
|
|
Release history
|
|
|
</a>
|
|
|
|
|
|
<a id="mobile-files-tab" data-target="project-tabs.mobileTab" data-action="project-tabs#onTabClick" class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--mobile" href="https://pypi.org/project/keyboard/#files">
|
|
|
<i class="fa fa-download" aria-hidden="true"></i>
|
|
|
Download files
|
|
|
</a>
|
|
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
<div id="description" data-target="project-tabs.content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="description-tab mobile-description-tab" style="display: block;">
|
|
|
<h2 class="page-title">Project description</h2>
|
|
|
|
|
|
<div class="project-description">
|
|
|
<p>Take full control of your keyboard with this small Python library. Hook
|
|
|
global events, register hotkeys, simulate key presses and much more.</p>
|
|
|
<div id="features">
|
|
|
<h2>Features</h2>
|
|
|
<ul>
|
|
|
<li><strong>Global event hook</strong> on all keyboards (captures keys regardless of
|
|
|
focus).</li>
|
|
|
<li><strong>Listen</strong> and <strong>send</strong> keyboard events.</li>
|
|
|
<li>Works with <strong>Windows</strong> and <strong>Linux</strong> (requires sudo), with
|
|
|
experimental <strong>OS X</strong> support (thanks @glitchassassin!).</li>
|
|
|
<li><strong>Pure Python</strong>, no C modules to be compiled.</li>
|
|
|
<li><strong>Zero dependencies</strong>. Trivial to install and deploy, just copy the
|
|
|
files.</li>
|
|
|
<li><strong>Python 2 and 3</strong>.</li>
|
|
|
<li>Complex hotkey support (e.g. <tt>ctrl+shift+m, ctrl+space</tt>) with
|
|
|
controllable timeout.</li>
|
|
|
<li>Includes <strong>high level API</strong> (e.g. <a href="https://pypi.org/project/keyboard/#keyboard.record" rel="nofollow">record</a> and
|
|
|
<a href="https://pypi.org/project/keyboard/#keyboard.play" rel="nofollow">play</a>,
|
|
|
<a href="https://pypi.org/project/keyboard/#keyboard.add_abbreviation" rel="nofollow">add_abbreviation</a>).</li>
|
|
|
<li>Maps keys as they actually are in your layout, with <strong>full
|
|
|
internationalization support</strong> (e.g. <tt>Ctrl+ç</tt>).</li>
|
|
|
<li>Events automatically captured in separate thread, doesn’t block main
|
|
|
program.</li>
|
|
|
<li>Tested and documented.</li>
|
|
|
<li>Doesn’t break accented dead keys (I’m looking at you, pyHook).</li>
|
|
|
<li>Mouse support available via project
|
|
|
<a href="https://github.com/boppreh/mouse" rel="nofollow">mouse</a> (<tt>pip install mouse</tt>).</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div id="usage">
|
|
|
<h2>Usage</h2>
|
|
|
<p>Install the <a href="https://pypi.python.org/pypi/keyboard/" rel="nofollow">PyPI package</a>:</p>
|
|
|
<pre>pip install keyboard
|
|
|
</pre>
|
|
|
<p>or clone the repository (no installation required, source files are
|
|
|
sufficient):</p>
|
|
|
<pre>git clone https://github.com/boppreh/keyboard
|
|
|
</pre>
|
|
|
<p>or <a href="https://github.com/boppreh/keyboard/archive/master.zip" rel="nofollow">download and extract the
|
|
|
zip</a> into
|
|
|
your project folder.</p>
|
|
|
<p>Then check the <a href="https://github.com/boppreh/keyboard#api" rel="nofollow">API docs
|
|
|
below</a> to see what features
|
|
|
are available.</p>
|
|
|
</div>
|
|
|
<div id="example">
|
|
|
<h2>Example</h2>
|
|
|
<pre><span class="kn">import</span> <span class="nn">keyboard</span>
|
|
|
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">press_and_release</span><span class="p">(</span><span class="s1">'shift+s, space'</span><span class="p">)</span>
|
|
|
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'The quick brown fox jumps over the lazy dog.'</span><span class="p">)</span>
|
|
|
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">add_hotkey</span><span class="p">(</span><span class="s1">'ctrl+shift+a'</span><span class="p">,</span> <span class="k">print</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">(</span><span class="s1">'triggered'</span><span class="p">,</span> <span class="s1">'hotkey'</span><span class="p">))</span>
|
|
|
|
|
|
<span class="c1"># Press PAGE UP then PAGE DOWN to type "foobar".</span>
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">add_hotkey</span><span class="p">(</span><span class="s1">'page up, page down'</span><span class="p">,</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">keyboard</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'foobar'</span><span class="p">))</span>
|
|
|
|
|
|
<span class="c1"># Blocks until you press esc.</span>
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">wait</span><span class="p">(</span><span class="s1">'esc'</span><span class="p">)</span>
|
|
|
|
|
|
<span class="c1"># Record events until 'esc' is pressed.</span>
|
|
|
<span class="n">recorded</span> <span class="o">=</span> <span class="n">keyboard</span><span class="o">.</span><span class="n">record</span><span class="p">(</span><span class="n">until</span><span class="o">=</span><span class="s1">'esc'</span><span class="p">)</span>
|
|
|
<span class="c1"># Then replay back at three times the speed.</span>
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">play</span><span class="p">(</span><span class="n">recorded</span><span class="p">,</span> <span class="n">speed_factor</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
|
|
|
|
<span class="c1"># Type @@ then press space to replace with abbreviation.</span>
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">add_abbreviation</span><span class="p">(</span><span class="s1">'@@'</span><span class="p">,</span> <span class="s1">'my.long.email@example.com'</span><span class="p">)</span>
|
|
|
|
|
|
<span class="c1"># Block forever, like `while True`.</span>
|
|
|
<span class="n">keyboard</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
|
|
|
</pre>
|
|
|
</div>
|
|
|
<div id="known-limitations">
|
|
|
<h2>Known limitations:</h2>
|
|
|
<ul>
|
|
|
<li>Events generated under Windows don’t report device id
|
|
|
(<tt>event.device == None</tt>).
|
|
|
<a href="https://github.com/boppreh/keyboard/issues/21" rel="nofollow">#21</a></li>
|
|
|
<li>Media keys on Linux may appear nameless (scan-code only) or not at
|
|
|
all. <a href="https://github.com/boppreh/keyboard/issues/20" rel="nofollow">#20</a></li>
|
|
|
<li>Key suppression/blocking only available on Windows.
|
|
|
<a href="https://github.com/boppreh/keyboard/issues/22" rel="nofollow">#22</a></li>
|
|
|
<li>To avoid depending on X, the Linux parts reads raw device files
|
|
|
(<tt>/dev/input/input*</tt>) but this requries root.</li>
|
|
|
<li>Other applications, such as some games, may register hooks that
|
|
|
swallow all key events. In this case <tt>keyboard</tt> will be unable to
|
|
|
report events.</li>
|
|
|
<li>This program makes no attempt to hide itself, so don’t use it for
|
|
|
keyloggers or online gaming bots. Be responsible.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div id="data" data-target="project-tabs.content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="mobile-data-tab" style="display: none;">
|
|
|
<h2 class="page-title">Project details</h2>
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Project links</h3>
|
|
|
|
|
|
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed" href="https://github.com/boppreh/keyboard" rel="nofollow">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<i class="fas fa-home" aria-hidden="true"></i>Homepage
|
|
|
</a>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Statistics</h3>
|
|
|
|
|
|
<div class="github-repo-info hidden" data-url="https://api.github.com/repos/boppreh/keyboard">
|
|
|
GitHub statistics:
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/stargazers" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/stargazers">
|
|
|
<i class="fa fa-star" aria-hidden="true"></i>
|
|
|
<strong>Stars: </strong>
|
|
|
<span class="github-repo-info__item" data-key="stargazers_count">1 448</span>
|
|
|
</a>
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/network" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/network">
|
|
|
<i class="fa fa-code-branch" aria-hidden="true"></i>
|
|
|
<strong>Forks: </strong>
|
|
|
<span class="github-repo-info__item" data-key="forks_count">160</span>
|
|
|
</a>
|
|
|
<a class="vertical-tabs__tab vertical-tabs__tab--with-icon vertical-tabs__tab--condensed github-repo-info__item" data-key="html_url" data-attr="href" data-supplement="/issues" rel="noopener" target="_blank" href="https://github.com/boppreh/keyboard/issues">
|
|
|
<i class="fa fa-exclamation-circle" aria-hidden="true"></i>
|
|
|
<strong>Open issues/PRs: </strong>
|
|
|
<span class="github-repo-info__item" data-key="open_issues_count">126</span>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
<p>View statistics for this project via <a href="https://libraries.io/pypi/keyboard">Libraries.io</a>, or by using
|
|
|
<a href="https://packaging.python.org/guides/analyzing-pypi-package-downloads/">Google
|
|
|
BigQuery</a></p>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Meta</h3>
|
|
|
|
|
|
<p><strong>License:</strong> MIT License (MIT)</p>
|
|
|
|
|
|
|
|
|
<p><strong>Author:</strong> <a href="mailto:boppreh@gmail.com">BoppreH</a></p>
|
|
|
|
|
|
|
|
|
|
|
|
<p class="tags">
|
|
|
<i class="fa fa-tags" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Tags:</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
keyboard,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
hook,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
simulate,
|
|
|
</span>
|
|
|
|
|
|
<span class="package-keyword">
|
|
|
hotkey
|
|
|
</span>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section">
|
|
|
<h3 class="sidebar-section__title">Maintainers</h3>
|
|
|
|
|
|
|
|
|
<span class="sidebar-section__maintainer">
|
|
|
<a href="https://pypi.org/user/BoppreH/" aria-label="BoppreH" class="sidebar-section__user-gravatar">
|
|
|
<img src="./keyboard · PyPI_files/68747470733a2f2f7365637572652e67726176617461722e636f6d2f6176617461722f63366235353162363539383061643764356632353737363837643565616665393f73697a653d3530" height="50" width="50" alt="Avatar for BoppreH from gravatar.com" title="Avatar for BoppreH from gravatar.com">
|
|
|
</a>
|
|
|
<a href="https://pypi.org/user/BoppreH/" class="sidebar-section__user-gravatar-text">
|
|
|
BoppreH
|
|
|
</a>
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="sidebar-section classifiers">
|
|
|
<h3>Classifiers</h3>
|
|
|
<dl>
|
|
|
|
|
|
<dt>Development Status</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Development+Status+%3A%3A+4+-+Beta">
|
|
|
4 - Beta
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>License</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=License+%3A%3A+OSI+Approved+%3A%3A+MIT+License">
|
|
|
OSI Approved :: MIT License
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Operating System</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+MacOS+%3A%3A+MacOS+X">
|
|
|
MacOS :: MacOS X
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+Microsoft+%3A%3A+Windows">
|
|
|
Microsoft :: Windows
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Operating+System+%3A%3A+Unix">
|
|
|
Unix
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Programming Language</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+2">
|
|
|
Python :: 2
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Programming+Language+%3A%3A+Python+%3A%3A+3">
|
|
|
Python :: 3
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
<dt>Topic</dt>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Topic+%3A%3A+Software+Development+%3A%3A+Libraries+%3A%3A+Python+Modules">
|
|
|
Software Development :: Libraries :: Python Modules
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
<dd>
|
|
|
<a href="https://pypi.org/search/?c=Topic+%3A%3A+Utilities">
|
|
|
Utilities
|
|
|
</a>
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
</dl>
|
|
|
</div>
|
|
|
|
|
|
<br>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div id="history" data-target="project-tabs.content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="history-tab mobile-history-tab" style="display: none;">
|
|
|
<h2 class="page-title split-layout">
|
|
|
<span>Release history</span>
|
|
|
<a class="reset-text margin-top" href="https://pypi.org/help/#project-release-notifications">Release notifications</a>
|
|
|
</h2>
|
|
|
|
|
|
<section class="release-timeline">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="release release--latest release--current">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
<span class="badge">This version</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/blue-cube.e6165d35.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.13.3/">
|
|
|
<p class="release__version">
|
|
|
0.13.3
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2019-03-18T08:52:09+0000" data-controller="localized-time" aria-label="Mar 18, 2019, 11:52:09 GMT+3" data-original-label="Mar 18, 2019, 11:52:09 GMT+3">Mar 18, 2019</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.13.2/">
|
|
|
<p class="release__version">
|
|
|
0.13.2
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2018-05-18T23:04:38+0000" data-controller="localized-time" aria-label="May 19, 2018, 02:04:38 GMT+3" data-original-label="May 19, 2018, 02:04:38 GMT+3">May 19, 2018</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.13.1/">
|
|
|
<p class="release__version">
|
|
|
0.13.1
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2018-03-27T16:54:21+0000" data-controller="localized-time" aria-label="Mar 27, 2018, 19:54:21 GMT+3" data-original-label="Mar 27, 2018, 19:54:21 GMT+3">Mar 27, 2018</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.13.0/">
|
|
|
<p class="release__version">
|
|
|
0.13.0
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2018-03-26T22:59:24+0000" data-controller="localized-time" aria-label="Mar 27, 2018, 01:59:24 GMT+3" data-original-label="Mar 27, 2018, 01:59:24 GMT+3">Mar 27, 2018</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.11.0/">
|
|
|
<p class="release__version">
|
|
|
0.11.0
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-08-24T20:11:25+0000" data-controller="localized-time" aria-label="Aug 24, 2017, 23:11:25 GMT+3" data-original-label="Aug 24, 2017, 23:11:25 GMT+3">Aug 24, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.10.4/">
|
|
|
<p class="release__version">
|
|
|
0.10.4
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-08-15T02:02:00+0000" data-controller="localized-time" aria-label="Aug 15, 2017, 05:02:00 GMT+3" data-original-label="Aug 15, 2017, 05:02:00 GMT+3">Aug 15, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.10.3/">
|
|
|
<p class="release__version">
|
|
|
0.10.3
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-08-08T13:46:22+0000" data-controller="localized-time" aria-label="Aug 8, 2017, 16:46:22 GMT+3" data-original-label="Aug 8, 2017, 16:46:22 GMT+3">Aug 8, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.10.2/">
|
|
|
<p class="release__version">
|
|
|
0.10.2
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-08-08T13:38:56+0000" data-controller="localized-time" aria-label="Aug 8, 2017, 16:38:56 GMT+3" data-original-label="Aug 8, 2017, 16:38:56 GMT+3">Aug 8, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.10.0/">
|
|
|
<p class="release__version">
|
|
|
0.10.0
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-08-03T15:17:16+0000" data-controller="localized-time" aria-label="Aug 3, 2017, 18:17:16 GMT+3" data-original-label="Aug 3, 2017, 18:17:16 GMT+3">Aug 3, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.13/">
|
|
|
<p class="release__version">
|
|
|
0.9.13
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-03-29T03:25:10+0000" data-controller="localized-time" aria-label="Mar 29, 2017, 06:25:10 GMT+3" data-original-label="Mar 29, 2017, 06:25:10 GMT+3">Mar 29, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.12/">
|
|
|
<p class="release__version">
|
|
|
0.9.12
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-02-04T16:02:32+0000" data-controller="localized-time" aria-label="Feb 4, 2017, 19:02:32 GMT+3" data-original-label="Feb 4, 2017, 19:02:32 GMT+3">Feb 4, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.11/">
|
|
|
<p class="release__version">
|
|
|
0.9.11
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-02-02T07:17:17+0000" data-controller="localized-time" aria-label="Feb 2, 2017, 10:17:17 GMT+3" data-original-label="Feb 2, 2017, 10:17:17 GMT+3">Feb 2, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.10/">
|
|
|
<p class="release__version">
|
|
|
0.9.10
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2017-01-29T10:13:43+0000" data-controller="localized-time" aria-label="Jan 29, 2017, 13:13:43 GMT+3" data-original-label="Jan 29, 2017, 13:13:43 GMT+3">Jan 29, 2017</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.9/">
|
|
|
<p class="release__version">
|
|
|
0.9.9
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-12-18T17:32:46+0000" data-controller="localized-time" aria-label="Dec 18, 2016, 20:32:46 GMT+3" data-original-label="Dec 18, 2016, 20:32:46 GMT+3">Dec 18, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.8/">
|
|
|
<p class="release__version">
|
|
|
0.9.8
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-12-10T22:26:25+0000" data-controller="localized-time" aria-label="Dec 11, 2016, 01:26:25 GMT+3" data-original-label="Dec 11, 2016, 01:26:25 GMT+3">Dec 11, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.7/">
|
|
|
<p class="release__version">
|
|
|
0.9.7
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-16T21:05:51+0000" data-controller="localized-time" aria-label="Nov 17, 2016, 00:05:51 GMT+3" data-original-label="Nov 17, 2016, 00:05:51 GMT+3">Nov 17, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.6/">
|
|
|
<p class="release__version">
|
|
|
0.9.6
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-14T23:13:18+0000" data-controller="localized-time" aria-label="Nov 15, 2016, 02:13:18 GMT+3" data-original-label="Nov 15, 2016, 02:13:18 GMT+3">Nov 15, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.5/">
|
|
|
<p class="release__version">
|
|
|
0.9.5
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-14T07:31:43+0000" data-controller="localized-time" aria-label="Nov 14, 2016, 10:31:43 GMT+3" data-original-label="Nov 14, 2016, 10:31:43 GMT+3">Nov 14, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.4/">
|
|
|
<p class="release__version">
|
|
|
0.9.4
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-13T19:13:52+0000" data-controller="localized-time" aria-label="Nov 13, 2016, 22:13:52 GMT+3" data-original-label="Nov 13, 2016, 22:13:52 GMT+3">Nov 13, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.3/">
|
|
|
<p class="release__version">
|
|
|
0.9.3
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-13T13:46:32+0000" data-controller="localized-time" aria-label="Nov 13, 2016, 16:46:32 GMT+3" data-original-label="Nov 13, 2016, 16:46:32 GMT+3">Nov 13, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.9.1/">
|
|
|
<p class="release__version">
|
|
|
0.9.1
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-11-13T13:20:09+0000" data-controller="localized-time" aria-label="Nov 13, 2016, 16:20:09 GMT+3" data-original-label="Nov 13, 2016, 16:20:09 GMT+3">Nov 13, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.7.1/">
|
|
|
<p class="release__version">
|
|
|
0.7.1
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-07-20T20:45:12+0000" data-controller="localized-time" aria-label="Jul 20, 2016, 23:45:12 GMT+3" data-original-label="Jul 20, 2016, 23:45:12 GMT+3">Jul 20, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.7.0/">
|
|
|
<p class="release__version">
|
|
|
0.7.0
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-06-23T15:29:46+0000" data-controller="localized-time" aria-label="Jun 23, 2016, 18:29:46 GMT+3" data-original-label="Jun 23, 2016, 18:29:46 GMT+3">Jun 23, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.8/">
|
|
|
<p class="release__version">
|
|
|
0.6.8
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-05-14T12:50:42+0000" data-controller="localized-time" aria-label="May 14, 2016, 15:50:42 GMT+3" data-original-label="May 14, 2016, 15:50:42 GMT+3">May 14, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.7/">
|
|
|
<p class="release__version">
|
|
|
0.6.7
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-04-05T16:47:36+0000" data-controller="localized-time" aria-label="Apr 5, 2016, 19:47:36 GMT+3" data-original-label="Apr 5, 2016, 19:47:36 GMT+3">Apr 5, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.6/">
|
|
|
<p class="release__version">
|
|
|
0.6.6
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-04-05T16:20:56+0000" data-controller="localized-time" aria-label="Apr 5, 2016, 19:20:56 GMT+3" data-original-label="Apr 5, 2016, 19:20:56 GMT+3">Apr 5, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.5/">
|
|
|
<p class="release__version">
|
|
|
0.6.5
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-03-08T19:24:16+0000" data-controller="localized-time" aria-label="Mar 8, 2016, 22:24:16 GMT+3" data-original-label="Mar 8, 2016, 22:24:16 GMT+3">Mar 8, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.4/">
|
|
|
<p class="release__version">
|
|
|
0.6.4
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-03-08T17:42:35+0000" data-controller="localized-time" aria-label="Mar 8, 2016, 20:42:35 GMT+3" data-original-label="Mar 8, 2016, 20:42:35 GMT+3">Mar 8, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.3/">
|
|
|
<p class="release__version">
|
|
|
0.6.3
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-02-01T00:17:40+0000" data-controller="localized-time" aria-label="Feb 1, 2016, 03:17:40 GMT+3" data-original-label="Feb 1, 2016, 03:17:40 GMT+3">Feb 1, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.2/">
|
|
|
<p class="release__version">
|
|
|
0.6.2
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-01-31T23:56:23+0000" data-controller="localized-time" aria-label="Feb 1, 2016, 02:56:23 GMT+3" data-original-label="Feb 1, 2016, 02:56:23 GMT+3">Feb 1, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.1/">
|
|
|
<p class="release__version">
|
|
|
0.6.1
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-01-31T23:48:50+0000" data-controller="localized-time" aria-label="Feb 1, 2016, 02:48:50 GMT+3" data-original-label="Feb 1, 2016, 02:48:50 GMT+3">Feb 1, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="release release--oldest">
|
|
|
<div class="release__meta">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="release__graphic">
|
|
|
|
|
|
<div class="release__line"></div>
|
|
|
|
|
|
|
|
|
<img class="release__node" alt="History Node" src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a class="card release__card" href="https://pypi.org/project/keyboard/0.6.0/">
|
|
|
<p class="release__version">
|
|
|
0.6.0
|
|
|
</p>
|
|
|
<p class="release__version-date">
|
|
|
<time class="tooltipped tooltipped-s -js-relative-time" datetime="2016-01-31T23:41:18+0000" data-controller="localized-time" aria-label="Feb 1, 2016, 02:41:18 GMT+3" data-original-label="Feb 1, 2016, 02:41:18 GMT+3">Feb 1, 2016</time>
|
|
|
</p>
|
|
|
</a>
|
|
|
</div>
|
|
|
|
|
|
</section>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="files" data-target="project-tabs.content" class="vertical-tabs__content" role="tabpanel" aria-labelledby="files-tab mobile-files-tab" style="display: none;">
|
|
|
<h2 class="page-title">Download files</h2>
|
|
|
<p>Download the file for your platform. If you're not sure which to choose, learn more about <a href="https://packaging.python.org/installing/">installing packages</a>.</p>
|
|
|
|
|
|
<table class="table table--downloads">
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th class="table__filename">
|
|
|
Filename, size & hash
|
|
|
<a href="https://pip.pypa.io/en/stable/reference/pip_install/#hash-checking-mode" class="tooltipped tooltipped-n" aria-label="what's this?" data-original-label="what's this?">
|
|
|
<i class="fa fa-question-circle" aria-hidden="true"></i>
|
|
|
<span class="sr-only">SHA256 hash help</span>
|
|
|
</a>
|
|
|
</th>
|
|
|
<th class="table__type">File type</th>
|
|
|
<th class="table__version">Python version</th>
|
|
|
<th class="table__upload-date">Upload date</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
<td>
|
|
|
<a href="https://files.pythonhosted.org/packages/8d/14/b7a8f46e750b5905b099f0ae164a00bc99fe2a3029b4d54ae978797d2c15/keyboard-0.13.3-py2.py3-none-any.whl">
|
|
|
keyboard-0.13.3-py2.py3-none-any.whl
|
|
|
</a>
|
|
|
(58.7 kB)
|
|
|
<a class="-js-copy-hash table__sha256-link tooltipped tooltipped-s" aria-label="Copy to clipboard" data-original-label="Copy to clipboard" data-clipboard-text="18b53344408df1973c452549f47a203f20a0e65fbbd4436c72562759fa03c0b8">
|
|
|
<i class="fa fa-copy" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Copy SHA256 hash</span>
|
|
|
SHA256
|
|
|
</a>
|
|
|
</td>
|
|
|
<td>
|
|
|
Wheel
|
|
|
</td>
|
|
|
<td>
|
|
|
|
|
|
py2.py3
|
|
|
|
|
|
</td>
|
|
|
<td><time class="tooltipped tooltipped-s -js-relative-time" datetime="2019-03-18T08:52:09+0000" data-controller="localized-time" aria-label="Mar 18, 2019, 11:52:09 GMT+3" data-original-label="Mar 18, 2019, 11:52:09 GMT+3">Mar 18, 2019</time></td>
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
<td>
|
|
|
<a href="https://files.pythonhosted.org/packages/bf/5e/4c046b8f94e68af6b5b3fe7550a87370f68a168fbc2eff10f06f59172e32/keyboard-0.13.3.win-amd64.exe">
|
|
|
keyboard-0.13.3.win-amd64.exe
|
|
|
</a>
|
|
|
(650.4 kB)
|
|
|
<a class="-js-copy-hash table__sha256-link tooltipped tooltipped-s" aria-label="Copy to clipboard" data-original-label="Copy to clipboard" data-clipboard-text="0fa2f6d5aa793270d97952d256fbd984091bdccd63a7e10127bd1a04e3f2ee71">
|
|
|
<i class="fa fa-copy" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Copy SHA256 hash</span>
|
|
|
SHA256
|
|
|
</a>
|
|
|
</td>
|
|
|
<td>
|
|
|
Windows Installer
|
|
|
</td>
|
|
|
<td>
|
|
|
|
|
|
any
|
|
|
|
|
|
</td>
|
|
|
<td><time class="tooltipped tooltipped-s -js-relative-time" datetime="2019-03-18T08:52:13+0000" data-controller="localized-time" aria-label="Mar 18, 2019, 11:52:13 GMT+3" data-original-label="Mar 18, 2019, 11:52:13 GMT+3">Mar 18, 2019</time></td>
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
<td>
|
|
|
<a href="https://files.pythonhosted.org/packages/ea/bf/f00decd3a10c55039d9036c9d698a6a59798f736db7b046af20e7e6fd02d/keyboard-0.13.3.zip">
|
|
|
keyboard-0.13.3.zip
|
|
|
</a>
|
|
|
(69.4 kB)
|
|
|
<a class="-js-copy-hash table__sha256-link tooltipped tooltipped-s" aria-label="Copy to clipboard" data-original-label="Copy to clipboard" data-clipboard-text="d900fefc9c8dfc0c5d92bea6d6190a2ed9beea1bdbc0e16ce12a235bf5ef6281">
|
|
|
<i class="fa fa-copy" aria-hidden="true"></i>
|
|
|
<span class="sr-only">Copy SHA256 hash</span>
|
|
|
SHA256
|
|
|
</a>
|
|
|
</td>
|
|
|
<td>
|
|
|
Source
|
|
|
</td>
|
|
|
<td>
|
|
|
|
|
|
None
|
|
|
|
|
|
</td>
|
|
|
<td><time class="tooltipped tooltipped-s -js-relative-time" datetime="2019-03-18T08:52:15+0000" data-controller="localized-time" aria-label="Mar 18, 2019, 11:52:15 GMT+3" data-original-label="Mar 18, 2019, 11:52:15 GMT+3">Mar 18, 2019</time></td>
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
|
|
|
</main>
|
|
|
|
|
|
<footer class="footer" role="contentinfo">
|
|
|
<div class="footer__logo">
|
|
|
<img src="./keyboard · PyPI_files/white-cube.8c3a6fe9.svg" alt="Logo" class="-js-white-cube">
|
|
|
</div>
|
|
|
|
|
|
<div class="footer__menus">
|
|
|
<ul class="footer__menu">
|
|
|
<li>
|
|
|
<h2>Help</h2>
|
|
|
</li>
|
|
|
<li><a href="https://packaging.python.org/installing/">Installing packages</a></li>
|
|
|
<li><a href="https://packaging.python.org/tutorials/packaging-projects/">Uploading packages</a></li>
|
|
|
<li><a href="https://packaging.python.org/">User guide</a></li>
|
|
|
<li><a href="https://pypi.org/help/">FAQs</a></li>
|
|
|
</ul>
|
|
|
<ul class="footer__menu">
|
|
|
<li>
|
|
|
<h2>About PyPI</h2>
|
|
|
</li>
|
|
|
<li><a href="https://twitter.com/PyPI">PyPI on Twitter</a></li>
|
|
|
<li><a href="https://dtdg.co/pypi">Infrastructure dashboard</a></li>
|
|
|
<li><a href="https://www.python.org/dev/peps/pep-0541/">Package index name retention</a></li>
|
|
|
<li><a href="https://pypi.org/sponsors/">Our sponsors</a></li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<ul class="footer__menu">
|
|
|
<li>
|
|
|
<h2>Contributing to PyPI</h2>
|
|
|
</li>
|
|
|
<li><a href="https://pypi.org/help/#feedback">Bugs and feedback</a></li>
|
|
|
<li><a href="https://github.com/pypa/warehouse">Contribute on GitHub</a></li>
|
|
|
<li><a href="https://github.com/pypa/warehouse/graphs/contributors">Development credits</a></li>
|
|
|
</ul>
|
|
|
<ul class="footer__menu">
|
|
|
<li>
|
|
|
<h2>Using PyPI</h2>
|
|
|
</li>
|
|
|
<li><a href="https://www.pypa.io/en/latest/code-of-conduct/">Code of conduct</a></li>
|
|
|
<li><a href="https://pypi.org/security/">Report security issue</a></li>
|
|
|
<li><a href="https://www.python.org/privacy/">Privacy policy</a></li>
|
|
|
<li><a href="https://pypi.org/policy/terms-of-use/">Terms of use</a></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
<hr class="footer__divider">
|
|
|
|
|
|
<div class="footer__text">
|
|
|
|
|
|
<p>Status: <a href="https://status.python.org/"><span data-statuspage-domain="https://2p66nmmycsj3.statuspage.io">All Systems Operational</span></a></p>
|
|
|
|
|
|
<p>
|
|
|
Developed and maintained by the Python community, for the Python community.
|
|
|
<br>
|
|
|
<a href="https://donate.pypi.org/">Donate today!</a>
|
|
|
</p>
|
|
|
<p>© 2019 <a href="https://www.python.org/psf/">Python Software Foundation</a></p>
|
|
|
</div>
|
|
|
|
|
|
<div class="centered hide-on-desktop">
|
|
|
<button class="button button--switch-to-desktop" data-target="viewport-toggle.switchToDesktop" data-action="viewport-toggle#switchToDesktop">
|
|
|
Desktop version
|
|
|
</button>
|
|
|
</div>
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="sponsors">
|
|
|
<p class="sponsors__title">Supported by</p>
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.elastic.co/">
|
|
|
<img class="sponsors__image" alt="Elastic" src="./keyboard · PyPI_files/elastic.a912fb87.png">
|
|
|
<span class="sponsors__name">Elastic</span>
|
|
|
<span class="sponsors__service">Search</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.pingdom.com/">
|
|
|
<img class="sponsors__image" alt="Pingdom" src="./keyboard · PyPI_files/pingdom.07446398.png">
|
|
|
<span class="sponsors__name">Pingdom</span>
|
|
|
<span class="sponsors__service">Monitoring</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://cloud.google.com/">
|
|
|
<img class="sponsors__image" alt="Google" src="./keyboard · PyPI_files/google.2f72f26f.png">
|
|
|
<span class="sponsors__name">Google</span>
|
|
|
<span class="sponsors__service">BigQuery</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://getsentry.com/for/python">
|
|
|
<img class="sponsors__image" alt="Sentry" src="./keyboard · PyPI_files/sentry.5ab437bc.png">
|
|
|
<span class="sponsors__name">Sentry</span>
|
|
|
<span class="sponsors__service">Error logging</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://aws.amazon.com/">
|
|
|
<img class="sponsors__image" alt="AWS" src="./keyboard · PyPI_files/aws.5f800271.png">
|
|
|
<span class="sponsors__name">AWS</span>
|
|
|
<span class="sponsors__service">Cloud computing</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.datadoghq.com/">
|
|
|
<img class="sponsors__image" alt="DataDog" src="./keyboard · PyPI_files/datadog.e569d741.png">
|
|
|
<span class="sponsors__name">DataDog</span>
|
|
|
<span class="sponsors__service">Monitoring</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.fastly.com/">
|
|
|
<img class="sponsors__image" alt="Fastly" src="./keyboard · PyPI_files/fastly.0563c6f5.png">
|
|
|
<span class="sponsors__name">Fastly</span>
|
|
|
<span class="sponsors__service">CDN</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.signalfx.com/">
|
|
|
<img class="sponsors__image" alt="SignalFx" src="./keyboard · PyPI_files/signalfx.560cb5c4.png">
|
|
|
<span class="sponsors__name">SignalFx</span>
|
|
|
<span class="sponsors__service">Supporter</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://www.digicert.com/">
|
|
|
<img class="sponsors__image" alt="DigiCert" src="./keyboard · PyPI_files/digicert.79748718.png">
|
|
|
<span class="sponsors__name">DigiCert</span>
|
|
|
<span class="sponsors__service">EV certificate</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="sponsors__sponsor" target="_blank" rel="noopener" href="https://statuspage.io/">
|
|
|
<img class="sponsors__image" alt="StatusPage" src="./keyboard · PyPI_files/statuspage.67af0b3d.png">
|
|
|
<span class="sponsors__name">StatusPage</span>
|
|
|
<span class="sponsors__service">Status page</span>
|
|
|
</a>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body></html> |