Saravanan666/pypi-org huggingface dataset:
Package: twqq
twqq####一个基于tornado的异步的WebQQ客户端库Features########* 易于使用* 易于扩展* 可长时间维持在线状态* 基于Tornado的高效异步库TODO####* 完善协议* ``修复临时消息(已修复)``Changelog#########Version 0.2.7 (2014-05-29)--------------------------* 格式化日志输出* 发送消息错误后重新登录* 修复群成员消息更新Version 0.2.4 (2014-04-21)--------------------------* 添加登出请求* 添加手动刷新好友信息* 添加手动刷新群信息Version 0.2.3 (2014-04-21)--------------------------* 增加好友状态管理* 添加一些接口* 增加获取QQ号码的接口* 处理带图片的消息* 修复一些讨论组bugVersion 0.2.2 (2014-04-18)--------------------------* 抽象WebQQ的数据结构(好友/群/讨论组)* 完善讨论组协议* 一些接口的改变* 添加文件接收Version 0.1.7 (2014-03-05)-------------------------* 增加讨论组支持已知Bug#######* 有时发送一条消息时, 服务器会发送两条.. 如果您觉得功能不错, 您可以 |imglink|_ 让我更多的支持开源事业.. .. |imglink| image:: https://img.alipay.com/sys/personalprod/style/mc/btn-index.png.. .. _imglink: http://me.alipay.com/woodd
Package: twrpdtgen
twrpdtgenCreate aTWRP-compatible device tree only from an Android recovery image (or a boot image if the device uses non-dynamic partitions A/B) of your device's stock ROM
It has been confirmed that this script supports images built starting from Android 4.4 up to Android 12Requires Python 3.8 or greaterInstallationpip3installtwrpdtgenLinux only: Be sure to have cpio installed in your system (Install cpio usingsudo apt install cpioorsudo pacman -S cpiobased on what package manager you're using)Instructionspython3-mtwrpdtgen<pathtoimage>When an image is provided, if everything goes well, there will be a device tree atoutput/manufacturer/codenameYou can also use the module in a script, with the following code:fromtwrpdtgen.device_treeimportDeviceTree# Get image infodevice_tree=DeviceTree(image_path)# Dump device tree to folderdevice_tree.dump_to_folder(output_path)License#
# Copyright (C) 2022 The Android Open Source Project
#
# SPDX-License-Identifier: Apache-2.0
#
Package: twsecli
twsecliTWSE unofficial command line interface提供 Cli 介面，根據台灣股票代號，顯示台灣證券交易所即時股價。Install / 安裝pip3 install twsecliUsage / 執行twsecli <stock symbol>
twsecli -n 300 <stock symbol>
twsecli -n 300 -c .twsecli_config
twsecli -h
Package: twseia
A Taiwan Smart Energy Industry Association (TaiSEIA) Protocol Python Library.ExampleRead POWER state from TaiSEIA device:import twseia
sa = twseia.SmartApplication()
service_id = 0
r = sa.read_state(service_id)Write POWER command to TaiSEIA device:import twseia
sa = twseia.SmartApplication()
service_id = 0
POWER_ON = 1
r = sa.write_state(service_id, POWER_ON)
print(r.to_json())Web resourcesDocumentation:https://twseia.readthedocs.io/Source code onGitHub:https://github.com/slee124565/twseiaPython package index (PyPI) with download:https://pypi.org/project/twseia/FeaturesTWSEIA is an easy-to-use Python module for talking to instruments (slaves)
from a computer (master) using the TaiSEIA protocol, and is intended to be running on the master.
The only dependence is the pySerial module (also pure Python).There are convenience functions to handle floats, strings and long integers
(in different byte orders).It is open source, and has the Apache License, Version 2.0.Tested with Python 3.8 and 3.9.
Package: tw-source-finder
tw-source-finderThis package leverages a parallelization boiler-plate code to provide a super fast source finder routine which deletes background sources using a polygon based approach.Watch the video onYouTubefor detailed instructions on how to use the data analysis scripts. Hopefully, it will not put you to sleep! More detailed written instructions may follow.FeaturesThere are two main scripts in the package, viz:get_morphology_imagesandget_galaxy_parameters.get_morphology_imagesUses morphological erosion and dilation to remove background sources from a radio astronomy image. It extends the technique described inRudnick, 2002.The process can be described through the following equations:o = original image

d = output from erosion/dilation

t = white TopHat, which should show only 'compact' structures

t = o - d

m = mask derived from a comparison where t > some signal m * t = m * (o - d)

o_d = output diffuse image

=o - m * t

=o - (m * o - m * d)

=o - m * o + (m * d)

m*d would add the masked dilated image to the 'diffuse' image and we do not want to do that so we ignore it to get

o_d = o - m * o and

o_c = image of compact objects = m * o

so the original image equates to o_d + o_cWe may want to judiciously add selected components ofo_ctoo_dto get a finalo*. We select the components ofo_cwe wish to add by masking their defining polygons to get a maskm_c$$o* = o_d + m_c * o_c$$get_galaxy_parametersIntegrates the signal contained within specified polygon areas of a radio astronomy image to derive integrated flux densities and other parameters of a radio source.RequirementsThe code has been tested with python 3.8 on Ubuntu 20.04. Seepyproject.tomlorrequirements.txtfor package dependencies.InstallationInstall from source$pipinstall.Use the routine$tw-source-list-fxyz.fits-t6.5
Package: twss
This is an implementation of a simple double entendre classifier in Python.This currently uses a Naive Bayes classifier (the NLTK implementation) as a
Python package. This was inspired by thebvandenvos Ruby TWSS projectand uses the same data corpus.This was built on the eve ofBarcamp Mumbai8
and presented during a session there.Suggestions welcome. Do file bugs. Fork away. Send us pull requests.Setup Instructions$virtualenv--no-site-packages--distributevenv$sourcevenv/bin/activate$pipinstall-rrequirements.txtThis creates a virtual environment for this project and install all the
packages necessary for the project to work.DemoOnce this is installed, you can take it out for a spin:>>>fromtwssimportTWSS>>>twss=TWSS()>>>twss("That was hard")True>>>twss("Hello world")FalseThe first call can take a while- the module needs to train the classifier
against the pre-installed training dataset.Getting dirtyYou can supply your own training data using positive and negative corpus files:>>>twss=TWSS(positive_corpus_file=open('foo.txt'),negative_corpus_file=open('bar.txt'))or directly, as a list of tuples:>>>training_data=[...("Sentence 1",True),...("Sentence 2",False),......]>>>twss=TWSS(training_data)RoadmapMaking this pip-installable.Writing a sample web app.Writing a sample Twitter client.
Package: twstatus.py
twstatus.pyGet the server information of teeworlds servers.Tested on vanilla and ddnet based servers.pip install twstatus.pyfromtwstatusimportServerHandlerimportasyncioserver=ServerHandler("1.1.1.1",8303)asyncdefmain():print(vars(awaitserver.get_info()))# Note: asyncio.run is only available on 3.7+# https://docs.python.org/3/library/asyncio-task.html#id3asyncio.run(main())
Package: tw-stock
Get Taiwan's stock info in real-timeInstall:pip install tw-stockExample:from tw_stock.stock import get_realtime
print(get_realtime(2330))Return:{
    "now_amount": "9355",
    "now_diff": "0.0",
    "now_price": "233.00",
    "now_percent": "0.0",
    "stock_name": "台積電",
    "stock_no": "2330"
}
Package: twstock-downloader
All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.Description: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/x-rst
Package: tw-stocks
TWStocks Python SDKTWStocks HTTP API SDKInstallation$ pip install tw_stocksHow to use?from tw_stocks import TWStocks
twstocks = TWStocks('API secret key')
twstocks.get_cash_flow_statement('1101', '2021-01-01')Output:[{'CMKey': '1101',
  'CashAndCashEquivalents': '62025098',
  'CashFlowFromFinancingActivities': '-1790927',
  'CashFlowFromInvestingActivities': '5292661',
  'CashFlowFromOperatingActivities': '7124458',
  'DateRange': '202101',
  'EarningsBeforeTaxes': '4846931',
  'FreeCashFlow': '2232457',
  'NetCashFlow': '10591576'}]
Package: tw.swfobject
.. contents::Detailed Documentation**********************tw.swfobject documentation==============================This Widget encapsulates the google code swfobject JavaScript library`http://code.google.com/p/swfobject/`_ for embedding Shockwave Flash content in a standards-friendly manner.The current swfobject version packaged with this widget is version 2.2`http://swfobject.googlecode.com/files/swfobject_2_2.zip`_Example:From within your controller, simply instantiate a SwfObject and return this instance to be rendered with your template::swfobject = SwfObject(swf = "/path/to/mycontent.swf", width = 640, height = 480, flashvars = {"myvar": 0})From within your template, simply call the swfobject::${swfobject()}Contributors************Main developpers================* Patrick McKinnon <swfobject[at]txsv[dot]comMaintainer==========* Nicolas Laurance <nicolas[dot]laurance[at]gmail[dot]com>Change history**************New in 0.2==========Update to swfobject 2.2New in 0.1==========First Release
Package: twsyncer
Taskwarrior SyncTaskwarrior Sync is a small tool to sync local Taskwarrior database with some
remote issues tracker. Currently Github is a priority and it is only supported
issue tracker.Installationpip install twsyncerConfigurationCreate configuration file in~/.config/twsyncer/config.json(look at
theexample.If you do not want to create config, you can just export several environment
variables:TW_DRY_RUNshould be set toFalseto really sync somethingTW_GITHUB_TOKENshould be set to Github token with proper access permissionsTW_GITHUB_ORG_LOGINis a login of organization in which project with cards
existsTW_GITHUB_PROJECTis a name of the projectTW_GITHUB_ISSUES_REPOis a repo from which issues will be linked to projectTW_FILTER_PROJECTis a project name in local Taskwarrior to sync uponAfter setting all of there ensure that tw_to_github_states mapped
properly.Keys of that mapping are states in TaskWarrior and values are
possible column names in project. In case there will be any inconsistence
between these, according Github issues will be moved across different columns.
Also all the issues in any of the 'completed' column will be closed
automatically.
Package: twtvt
Twitter Video Tools V2A Twitter video downloadersupports downloading videos from twitter (or specific user from twitter) && monsnode.Installwith PIPpipinstalltwtvtwith PoetrypoetryaddtwtvtUsageCommand linetwtvt--helpSupported link types:Video tweet:https://twitter.com/twtvtOfficial/status/1599748329927499777Video frommonsnode:https://monsnode.com/v1506575871309589251Specific user's uploaded videos:https://twitter.com/twtvtOfficial/mediaSpecific user's liked videos:https://twitter.com/twtvtOfficial/likesPython Embeddingimporttwtvttwtvt.download_video(target_links=['https://twitter.com/twtvtOfficial/media','https://monsnode.com/v1506575871309589251'],username='your username',password='your password',output='./videos',cookies_from_browser='brave',until_link='https://twitter.com/twtvtOfficial/status/1599748329927499777',)
Package: twtxt
twtxtis a decentralised, minimalist microblogging service for hackers.So you want to get some thoughts out on the internet in a convenient and slick way while also following the gibberish of others? Instead of signing up at a closed and/or regulated microblogging platform, getting your status updates out with twtxt is as easy as putting them in a publicly accessible text file. The URL pointing to this file is your identity, your account. twtxt then tracks these text files, like a feedreader, and builds your unique timeline out of them, depending on which files you track. The format is simple, human readable, and integrates well with UNIX command line utilities.tl;dr: twtxt is a CLI tool, as well as a format specification for self-hosted flat file based microblogging.FeaturesA beautiful command-line interface thanks to click.Asynchronous HTTP requests thanks to asyncio/aiohttp and Python 3.Integrates well with existing tools (scp, cut, echo, date, etc.) and your shell.Don’t like the official client? Tweet usingecho-e"`date+%FT%T%:z`\tHelloworld!" >> twtxt.txt!DocumentationCheck out the full documentation at:http://twtxt.readthedocs.org/en/latest/Communitytwtxt IRC channel:#twtxtonirc.libera.chatContributionsA curated list of active twtxt users byyarn.social:https://git.mills.io/yarnsocial/we-are-twtxtA web-based directory of twtxt users byreednj:http://twtxt.reednj.com/A web-based twtxt feed hoster for the masses byplomlompom:https://github.com/plomlompom/htwtxtA twtxt-to-atom converter in sh byerlehmann:http://news.dieweltistgarnichtso.net/bin/twtxt2atomA twitter-to-twtxt converter in node.js byDracoBlue:https://gist.github.com/DracoBlue/488466eaabbb674c636fA port to node.js / npm byMelvin Carvalho:https://github.com/webize/twtxtA patched version of TweetNest, which serves TweetNest archives in twtxt format, bytexttheater:https://github.com/texttheater/tweetnest/tree/feat/twtxtA twtxt registry api byDracoBlue:https://registry.twtxt.orgA twtxt client written in perl bymdom:https://github.com/mdom/txtnixA twtxt client with minimal dependencies bymdom:https://github.com/mdom/txtnishA twtxt client written in C bydertuxmalwieder:https://hub.darcs.net/dertuxmalwieder/twtxtcA read-only timeline of the last 3000 tweets via gopher bytrqx:gopher://shroom.party/1/twtxtA bot for using twtxt over xmpp bymdosch:https://salsa.debian.org/mdosch-guest/goxtxttwtxt registry server written in Go bygbmor:https://github.com/gbmor/getwtxt-ngA twtxt parsing library written in Rust bygbmor:https://github.com/rustwtxt/rustwtxtA twtxt WordPress plugin, that provides the blog-posts as twtxt file, written bypfefferle:https://github.com/pfefferle/wordpress-twtxtA twtxt client for Emacs bydeadblackclover:https://github.com/deadblackclover/twtxt-elAn php interface for publishing to your selfhosted twtxt.txt bysorenpeter:https://github.com/sorenpeter/phpub2twtxt/A graphical twtxt client written in Tcl/Tk, RSS-to-twtxt converter, and mentions extractor bydbohdan:https://gitlab.com/dbohdan/twtxt.tclLicensetwtxt is released under the MIT License. See the bundled LICENSE file for details.
Package: twunnel
A HTTPS/SOCKS4/SOCKS5 tunnel for Twisted.Supports:TCPTCP over SSHTCP over SSLTCP over WSTCP over WSSExampleshttps://github.com/jvansteirteghem/twunnel/tree/master/examplesExample 1: A TCP tunnel.Example 2: A SOCKS5 TCP tunnel.Example 3: A SOCKS5 TCP over SSH tunnel.Example 4: A SOCKS5 TCP over WSS tunnel.Example 5: A DNS, TCP tunnel.Example 6: A HTTPS TCP tunnel.Example 7: A HTTPS TCP, SOCKS5 TCP tunnel.Example 8: A SOCKS4 TCP tunnel.Example 9: A TCP tunnel.Example 10: A SOCKS5 TCP over SSL tunnel.https://github.com/jvansteirteghem/twunnel-apphttps://github.com/jvansteirteghem/twunnel-app-openshiftLicenseUses theMITlicense.
Package: twunnel3
A HTTPS/SOCKS4/SOCKS5 tunnel for AsyncIO.Supports:TCPTCP over SSLExampleshttps://github.com/jvansteirteghem/twunnel3/tree/master/examplesExample 1: A TCP tunnel.Example 2: A HTTPS TCP tunnel.Example 3: A SOCKS4 TCP tunnel.Example 4: A SOCKS5 TCP tunnel.Example 5: A HTTPS TCP, SOCKS4 TCP, SOCKS5 TCP tunnel.Example 6: A SOCKS5 TCP over SSL tunnel.LicenseUses theMITlicense.
Package: tw.uploadify
ContentsDetailed Documentationusing the widgetin the widget libin the view controllerin the templateoptionsChange historyDetailed Documentationtw.uploadify documentationtw.uploadify is a tosca widget wrapper around jquery uploadify pluginwhich can be found here :http://www.uploadify.com/the version released with this package is 2.1.4using the widgetin the widget libfrom tw.forms import TableFieldSet
from tw.uploadify import Uploadify

class UploadFieldset(TableFieldSet):
    label_text = "upload files"
    fields = [
        Uploadify('upload_file', label_text='upload File',
                  script='upload',
                  fileDataName='upload_file',
                  scriptData={'_method': 'PUT'},
                  removeCompleted=False,
                  ),
            ]

upload_fieldset = UploadFieldset("upload_fieldset")in the view controllerfrom widgetlib import upload_fieldset

...

class UploadController(BaseController):

    @expose('project.templates.upload')
    def index(self):
        params = { 'child_args' : {
                      'upload_file': dict(script="foobarbaz"),
                    }
                  }
        tmpl_context.file_form = upload_fieldset
        return dict(params=params)in the template<div py:replace="tmpl_context.file_form(**params)">Files Form</div>optionsonly some options are implemented now, please refer to the widgets.py source codeChange historyNew in 0.10.1a4
partial events support0.1a3
corrected example0.1a2
nice test and debugging contrib from Diez Roggisch
better example0.1a1
CHANGES.txt wasn’t including, stopping easy_install0.1a0
First Release
Package: twutil
A set of utilities for handling Twitter data.Installingpip install twutilTwitter API calls rely on theTwitterAPIPython library.To use OAuth, you’ll need to set the following environmental variables:TW_CONSUMER_KEYTW_CONSUMER_SECRETTW_ACCESS_TOKENTW_ACCESS_TOKEN_SECRETHistory0.2.2 (2015-10-08)add get_friends0.2.1 (2015-10-06)Properly specify requirements.0.2.0 (2015-10-06)Backward compatibility for python20.1.9 (2014-12-08)Convert to Python3Support to collect friends0.1.8 (2014-12-08)Get members of a Twitter listImprovements to tokenizer.Lookup screen names in bulk.0.1.7 (2014-05-15)Fetch followersEnhanced error handlingBug fixes0.1.6 (2014-05-02)Update versions0.1.5 (2014-05-02)Bug fixesSkip missing users0.1.4 (2014-05-02)Bug fixesFail more gracefully0.1.3 (2014-05-01)Small doc changes0.1.2 (2014-05-01)Switch to TwitterAPISupport search and track by userrename api module to collect0.1.0 (2014-03-29)First release on PyPI.
Package: twutils
twutils - Python tools for turboWAVE PIC codeModulestwutils.NLO: evaluate dispersion in explicit nonlinear optics modeltwutils.plot: Prepare inputs for matplotlib/mayavi based on data in npy filestwutils.pre: Conversion between experimental and simulation parameterstwutils.QO.stationary: Stationary states of quantum mechanical wave equationstwutils.QO.ionization: Ionization potentials, rates, and unitsScriptstwinstall: configures and installs core turboWAVEtwplot: command line plottertwscan: serial-parallel or parallel-parallel parameter scanswigner: command line plotter for Wigner distributionstwtest: script to run a test suiteos2tw: script to convert OSIRIS outputs to turboWAVE outputsKnown IssuesThe twinstall script depends on git.  The pypi package cannot account for this, while the conda package can.  So if one uses pip rather than conda, git must be installed beforehand.
Package: twwanim
twwanimTwin-widthanimation tools. Given an (undirected, simple) graph and a corresponding contraction sequence (seeWikipediafor the definition of twin-width),twwanimcreates a video visualizing contractions and red edges.DependenciesPython 3LaTeXManim Community(v0.18.0 or later)NetworkX(v3.1 or later)InstallationInstall LaTeX distribution (the following are recommended):(Mac)MacTeX:brew install --cask mactex-no-gui(Linux)TeX Live:(Debian)sudo apt install texlive texlive-latex-extra(Fedora)sudo dnf install texlive-scheme-full(Windows)MikTeXInstall Manim Community: follow theinstallation docs.Installtwwanim: runpip install twwanim.OperationCommandInstallpip install twwanimUpgradepip install --upgrade twwanimUninstallpip uninstall twwanimCheck installed versiontwwanim --versionHelptwwanim -hGetting StartedMake sure the commandtwwanimhas been installed.$ twwanim --version
twwanim 0.0.1
$ twwanim --help
(the usage will be shown)The commandtwwanimtakes two inputs: a graph and a contraction sequence.Graph file (.jsonor.gr):An edge list in the JSON format (output ofjson.dumps(networkx.node_link_data(G))) or thePACE 2023 input format.For the JSON format, you may include the position of each node as a node propertypos.See theJupyter Notebookfor an example of graph conversions.Contraction sequence (.jsonor.txt):A list of vertex pairs in JSON or in thePACE 2023 output format.Example:twwanim -p -ql tests/resources/pace2023/public/exact_001.json tests/resources/pace2023/public/exact_001_cs.txt-p: Preview the video after rendering it.-ql: Set the quality to low (854x480 15FPS).tests/resources/pace2023/tiny/tiny001.json: Path to a graph file.tests/resources/pace2023/tiny/tiny001_cs.txt: Path to a contraction sequence file.A video will be made in themedia/videosdirectory.The example above will createmedia/videos/480p15/TwinwidthAnimation.mp4.GalleryThe following videos are available on YouTube.PACE 2023 public instancesexact: 001exact: 009exact: 039Developer's GuideOperationCommandRun unit testsmake testInstall in the developer modemake dev-install
Package: twweet-cli
twweet-cliTweet right from your cli without even opening your browser.Installpip install twweet-cliBuild from SourceClone the source$ git clone https://github.com/CruiseDevice/twweet-cli.gitNavigate to the tweet-cli folder$ cd twweet-cliNow run setup.py file.For Linux users:$ sudo python3 setup.py installFor Windows users:$ python setup.py installCreate a Twitter "App"Log in tohttps://apps.twitter.com/to create a new app and generate your OAuth credentials:Consumer Key (API Key)Consumer Secret (API Secret)Access TokenAccess Token SecretRun the application$ twweet-cliNote: Requires Python 3.xUsagetypetwweetto post a tweet.typegetto get different types of information from twitter. A menu will be provided to choose for your choice of             information.typeeditto change your Ouath credentials.type99to quit the application.ContributingI appreciate any help and support. Feel free toforkandcreate a pull requestFeatures presenttweet from your CLI without opening the browser.ChangingConsumer KeyConsumer SecretAccess TokenAccess Token Secretkeys for twweet-cli.getting the tweets of any user by providing the username.getting the tweets of a particular hashtag by providing the same.getting the trending topics on twitter.getting the tweets in your timeline.getting your follower list and their respective user name on twitter(number of followers to be displayed can be assigned).getting your own tweets(number of tweets to be displayed can be assigned).
Package: twx
contributions:Please joinhttps://github.com/datamachine/twxissues:Please usehttps://github.com/datamachine/twx/issuesPython version supported:3.4TWXis a python interface for the Telegram bot API. It supports
making synchronous and asynchronous calls and converts the response
into a usable native python object.Support for the MTProto API is in the works, but considered pre-alpha right now.InstallFor stable:pip install twxFor dev:pip install-ihttps://testpypi.python.org/pypitwxQuick Startfrom twx.botapi import TelegramBot, ReplyKeyboardMarkup

"""
Setup the bot
"""

bot = TelegramBot('<API TOKEN>')
bot.update_bot_info().wait()
print(bot.username)

"""
Send a message to a user
"""
user_id = int(<someuserid>)

result = bot.send_message(user_id, 'test message body').wait()
print(result)

"""
Get updates sent to the bot
"""
updates = bot.get_updates().wait()
for update in updates:
    print(update)

"""
Use a custom keyboard
"""
keyboard = [
    ['7', '8', '9'],
    ['4', '5', '6'],
    ['1', '2', '3'],
         ['0']
]
reply_markup = ReplyKeyboardMarkup.create(keyboard)

bot.send_message(user_id, 'please enter a number', reply_markup=reply_markup).wait()