Saravanan666/pypi-org huggingface dataset:
Package: ezpyzy
ezpyzyUtility functions solving common but annoying problems.InstallationpipinstallezpyzyUsageimportezpyzyasezEasily save and load .txt, .json, .csv, and .pkltext_file=ez.File('foo.txt')json_file=ez.File('bar.json')csv_file=ez.File('baz.csv')pkl_file=ez.File('qux.pkl')text_file.save('Hello, world!')json_file.save({'a':1,'b':2})csv_file.save([[1,2],[3,4]])pkl_file.save({1,2,3,4})asserttext_file.load()=='Hello, world!'assertjson_file.load()=={'a':1,'b':2}assertcsv_file.load()==[[1,2],[3,4]]assertpkl_file.load()=={1,2,3,4}Easily cache function results in a file@ez.autocachedefheavy_workload():...return{'a':1,'b':2}x=heavy_workload(save='foo.json')# Save result after calculatingx=heavy_workload(load='foo.json')# Load result without calculatingCapture all args passed to a function in a dict@ez.allargsdeffoo(a,b,c,allargs=None):print(allargs)returna+b+cfoo(1,2,3)# Prints {'a': 1, 'b': 2, 'c': 3}Automatically fill parameters by default with object attributes@dc.dataclassclassFoo:a:intb:intc:int@ez.update_settingsdefbar(self,a=None,b=None,c=None):returna+b+cfoo=Foo(0,1,2)print(foo.bar(5))# Prints 8Replace dataclass attributes by mutation with type hinting@dc.dataclassclassFoo:a:intb:intc:intfoo=Foo(0,1,2)ez.replace(foo,b=3,c=5)print(foo)# Prints Foo(a=0, b=3, c=5)withez.replace(foo,a=2):print(foo)# Prints Foo(a=2, b=3, c=5)print(foo)# Prints Foo(a=0, b=3, c=5)Bind arguments (functools.partial) with type hintingdeffoo(a:int,b:int,c:int):returna+b+cbar=ez.bind(foo)(a=1,b=2)print(bar(c=3))# Prints 6Easy notification emailsez.email('recipient@gmail.com','Subject Line',"""Body of email.""",)To use, create a file ~/.pw/gmail.json (easiest to use an app password using gmail).{
    "smtp_server": "smtp.gmail.com",
    "smtp_port": 587,
    "sender_email": "address@gmail.com",
    "sender_password": "app_password"
}Automatically generate human-readable names for objectsprint(ez.denominate())# Prints a cool name like "DaringBespin"Automatically generate a short-ish UUID (12 chars)print(ez.uuid())# Prints something like "A5_H2ka4f33S"Shushes stdout and stderrwithez.shush():print('This will not print.')Quick hacky way to run sequential testswithcheck("My first test"):x=[1,2,3]assertx[0]==1withcheck("My second test"):x[1]=4assertsum(x)==8Print-style debugging that keeps variables from the previous runKind of like if jupyter notebook had a baby with using a bunch of print statements to debug code.data=load_data_for_a_long_time()ez.explore()# Prints nearby variables and pauses executionprocess_data()# will not run yetAfter moving theexplore()call and hitting enter...data=load_data_for_a_long_time()# will not run againprocess_data()# will run nowez.explore()# Prints nearby variables and pauses executionDataframes but with type hinting@dc.dataclassclassFoo(ez.Table):id:ez.ColID=Nonename:ez.ColStr=Noneage:ez.ColInt=Nonetable=Foo.of([['1','Alice',20],['2','Bob',21],['3','Charlie',22],])forrowintable:print(row().name)# Type hinted. Prints Alice, Bob, Charlieprint(table)Foo Table: 3 cols x 3 rows
id|name   |age
--|-------|---
1 |Alice  |20 
2 |Bob    |21 
3 |Charlie|22
Package: ezQpy
中科院量子创新院量子计算云平台新机内测SDK使用说明把大象装冰箱里分三步:把冰箱门打开把大象推进去把冰箱门关上运行量子程序也只分三步:写量子程序(此处必须要省略好几万字)使用Python调用量子计算云平台SDK，将量子线路提交到量子计算机。等待并回读线路运行结果，进行自己的分析使用。中科院量子创新院量子计算云平台, 2023年4月14日开放新机内测，官方网址：https://quantumcomputer.ac.cn如需申请新量子计算机使用权限，可以参考这里本地快速安装SDK环境，请使用如下指令：pipinstall--upgradeezQpy-ihttps://pypi.tuna.tsinghua.edu.cn/simple因近期内测调整较快，如遇到原有程序运行报错，或无法提交线路等问题，请及时联系官方人员或用以下指令更新SDK库。同理，近期依赖关系有可能列的不全，用户可以根据报错提示来进行安装。如遇国内源暂未同步，请强行指定国外原进行更新安装-ihttps://pypi.org/simple在云平台网站提供的jupyternotebook环境Tutorial目录下，可以得到可互动执行的例子程序，复制到个人目录后，可以快速运行。本文档仅供2023年4月14日，中科院量子创新院量子计算云平台新量子计算内测，新SDK使用说明查询。
Package: ez-qt
🌴 EZ QtEZ Qt is a simple collection of helper functions for PySide/PyQt widgets.Installationpip install ez-qtSetting themes for your appYou can useapp_colorsto style the colors of your app. The accent colors can be set as either aQColor, or you can useez_qt.constants.AccentColorsConstantsYou can use the short notationkto use the constants in this package.importez_qtmy_background_color=ez_qt.k.BackgroundColors.dark_grayVarious ExamplesimportsysfromPySide6.QtWidgetsimport*importez_qtclassForm(QDialog):def__init__(self,parent=None):super().__init__(parent)self.setWindowTitle("EZ Qt")self.setMinimumWidth(400)self.setMinimumHeight(300)self.layout=QVBoxLayout()# make a combo boxself.cb_items=QComboBox()# make a list to add to our combo boxeuropean=["Stockholm","Paris","Rome"]ez_qt.combo_box.add_items(self.cb_items,european)# let's add some more, but without any duplicatesentire_world=["New York","Tokyo","Toronto","Paris","Brussels"]ez_qt.combo_box.add_items(self.cb_items,entire_world,duplicates_allowed=False)# let's add the continents as a stringcontinents="Europe, America, Africa, Oceania"ez_qt.combo_box.add_items(self.cb_items,continents,string_split_character=",")# let's set the combo box to "Toronto"ez_qt.combo_box.set_to_item(self.cb_items,"Toronto")# let's gather everything in the combo box as a list to use laterall_geography=ez_qt.combo_box.get_all_items(self.cb_items)# adding a list widgetself.lw_items=QListWidget()# Let's add the list we gathered earlier and add it to the list widgetez_qt.list_widget.add_items(self.lw_items,items=all_geography)# Now let's add a button that removes the selected item from the listwidget# It will then also update our combo box to reflect the same updateself.btn_remove_selected=QPushButton("Remove selected item")self.btn_remove_selected.clicked.connect(self.remove_and_update)self.layout.addWidget(self.cb_items)# adding a horizontal lineself.layout.addWidget(ez_qt.general.QHLine())self.layout.addWidget(self.lw_items)self.layout.addWidget(self.btn_remove_selected)self.setLayout(self.layout)defremove_and_update(self):# first remove the selected itemsez_qt.list_widget.remove_items(self.lw_items,selected=True)# then get the remaining items as a listlistwidget_items=ez_qt.list_widget.get_all_items(self.lw_items)# and update the comboboxez_qt.combo_box.add_items(self.cb_items,items=listwidget_items,clear=True)if__name__=='__main__':app=QApplication(sys.argv)# set the colors for our app# ez_qt.app_colors.set_medium_theme(app, accent_color=ez_qt.k.AccentColors.medium_pink)ez_qt.app_colors.set_dark_theme(app,accent_color=ez_qt.k.AccentColors.medium_pink)form=Form()form.show()sys.exit(app.exec_())
Package: ez-query
Ez-QuerySQL Query Generator Powered by ChatGPTEz_query allows you to generate sql queries using ChatGPT with the added benefit of retrieving your table schemas for you.ChatGPT is capable of helping you write SQL queries but only if you provide it your table schemas first. This would mean you have to retrieve them youself manually and enter them into ChatGPT. Doing this multiple times is tedious and time-consuming.Ez_query makes the process of retrieving your table schemas extremely simple and allows you to do this all in the terminal.Installationpipinstallez_queryUsageez_query-h
ez_query--openai_api_keysk-fake-key--db_host=localhost--db_user=root--db_pass=root--db_name=employees
Package: ezqueue
ezqueueZero dependency in-memory queueInstallation$pipinstall-ihttps://test.pypi.org/simple/ezqueueFeaturesTODODependenciesTODOUsageTODODocumentationThe official documentation is hosted on Read the Docs:https://ezqueue.readthedocs.io/en/latest/ContributorsWe welcome and recognize all contributions. You can see a list of current contributors in thecontributors tab.CreditsThis package was created with Cookiecutter and the UBC-MDS/cookiecutter-ubc-mds project template, modified from thepyOpenSci/cookiecutter-pyopensciproject template and theaudreyr/cookiecutter-pypackage.
Package: ezra-search
Ezra 聖經語意搜尋 - Semantic Search Engine for Chinese Bible應用語意搜尋技術的聖經經文搜尋器，通過新型的自然語言處理技術，了解字詞的意思來進行搜尋。即使經文內詞彙的字眼不一樣，只要意思相近，也有機會被搜尋出來。Semantic search engine for Chinese Bible, applying state-of-the-art natural
language processing techniques, which is able to search for relevant biblical text
by the meaning of search keywords.搜尋「喜樂 事奉」的結果：安裝系統需求：Python 3.8或以上（較低版本或許也可以，但沒有詳細測試）使用pip安裝：pip install ezra-search手動安裝：詳細步驟用法Python module>>> import ezra
>>> results = ezra.search("喜樂 事奉", top_k=3)
....
>>> for r in results:
...     print(r.to_dict())
... 
{'text': '所以，弟兄們，我以神的慈悲勸你們，將身體獻上，當作活祭，是聖潔的，是神所喜悅的；你們如此事奉乃是理所當然的。', 'ref': {'book': 'rom', 'chap': 12, 'vers': 1}, 'score': 1.7845185866114202, 'kw_scores': {'喜悅': 0.78451858661142, '事奉': 1.0}}
{'text': '「因為你富有的時候，不歡心樂意地事奉耶和華─你的神，', 'ref': {'book': 'deut', 'chap': 28, 'vers': 47}, 'score': 1.609989717447291, 'kw_scores': {'歡心': 0.609989717447291, '事奉': 1.0}}
{'text': '希該喜悅以斯帖，就恩待她，急忙給她需用的香品和她所當得的分，又派所當得的七個宮女服事她，使她和她的宮女搬入女院上好的房屋。', 'ref': {'book': 'esth', 'chap': 2, 'vers': 9}, 'score': 1.580993769747976, 'kw_scores': {'喜悅': 0.78451858661142, '服事': 0.7964751831365557}}Web App自帶簡單的 Web 介面：安裝後可以flask或gunicorn直接起動，但目前不支援 multiprocessing/multithreadingflaskFLASK_APP=ezra flask run --without-threadsgunicorn（需另行安裝）gunicorn --workers=1 --threads=1 'ezra:create_app()'數據來源和合本經文、人名和地名資料來自「信望愛信仰與聖經資源中心」：https://bible.fhl.net/public。語意模型採用了ConceptNet Numberbatch的中文詞彙部分，由Luminoso Technologies, Inc.以CC-By-SA 4.0條款授權。版權相關項目以GNU AGPLv3條款授權，
基本上是自由使用、分發和修改，但修改後發佈的話煩請列明改動。Ezra 聖經語意搜尋，應用語意模型的聖經經文搜尋器。Copyright (C) 2021 Ken HungThis program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.You should have received a copy of the GNU Affero General Public License
along with this program.  If not, seehttps://www.gnu.org/licenses/.This work includes data from ConceptNet 5, which was compiled by the
Commonsense Computing Initiative. ConceptNet 5 is freely available under
the Creative Commons Attribution-ShareAlike license (CC-By-SA 4.0) fromhttp://conceptnet.io.The included data was created by contributors to Commonsense Computing
projects, contributors to Wikimedia projects, Games with a Purpose,
Princeton University's WordNet, DBPedia, Unicode, Jim Breen, MDBG, and
Cycorp's OpenCyc.
Package: ezrepl
EZREPL (Python REPL Maker)DescriptionA simple REPL maker. For python, made in python. Right now you can make a simple REPL and parse it by making a evaluator class. You can also hook up a HelpMenu class to the repl.PrerequisitesRequirementsInstallationpip3 install ezreplContributingComing SoonLicenseMIT LicenseHere.FunctionalitySimple Replimport ezrepl

class MyRepl(ezrepl.Repl):
    def evaluator(self, ui):
        if ui == "hello":
            print("sup")

app = MyRepl(prefix="Hi: ", breaker="quit")
app.mainloop()
Package: ezrequest
ezrequestezrequest (Easy Request): A wrapper class around the famous request library, making certain use cases easier.DocumentationClickherefor the documentation or from a command prompt
switch todocsfolder and issue:makehtmlNOTE:prior to issuingmake htmlyou could issue:condainstall--filerequirements.txtto install the necessary requirements. Note that this is refering to therequirements.txtthat exists indocsfolder.InstallationUsingpipWithin a command prompt terminal, issue:pipinstallezrequest
Package: ezrpc
ezrpcEasy to use ZeroMQ based RPC library.Installpip install ezrpcQuickstartStep 1Create a Server# server.pyfromezrpcimportServer# By default, the server binds to all available interfacess=Server(server_port=5000,client_port=5001)s.start()Run this with:pythonserver.pyStep 2Create a Worker# worker.pyfromezrpcimportRegistry,ServerWorkerregistry=Registry()@registry.methoddefadd(a,b):returna+b@registry.methoddefmultiply(a,b):returna*b# Point the worker to the Server's IPw=ServerWorker(sys.argv[1],registry,"tcp://127.0.0.1:5000")w.run()Run as many workers as your server can handle:pythonworker.pyworker1pythonworker.pyworker2pythonworker.pyworker3Workers are elastic, i.e. you can start and stop them at will and clients will continue to be served.Step 3Create a Client# client.pyfromezrpcimportClient# Point the client to the Server's IP# timeout (millis) is optional, default is 5 secondsc=Client('tcp://127.0.0.1:5001',timeout=1000)foriinrange(1,11):res=c.ask('add',i,1)print'Response:%s'%resc._disconnect()Run the clientpythonclient.py
Package: ezs3
ezS3This library provides abstractions overboto3to easily deal with S3 buckets.Usagefromezs3importS3# be sure to have set AWS_ACCESS_KEY_ID and# AWS_SECRET_ACCESS_KEY env variables.s3=S3(bucket_name="some_bucket")# or load credentials from file.s3=S3.from_credentials(bucket_name="some_bucket")# upload everything in `./data` to `bucket_name://data/input`, imitating the# directory structure. the directory `data` itself is not copied.# these are equivalent:#   s3.upload("./data", "data/input")#   s3.upload("./data/", "data/input/")s3.upload("./data/","data/input")# upload `/tmp/my_file` to `bucket_name://data/my_file`.s3.upload("/tmp/my_file","data/")# download everything under `bucket_name://data/input` into `./data2`,# imitating the prefix structure.s3.download("data/input","./data2/")# download `bucket_name://data/my_file` into `/tmp`.s3.download("data/my_file","/tmp/")# same as above, but file is renamed to `my_file2`.s3.download("data/my_file","/tmp/my_file2")# remove files.s3.remove(*s3.list_keys("data/"))
Package: ezsaver
ezsaverLightweight tool to simplify saving/loading stuff in Jupyter notebooks.InstallationInstall with pippip install ezsaverUsageImport ezsaver asez, and useez.save()to save data. It will save objects of any complexity like tensorflow models, multidimensional numpy arrays, etc. Just feed it your filepath and the names of all the variables you want to save as arguments:import ezsaver as ez

data1 = 2
data2 = np.random.random(size=(2, 4))
ez.save(filepath, data1, data2)To load the data later, useez.load(), giving it the filepath as an argument. It returns a dict, where the keys are the names of the original variables. If you forget what you named a variable, just viewloaded_data.keys()to see them all.:loaded_data = ez.load(filepath)

# keys are same name as original variables
data1 = saved_data['data1']
data2 = saved_data['data2']If you have a feature request or problem, please open an issue. Note because of complexities of Python, ezsave does not work if you are coding directly from the command line .AcknowledgmentsPowered by thejoblibandvarnamelibraries.Thanks topwwang(developer of varname) for help debugging the earliest iteration.Developed with support from NIH Bioinformatics and NIEHS Neurobehavioral Core.
Package: ezserialize
ezserialize 1.0An easy to use python json serializer and deserializer for custom objects using similar syntax to dataclassesInstallOn the terminal, type the following command:pip install ezserializeUsage# Import ezserializefromezserializeimportserializable,serialize,deserialize,List,pretty_print# Use your IDE to inspect the rest of the functions which are similar to the ones imported# Tell ezserialize which objects you want to serialize. Each attribute must be serializable aswell@serializableclassPet:pet_type:strname:strage:intweight:float@serializableclassPerson:name:strage:intprofession:strpets:List(Pet)# When you use a default value, the type hint can be avoided, except for lists. Always use ezserialize.List and not 'list' for type hinting.# Create your object. The __init__ method is automatically implemented, and use keyword argumentsperson=Person(name="John",age=19,profession="vet",pets=[Pet(pet_type="cat",name="luna",age=6,weight=2.5,),])# Serialize your object to make it a JSON dict. You can then save it to a file using ezserialize.save() or manually dumping it using builtins.jsonserialized_person=serialize(person)# When you need your person back, use deserialize with the JSON object and the type you want backdeserialized_person=deserialize(serialized_person,Person)# When you print the person (using pretty_print/(pretty_format for the string alone)) person and deserialized_person should look the sameprint("Normal:")pretty_print(person)print("Deserialized:")pretty_print(deserialized_person)
Package: ezsession
ezsessionA small useful Python module to abstract away the common auth header methods used by different software vendors.  The output is a requests session with the authentication headers built in.pip install ezsessionAuth Types and Required Inputsoauth-auth_uri,client_id,client_secret,audienceoauth_basic-auth_uri,username,passwordoauth_password-auth_uri,username,passwordbasic-username,password,auth_uri(optional)bearer-api_keyApiToken-api_keydell-auth_uri,client_id,client_secretExamplesExample usage for getting a Datto RMM session:fromezsessionimportget_sessiondefdatto_rmm_session(api_key,api_secret,server):base_uri=f"https://{server}-api.centrastage.net"auth={"type":"oauth_basic","auth_uri":f"{base_uri}/auth/oauth/token","username":api_key,"password":api_secret,"server":server,}returnget_session(auth),base_uriExample to initialize a Datto RMM session then get account variables.drmm_user="Your Datto RMM API Key"drmm_pass="Your Datto RMM API Secret"drmm_server="merlot"# Change to your Datto RMM server.session,base_uri=datto_rmm_auth(drmm_user,drmm_pass,drmm_server)response=session.get(f"{base_uri}/api/v2/account/variables")variables=response.json()["variables"]
Package: ez_setup
ez_setupProblem:setup.pyof several Python projects blindly import the
setuptools bootstrap moduleez_setup.pywithout realizing that it is usually
not installed in the user’s machine.This causes much trouble.Workaround: Includeez_setup.py(anddistribute_setup.py) as a
installable Python package so users can doeasy_install ez_setup troublesome_packageas a workaround.Note: Theez_setup.pyfile being distributed is simply a copy ofdistribute_setup.pyfrom theDistributeproject (a setuptools fork); this is
to remain compatible with several Python distributors opting to use Distribute
instead of Setuptools – examples: Debian, ActiveState, and so on.CreditsDistributemodern-package-templateNews0.9Release date: 11-Nov-2010Initial release
Package: ezsgame
EZSGAMEezsgame is a library that aims to make the process of creating and manipulating 2D graphics or game development simple, easy, fun, and comfortable as possible for the user.InstalationpipinstallezsgameManual installDownload ezsgame.ziphereClone the repositoryhereSamplewindow=Window()# current count valuecurrent_value=[0]# We use a list so the value can be modified from other scopescontainer=Rect(Pos("center","center"),Size("30%","2/4"),styles=Styles(color="white",stroke=1))counter_text=Text(f"Count is{current_value[0]}",23,Pos(0,0),parent=container).center_at()# This method centers the objects inside it's parent# Let's make buttons to modify the countincrease_button=Rect(pos=Pos("right-center","center"),size=Size(50,50),styles=Styles(border_radius=[5],color="green"),)# Lets add an event listerner to the button@add_event(event="click",object=increase_button)defincrease_count():# This method will only be called when `increase_button` is clickedcurrent_value[0]+=1# We also need to update the text in the countercounter_text.update(text=f"Count is{current_value[0]}")decrease_button=Rect(pos=Pos("left-center","center"),size=Size(50,50),styles=Styles(border_radius=[5],color="red"),)@add_event(event="click",object=decrease_button)defdecrease_count():# This method will only be called when `decrease_button` is clickedcurrent_value[0]-=1# We also need to update the text in the countercounter_text.update(text=f"Count is{current_value[0]}")# Group everthing so you don't have to call draw method one-by-onecounter=Group(container,counter_text,decrease_button,increase_button)whileTrue:window.check_events()window.fill("black")# Draw the countercounter.draw()window.update()
Package: ezslack
EzSlackEzSlack is a Python framework wrappingBolt for Pythonto provide useful utilities.Encapsule parsing low-level informationProvideHandlerclass to improve cohesionGet StartedfromezslackimportApp# Running over HTTPapp=App(token=SLACK_BOT_TOKEN,signing_secret=SLACK_SIGNING_SECRET)app.start(PORT)# Running in Socket Modeapp=App(token=SLACK_BOT_TOKEN)app.start_socket_mode(SLACK_APP_TOKEN)HandlerWhenever subclass ofHandleris defined, handler methods are registered inREGISTRIES. String arguments in handler decorator are automatically converted into regex pattern with anchors. Matched groups are passed to arguments and keyword arguments whether they are named.fromezslackimportHandler,messageclassMyHandler(Handler):@message("hello","hi")defgreet(self):self.ack()self.say(f"Nice to meet you <@{self.user_id}>",thread_ts=self.thread_ts,)@message(r"(?P<first>\w+)(?P<op>[+*])(?P<second>\w+)")defcalculate(self,first,second,op):ifop=="+":result=int(first)+int(second)else:result=int(first)*int(second)self.say(f"Result:{result}",thread_ts=self.thread_ts)Supported featuresRequests supported:ACTION,MESSAGE,VIEW_CLOSED,VIEW_SUBMISSIONEach request has an id such asaction_id,message.text,callback_id. When a request id matches handling method's regex pattern, handler is instantiated with the following context fields, then call the method.fieldtypedescriptioneventackAckSeeReference-clientWebClientSeeReference-respondRespondSeeReference-saySaySeeReference-channel_idOptional[str]Channel where the event was triggeredACTION,MESSAGEchannel_nameOptional[str]Channel where the event was triggeredMESSAGEmessage_tsOptional[str]Timestamp of the messageACTION,MESSAGEmetadataOptional[Metadata]Metadata of the messageACTIONprivate_metadataOptional[str]Private metadata of the viewVIEW_SUBMISSION,VIEW_CLOSEDrequest_idstrIdentifier such asaction_id,message.text,callback_idwhich is used to match handler-thread_tsOptional[str]Timestamp of the threadACTION,MESSAGEtrigger_idOptional[str]Trigger id from the eventACTIONuser_idOptional[str]User who triggers the event-user_nameOptional[str]User who triggers the eventACTION,VIEW_SUBMISSION,VIEW_CLOSEDbot_idOptional[str]Bot which triggers the eventMESSAGEview_stateOptional[ViewState]View state which has selected valuesVIEW_SUBMISSION,VIEW_CLOSED
Package: ezspot
# EZSpotEZSpot - the spot management tool help you to use AWS EC2 spot instances easily.## FeaturesStart workload as multi spot fleetsIf some of fleets can not start, the whole workload will rollback.Rollback will clean all resources which create by EZSpot.Support all AWS regions, including BJS and ZHY in China.Stop workload by terminate all spot fleets behind by workload tag.Auto associate EIP to all workload spot instance and manage EIP lifecycle.Log file output under ‘~/.ezspot/log’.Can get spot fleet run time and cost by status command.Can run workload by normal mode (spot fleets) or persistent (spot instances with block duration) or on-demand (on-demand ec2 instances).Clean all resources created by EZSpot in the history. (Since we already have rollback feature, this command would be only used when some untracked error happened).## Quick StartFirst, instance this library`bash $ sudo pip install ezspot `Second, config your aws AKSK`bash $ aws configure `If you are the first time to use AWS Spot Fleet, you need to open your console and get a AWS service role for spot fleet.Then, run`bash $ ezspot start `Run stop to close your workload`bash $ ezspot stop `Run status to check workload status, including cost and time (Only support normal mode)`bash $ ezspot status `Run clean to clean aws console useless resources (Created by EZSpot) if nessary`bash $ ezspot clean `You can also try more config setting by write it under ‘~/.ezspot/config’ or in command`text [default] wld_instance_type = [ c4.large , c4.xlarge ] ... `You can see the examples folder for more cases.Because we are still working on this project, you can contact us [david.wang@finishy.cn](mailto:david.wang@finishy.cn)## Docs[config](CONFIG.md)## TODO[ ] Fixed public IP and private IP[ ] Support ELB and other config for instances## Version0.0.6