Saravanan666/pypi-org huggingface dataset:
Package: easygTTS
py-easygTTSAsynchronous interface to aneasy-gttsserver written with aiohttp.One class currently exists, easygTTS.gtts, which takes 2 optional argsbase_url(url to a easy-gtts server) and session (aiohttp.ClientSession)ExamplesOne time useimporteasygTTSimportasyncioasyncdefmain():asyncwitheasygTTS.gtts()asgtts:hello_uk=awaitgtts.get(text="Hello World",lang="en-uk")hello_usa=awaitgtts.get(text="Hello World",lang="en-us")langs=awaitgtts.langs()withopen("Hello World (UK).mp3","wb")asf:f.write(hello_uk)withopen("Hello World (USA).mp3","wb")asf:f.write(hello_usa)print(f"Returned langs ={langs}")asyncio.run(main())Using a global sessionimporteasygTTSimportasyncioimportaiohttpasyncdefmain():session=aiohttp.ClientSession()gtts=easygTTS.gtts(session=session)hello=awaitgtts.get(text="Hello World")withopen("Hello.mp3","wb")asf:f.write(hello)# later in your codeextra=awaitgtts.get(text="even more to TTS")withopen("Extra.mp3","wb")asf:f.write(extra)# at the endawaitsession.close()asyncio.run(main())
Package: easy-gTTS
easy-gTTS-pyAsynchronous interface to aneasy-gttsserver written withaiohttp.ExamplesimportasynciofromeasygTTSimportAsyncEasyGTTSSessionasyncdefmain():asyncwithAsyncEasyGTTSSession("https://easy-gtts-api.dingus-server.regulad.xyz/")astext_to_speech:audio_bytes=awaittext_to_speech.synthesize("Hello, stinky world!")withopen("Hello_world.mp3","wb")asf:f.write(audio_bytes)asyncio.run(main())
Package: easygv
Define nodes and edges in an excel file and graph-style attributes in a yaml file with inheritence.Free software: MIT licenseDocumentation:https://easygv.readthedocs.io.FeaturesTODOCreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.v0.1.0 / 2017-09-07tests more robustMakefile: docs -> dont run apidoc as commandadd_edges now supports edge labels and classeseasygv: added and improved docstringssupports clustersload_graph_input: now recodes NaNs to “”configure flake8 ignores ignore flake8 D301 in certain functions flake8 ignore all E501, D413easygv.cli: removed unused importsinform that we only support py34 to py36Fleshed out usage.rstv0.0.2 / 2017-08-28docs/index.rst fixed title warningdelete cli.drawadd sphinx_rtd_theme as dev deptox.ini removed py2k added py36first minimally functional commitdocs/conf.py set run_apidoc module_pathran travis_pypi_setup.pyignore tmp/v0.0.1 (2017-08-25)Initial commits.
Package: easyhandle
easyhandleA lightweight python package for accessing handle services.InstallationThis python package can be installed usingpip.pip install easyhandleGetting StartedThis library provides different HandleClient classes (e.g. BasicAuthHandleClient), differing in the way authentication is handled.
All clients inherit from the super classHandleClient.Instantiating theclientobjectTo instantiate a client object either use its constructor:client = HandleClient('https://hdl.handle.net',
                      prefix='TEST',
                      verify=True)or the respective classmethodload_from_config:client = HandleClient.load_from_config({
    'handle_server_url': 'https://hdl.handle.net',
    'prefix': 'TEST',
    'HTTPS_verify': True
})UsageAll methods described below return the accordingResponseobject of the request submitted to the handle serverTo create a new handle entry (requires authentication) use theput_handlemethod, e.g.:client.put_handle({
    'handle': 'TEST/0aca26ca-016f-11eb-adc1-0242ac120002'
    'values': [
        {
            'index': 1,
            'type': 'URL',
            'data': {
                'format': 'string',
                'value': 'https://www.google.com'
        }
    ]
})To retrieve a handle record use theget_handlemethod, e.g.:client.get_handle('TEST/0aca26ca-016f-11eb-adc1-0242ac120002')To delete a handle record use thedelete_handlemethod, e.g.:client.delete_handle('TEST/0aca26ca-016f-11eb-adc1-0242ac120002')Available ClientsBasicAuthHandleClientRequired config properties:NameDescriptionDefaulthandle_server_urlbase url to the handle servicehttps://hdl.handle.netprefixhandle prefix used, when new PIDs are issuedHTTPS_verifydefines wehter the server certificate should be validatedTrueusernameusername used for basic authenticationpasswordpassword used for basic authentication
Package: easy-health-check
healthchecka very simple Django health check appeasy to useno migrationno extra dependency. only Django and Python 3.6+installpipinstallgit+https://github.com/ahmadly/healthcheck/archive/refs/heads/main.zipusageaddhealthchecktoINSTALLED_APPSinsettings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','healthcheck',]addhealthcheck.urlstourlpatternsinurls.pyurlpatterns=[...path('health/',include('healthcheck.urls')),...]settingHEALTHCHECKinsettings.pyHEALTH_CHECK_TOKEN=NoneHEALTH_CHECK_VIEW='healthcheck.views.HealthCheckView'HEALTH_CHECK_FAIL_STATUS_CODE=500HEALTH_CHECK_SUCCESS_STATUS_CODE=200HEALTH_CHECK_FORBIDDEN_STATUS_CODE=403HEALTH_CHECK=['healthcheck.checks.check_database_connection','healthcheck.checks.check_cache_connection','healthcheck.checks.check_internet_connection',]run server and go tohttp://localhost:8000/health/{"uuid":"8f45499108cf4407bd3533d08fe68b26","timestamp":"2023-01-20T16:25:51.374452+00:00","hostname":"Ahmads-MBP","total_checks":3,"failed_checks":0,"results":[{"check":"healthcheck.checks.check_database_connection","status":true,"message":"Database is reachable"},{"check":"healthcheck.checks.check_cache_connection","status":true,"message":"Cache is reachable"},{"check":"healthcheck.checks.check_internet_connection","status":true,"message":"Internet is reachable"}]}optionsHEALTH_CHECK_TOKENis optional, if you want to use token for health check, set it to a string.
setAuthorizationheader toBearer <HEALTH_CHECK_TOKEN>in request header.HEALTH_CHECK_VIEWis optional, if you want to use your own view, set it to a string. inherit
fromhealthcheck.views.HealthCheckViewHEALTH_CHECK_FAIL_STATUS_CODEis optional, if you want to use your own status code for fail, set it to an integer.HEALTH_CHECK_SUCCESS_STATUS_CODEis optional, if you want to use your own status code for success, set it to an
integer.HEALTH_CHECK_FORBIDDEN_STATUS_CODEis optional, if you want to use your own status code for forbidden, set it to an
integer.HEALTH_CHECKis optional, if you want to use your own checks, set it to a list of strings. each string is a path to
a function. the function should return a tuple of two items. the first item is a boolean, the second item is a string.
the boolean is the status of the check, the string is the message of the check.defcheck_database_connection()->tuple[bool,str]:"""check must return a tuple of (status, message)check must handle exceptions internallycheck must handle timeouts internally"""returnTrue,'Database is reachable'contributeif you have any idea, please open an issue or a pull request.todoadd more checksadd more testsadd documentationadd badgessetup release workflowsetup pypi.org
Package: easy-hello-print
这是个有趣的包，
输入语言，就能返回对应hello world的写法
比如：
ch=Choose()
ch.choose="c"
ch.print_data()result:
#include<stdio.h>
int main(void) {
printf("Hello World!
");
return 0;
}ch=Choose()
ch.choose="java"
ch.print_data()result:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Package: easyhist
Easy HistogramThis is a very small python package used to make histograms in python, and optionally plot them withmatplotlib. The underlying histogramming tool is fromnumpy. This provides a very handy wrappers around them to easily make common histograms in 1d and 2d and plot with nice labels.Installation$pipinstalleasyhistUsageYou can import the library and make histograms and plot them(optionally)importnumpyasnpimportmatplotlib.pyplotaspltimporteasyhistaseh# initialize datax=np.random.normal(0,1,10000)h=eh.Hist1D(x,bins='auto')The returned histogram object has a handyplotmethod which usesmatplotlibto plot the histogram.fig,ax=plt.subplots(1,1,figsize=(12,6))h.plot(ax)The histogram comes by default with error bars. Different keyword parameters can be passed to customise the histogram.fig,ax=plt.subplots(1,1,figsize=(12,6))h.plot(ax,steps=True,ebar=False,filled=True)Axes labels and titles can be passed to the plot function.fig,ax=plt.subplots(1,1,figsize=(12,6))h.plot(ax,steps=True,ebar=False,filled=True,xlabel='x (unit)',ylabel='y(unit)',title='Test')Many times we have to fit gaussian to the histogram. An easyfit_normalmethod is provided with fitsnormal_distributionto the dateset.h_fited=h.fit_normal()Since the fitted object is an instance ofHist1Dwe can use theplotmethod as above to plot.fig,ax=plt.subplots(1,1,figsize=(12,6))h_fited.plot(ax,steps=True,ebar=False,filled=True,xlabel='x (unit)',ylabel='y(unit)',title='Test')2D HistogramThe library naturally hasHist2Dclass for 2D histogram.y=np.random.normal(2,3,10000)h2d=eh.Hist2D((x,y),bins=200)We can similarly plot the histogram.fig,ax=plt.subplots(1,1,figsize=(12,6))h2d.plot(ax,steps=True,ebar=False,filled=True,xlabel='x (unit)',ylabel='y(unit)',title='Test',cbarlabel='Colorbar',aspect='auto',cmin=1)There are a lot of othe nice useful features which can be found in the documentation.
Package: easy-hmac
HMAC Authentication (easy-hmac)A pure python package with no dependencies to easily handle the generation and verification of HMAC
signatures.InstallationThis package is hosted athttps://pypi.org/project/easy-hmac/UserIf you don't need to customise this package, just install the package fromhere.Ie.pip install easy-hmacDeveloperClone this repositoryBuild the package in your local environment.pipenvshell
pipenvinstallbuild
python-mbuildeasy-hmacInstall the easy-hmac package in editing mode by running:pipinstall-eeasy-hmacIf you want to make sure everything went well, try running the tests from
test_easy-hmacpythoneasy_hmac/test/test_easy-hmac.pyUsageeasy-hmacprovides two helper functions for HMAC authentication:generate_hmac_sha256- generates a SHA256 HMAC from two strings (a secret
key and a http message)verify_hmac- given an HMAC and a message, verifies if the HMAC generated by
the message is equal to the one passed as argumentStep 1Import the package.python import datetime from easy_hmac import core import hmac import hashlib  from base64 import b64encode from typing import Dict, AnyStep 2Create some vars we can use to generate and verify the HMAC.# fake identifier used to retrieve the secret from a db.secret="79721503-d1ef-46b7-b4ca-fec39ece902f"body='{"event": "lifecycle_updated", "payload": {"uuid": "cb8c79cd-8d79-4698-90a2-662eeab8da98", "timestamp": "2021-12-10T00:16:08.048401Z", "status": "PROCESSING"}}'method="POST"timestamp=datetime.datetime.now(datetime.UTC).strftime("%a,%d%b %Y %H:%M:%S GMT")path="/api/v1/my/path"# vars required for verifying the HMAC.# This step is a little long because we need to fake some parameters we'd usually already have.identifier="2e42a19593f047e080285e49864b0fb6"hash=hashlib.md5(body.encode())content_type="application/json"content_md5=b64encode(hash.digest()).decode('utf-8')message="\n".join([method,content_md5,content_type,timestamp,path])signature=hmac.new(bytes(secret,"latin-1"),bytes(message,"latin-1"),digestmod=hashlib.sha256)hmac_base64=b64encode(signature.digest()).decode("utf-8")headers={"Date":timestamp,"Content-MD5":content_md5,"Content-Type":content_type,"Authorization":"HMAC{}:{}".format(identifier,hmac_base64),}request={"method":method,"body":body,"path":path,"headers":headers}Step 3Create and verify the signature.result_digest = core.generate_hmac_sha256(secret, method, body, path, timestamp)
actual_signature = b64encode(result_digest).decode()
expected_signature = "d8laojz+oDCPizTL1a401mHq5IpR1A9f9QK3+RQ/6hA="

core.verify_hmac(secret, hmac_base64, headers["Content-MD5"], body.encode(), headers["Date"], headers["Content-Type"], path, method)

``

You can raise an exception that the request has expired by changing the timestamp to;
`timestamp = "Fri, 10 Dec 2021 00:16:57 GMT"`
and then rerunning the second set of vars above to generate an incoming request that is too old and verifying
the signature again.
Package: easy-i18n
easy_i18nan easy way come true i18n for python3基于 python3 实现语言本地化HomePage:https://github.com/ALawating-Rex/easy_i18ninstall - 安装pipinstalleasy_i18nusage - 使用举例fromeasy_i18n.timportAi18na_i18n=Ai18n(locales=["en","zh"],config={})t=a_i18n.translate# after import or define a_i18n and t# add translation dictionary manually.a_i18n.add(k="hi",message="hello by added")# print all the translation dictionaryprint(a_i18n.tm)# simple useprint(t("hi"))# simple use, translate "hi" to zhprint(t("hi",locale="zh"))# simple use, translate "hi" to default locale and find it in module userprint(t("hi",module="user"))# use when string need to formatprint(t("user{id}is deleted",locale="zh",module="user").format(id=1))# 版本>=1.2 增加的逻辑：要翻译的str 指定的语言(locale)不存在则认为指定的是默认语言，在当前语言找不到则原样返回（注：不会再去默认语言查找）# 要翻译的str 指定的模块(module)不存在则认为指定的是默认模块，在当前模块找不到，如果当前模块是默认模块则原样返回# 如果当前模块不是默认模块，那么会再重新去默认模块查找翻译，再找不到则原样返回print(t("hi_only_en",locale="zh"))print(t("only g has this",locale="zh",module="user"))print(t("both g and user module has this",locale="zh",module="user"))print(t("both g and user module has this",locale="zh",module="user1"))print(t("only en and g has this",locale="zh"))print(t("only en and g has this"))Ai18n 说明Ai18n 类接收两个参数：1.参数 locales 是list形式，指定了语言都使用哪几种。举例：["en", "zh"] 那么对应的会在config指定的目录下找 en.json 和 zh.json加载过来默认的 east_i18n 有目录 i18n 可供参考2.参数 config 是dict形式，你可以指定后覆盖默认的 config值：:load_path - where to find translate files（default is : i18n）
:default_locale - default locale（default is : en）
:default_module - default module（default is : g）
:default_encoding - default encoding（default is : UTF-8）config 说明config使用举例：config={"load_path":"/locales",# 指定在 /locales 下找对应的翻译 json文件"default_module":"global",# 指定默认的全局模块，你可以为比如用户模块，订单模块单独设置翻译，如果不指定 module 则会去全局模块查找。}a_i18n=Ai18n(locales=["en","zh"],config=config)NOTE 注意**NOTE:** 
for example your locale is en , define load_path as a absolutely path is recommended,
create an en.json in this path. the content for example is: (default_module should equal g)
    {
      "g": {
        "hi": "hello world",
        "test": "test 1"
      },
      "user": {
        "hi": "user:hello world",
        "user {id} is deleted": "user {id} is deleted"
      }
    }

比如上述例子指定 load_path 为 /locales 且 Ai18n(locales=["en", "zh"], config=config)  
那么要提前在 /locales 下 创建 en.json 和 zh.json  
json内容参考上述例子即可
Package: easyib
“Logo for ‘EasyIB’” according to MidjourneyEasyIB is an unofficial python wrapper forInteractive Brokers Client Portal Web API. The motivation for the project was to build a Python wrapper that can run on Linux/cloud environments. Thus, Client Portal API was preferred over Trader Workstation (TWS) API.Please seehttps://easyib.readthedocs.iofor the full documentation.FeaturesNotable functionality includes:Pull account info, portfolio, cash balance, the net valuePull historical market dataSubmit, modify, cancel ordersGet order status, list of live ordersPing (tickle) server, get authentication status, re-authenticateHow to installEasyIB assumes a gateway session is active and authenticated.
Follow instructions athttps://interactivebrokers.github.io/cpwebapi/for authentication.
A custom package such asVoyz/IBeamcan also be used for setting up an active session.
Part Time Larry has an excellent youtube tutorial on this topic:https://www.youtube.com/watch?v=O1OhiiCx6Ho.EasyIB was developed under the Voyz/Ibeam docker image environment.Once a gateway session is running,pipcommand can be used to install EasyIB:pipinstalleasyibQuick startHistorical dataimporteasyibib=easyib.REST()# default parameters: url="https://localhost:5000", ssl=Falsebars=ib.get_bars("AAPL",period="1w",bar="1d")print(bars)Submitting an orderlist_of_orders=[{"conid":ib.get_conid("AAPL"),"orderType":"MKT","side":"BUY","quantity":7,"tif":"GTC",}]order=ib.submit_orders(list_of_orders)print(order)ReferenceFor the complete reference, please visithttps://easyib.readthedocs.io/en/latest/reference.html.RESTBy default, EasyIB assumes the gateway session is open athttps://localhost:5000without an SSL certificate. A custom URL and SSL certificate can be set by:ib=easyib.REST(url="https://localhost:5000",ssl=False)API REST MethodsDocumentation of available functions is athttps://easyib.readthedocs.io/en/latest/reference.html.See the official documentation of the End Point athttps://www.interactivebrokers.com/api/doc.html.REST MethodEnd PointResultget_accounts()Get portfolio/accountslistswitch_account(accountId: str)Postiserver/account/{accountId}dictget_cash()Getportfolio/{accountId}/ledgerfloatget_netvalue()Getportfolio/{accountId}/ledgerfloatget_conid(symbol: str, instrument_filters: Dict = None, contract_filters: Dict = {"isUS": True})Get trsv/stocksintget_fut_conids(symbol: str)Get trsv/futureslistget_portfolio()Getportfolio/{accountId}/positions/0dictreply_yes(id: str)Postiserver/reply/{id}dictsubmit_orders(list_of_orders: list, reply_yes=True)Postiserver/account/{acountId}/ordersdictget_order(orderId: str)Get iserver/account/order/satus/dictget_live_orders(filters=None)Get iserver/account/ordersdictcancel_order(orderId: str)Deleteiserver/account/{accountId}/order/{orderId}dictmodify_order(orderId=None, order=None, reply_yes=True)Postiserver/account/{accountId}/order/{orderId}dictget_bars(symbol: str,period="1w",bar="1d",outsideRth=False,conid="default")Get iserver/marketdata/historydictping_server()Post tickledictget_auth_status()Post iserver/auth/statusdictre_authenticate()Post iserver/reauthenticateNonelog_out()Post logoutNone
Package: easy-icm-runner
easy-icm-runner :rocket:Simplified Job Execution for Varicent's ICM v10 using REST APIsInstallation:pip install easy-icm-runnerUsage:This project can be used as a module within your custom program, or standalone from the command line.  Below we demonstrate sample usage:PythonThe snippet below demonstrates running a jobsyncronouslyin python code.  Such a method will be desirable for incorporating an ICM job step into a more complex application, or such tasks as integrating your own secret and configuration management.fromicm_runnerimportRunnerjob_runner=Runner()# get an authentication token to use in remaining operationsjob_runner.get_token(username='icm username',password='icm password')# start jobactivity_id=job_runner.run_process_by_name(model_name='model name',process_name='process name',follow=True)# poll for status until completejob_runner.monitor_activity(model_name='model name',activity_id=activity_id,interval_mins=0.1)Command LineFor those of you who are not budding pythonistas, or just looking for a simple solution to job scheduling we also allow a command line entrypoint.$ python -m icm_runner -u "icm username" -p "icm password" -m "model name" -j "process name"
Package: easyidp
EasyIDP (Easy Intermediate Data Processor), A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications. It provides the following functions:Backward Projection ROI to original images (Backward Projector).Crop ROI on GeoTiff Maps (DOM & DSM) and Point Cloud (ROI Cropper).Save cropped results to corresponding files (ROI Saver).This project tried to use packges based on pure-python, instead of installing some heavy packages (Open3D, OpenCV) and hard to install packages (GDAL dependices) for one or two individual functions. This may cause efficiency loss and differences in coding habit.DocumentationPlease checkOfficial Documents(中文|日本語(翻訳募集)) for full documentations. And please also use theGithub Discussionwhen you meet any problems.ReferencesPlease cite this paper if this project helps you：@Article{wang_easyidp_2021,
AUTHOR ={Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
TITLE ={EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
JOURNAL ={Remote Sensing},
VOLUME ={13},
YEAR ={2021},
NUMBER ={13},
ARTICLE-NUMBER ={2622},
URL ={https://www.mdpi.com/2072-4292/13/13/2622},
ISSN ={2072-4292},
DOI ={10.3390/rs13132622}}We also thanks the benefits from the following open source projects:package main (for users)numpy:https://numpy.org/matplotlib:https://matplotlib.org/scikit-image:https://github.com/scikit-image/scikit-imagepyproj:https://github.com/pyproj4/pyprojtifffile:https://github.com/cgohlke/tifffileimagecodecs:https://github.com/cgohlke/imagecodecsshapely:https://github.com/shapely/shapelylaspy/lasrs/lasio:https://github.com/laspy/laspyplyfile:https://github.com/dranjan/python-plyfilepyshp:https://github.com/GeospatialPython/pyshptabulate:https://github.com/astanin/python-tabulatetqdm:https://github.com/tqdm/tqdmgdown:https://github.com/wkentaro/gdownpackage documentation (for developers)sphinx:https://github.com/sphinx-doc/sphinxnbsphinx:https://github.com/spatialaudio/nbsphinxsphinx-gallery:https://github.com/sphinx-gallery/sphinx-gallerysphinx-inline-tabs:https://github.com/pradyunsg/sphinx-inline-tabssphinx-intl:https://github.com/sphinx-doc/sphinx-intlsphinx-rtc-theme:https://github.com/readthedocs/sphinx_rtd_themefuro:https://github.com/pradyunsg/furopackage testing and releasing (for developers)pytest:https://github.com/pytest-dev/pytestpackaging:https://github.com/pypa/packagingwheel:https://github.com/pypa/wheelThis project was partially funded by:the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;the SICORP Program JPMJSC16H2;CREST Programs JPMJCR16O2 and JPMJCR16O1;the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);the National Natural Science Foundation of China U19A2061.
Package: easyimages
# easyimages![Build Test Release](https://github.com/i008/easyimages/workflows/Build%20Test%20Release/badge.svg)# InfoThis small but handy package solves several issues i had while working with images and image datasets - especially in the context
of exploring datsets, inspecting and shareing the results.
Keep in mind that his package is not directly related to the training process and loading
image data, for that i found pytorch dataloading patterns to work very well.# Installation`bash pip install easyimages `FeaturesSimple APIEasy image explorationInteligent behaviour based on execution context (terminal, jupyter etc)Lazy evaluationLoading images from many different sources (filesystem, pytorch, numpy, web-urls, etc)Storing annotations (tags, bounding boxes) allong the image in the same objectVisualizing labels (drawing boxes and drawing the label onto the image)Visualizing images as Grids (ImagesLists)Visualizing huge amounts of images at once (by leveraging fast html rendering)Displaying images while working in jupyter notebookDisplaying images inline in console mode (iterm)CreditsMAP calculation code comes from:https://github.com/MathGaron/mean_average_precisionHistory0.1.0 (2018-08-24)First release on PyPI.
Package: easy_import
easy_importPython imports made easy! Import any module or package from anywhere - as though it was in your current working directory.githubeasy_import on githubInstallationRequires python 3.pipinstalleasy_importUsage"""data_tools.py is a (fictious) module located....somwehere on your computer.But not in the current working directory.Directly trying to import it will raise an ImportError since its not visible.easy_import to the rescue!It will search the entire storage (or a given directory) for the module and make it visiblefor importing as though it was in the current working directory."""fromeasy_importimportEasyImportwithEasyImport("data_tools.py"):importdata_tools# etc"""Now we can use a function or class in data_tools.pye.g. :"""smoothed_data=data_tools.smooth(data)"""Since searching the entire storage is s l o w, the locations of searched itemsare cached to json files so the next time you run it, it will be super fast!Check out example.py in the repository for a runnable example and more details."""ContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.LicenseMIT