Saravanan666/pypi-org huggingface dataset:
Package: dingsda
DingsDa is a powerfuldeclarativeandsymmetricalparser and builder for binary data.
It is a fork of Construct 2.1, which removes the parser generator features, but adds preprocessing and XML de- and
encoding. It is build mainly with reverse engineering data formats in mind.Instead of writingimperative codeto parse a piece of data, you declaratively define adata structurethat describes your data. As this data structure is not code, you can use it in one direction toparsedata into Pythonic objects, and in the other direction, tobuildobjects into binary data.The library provides both simple, atomic constructs (such as integers of various sizes), as well as composite ones which allow you form hierarchical and sequential structures of increasing complexity. Construct featuresbit and byte granularity, easy debugging and testing, aneasy-to-extend subclass system, and lots of primitive constructs to make your work easier:Fields: raw bytes or numerical typesStructs and Sequences: combine simpler constructs into more complex onesBitwise: splitting bytes into bit-grained fieldsAdapters: change how data is representedArrays/Ranges: duplicate constructsMeta-constructs: use the context (history) to compute the size of dataIf/Switch: branch the computational path based on the contextOn-demand (lazy) parsing: read and parse only what you requirePointers: jump from here to there in the data streamTunneling: prefix data with a byte count or compress itExampleAStructis a collection of ordered, named fields:>>> format = Struct(
...     "signature" / Const(b"BMP"),
...     "width" / Int8ub,
...     "height" / Int8ub,
...     "pixels" / Array(this.width * this.height, Byte),
... )
>>> format.build(dict(width=3,height=2,pixels=[7,8,9,11,12,13]))
b'BMP\x03\x02\x07\x08\t\x0b\x0c\r'
>>> format.parse(b'BMP\x03\x02\x07\x08\t\x0b\x0c\r')
Container(signature=b'BMP')(width=3)(height=2)(pixels=[7, 8, 9, 11, 12, 13])ASequenceis a collection of ordered fields, and differs fromArrayandGreedyRangein that those two are homogenous:>>> format = Sequence(PascalString(Byte, "utf8"), GreedyRange(Byte))
>>> format.build([u"lalaland", [255,1,2]])
b'\nlalaland\xff\x01\x02'
>>> format.parse(b"\x004361789432197")
['', [52, 51, 54, 49, 55, 56, 57, 52, 51, 50, 49, 57, 55]]Most constructs can be build into XML and parsed back from XML:>>> s = Struct(
...    "a" / Int32ul,
...    "b" / Int32ul,
...    "s" / Struct(
...        "c" / Int32ul,
...        "d" / Int32ul,
...    ),
...    )
>>> data = {"a": 1, "b": 2, "s": {"c": 3, "d": 4}}
>>> xml = s.toET(obj=data, name="test")
>>> assert(ET.tostring(xml) == b'<test a="1" b="2"><s c="3" d="4" /></test>')>>> s = "test" / Struct(
...     "a" / Int32ul,
...     "b" / Int32ul,
... )
>>> xml = ET.fromstring(b'<test a="1" b="2" />')
>>> obj = s.fromET(xml=xml)
>>> assert(obj == {"a": 1, "b": 2})However some constructs, like Switch or FocusedSeq have some caveats,
because they use the XML tag name for identifying the corresponding construct.This is mainly build for easy and quick describing of datastructures with an
easy, human readable and changeable XML representation, rather than completeness of
all possible constructs.
Package: dingsdk
Ding SDK钉钉企业内部应用使用的钉钉SDK，为更贴合个人编码习惯，由个人自主开发和维护的钉钉SDK的 Python 模块。安装pipinstalldingsdk使用fromdingsdkimportDingSDKsdk=DingSDK()sdk.appkey='your appkey'sdk.agentid='your agentid'sdk.appsecret='your appsecret'sdk.access_token=sdk.get_token()# 获取企业内部应用的 AccessToken清洗审批实例fromdingsdk.utilsimportInstanceCleanerinstid="approval process instance id"instance=sdk.get_instance_detail(instid)cleaner=InstanceCleaner(instance)cleaner.cleaned_data# 已清洗的审批实例数据cleaner.cleaned_formvs# 已清洗的实例表单数据版本进程1.0.0_2023.2.2发布钉钉接口方法十四个，见接口检索；钉钉审批实例数据清洗，InstanceCleaner()；2.0.0_2023.3.8重构部分代码，使创建新接口变得容易且清晰;取消了部分接口的调用限制, 在方法内自动处理;将 InstanceCleaner 移动到 utils 包中;新增了钉钉接口方法，并创建了 DingSDK 文档说明进行接口检索;
Package: dingtalk
A sample project that exists as an aid to thePython Packaging User Guide’sTutorial on Packaging and Distributing
Projects.This projects does not aim to cover best practices for Python project
development as a whole. For example, it does not provide guidance or tool
recommendations for version control, documentation, or testing.This is the README file for the project.The file should use UTF-8 encoding and be written using ReStructured Text. It
will be used to generate the project webpage on PyPI and will be displayed as
the project homepage on common code-hosting services, and should be written for
that purpose.Typical contents for this file would include an overview of the project, basic
usage examples, etc. Generally, including the project changelog in here is not
a good idea, although a simple “What’s New” section for the most recent version
may be appropriate.
Package: dingtalk2
DingTalk2 介绍钉钉支持 Webhook 模式接入事件推送、机器人收消息以及卡片回调等开源协议: MIT license使用文档:https://dingtalk2.readthedocs.io.快速开始准备工作Python3 开发环境，https://www.python.org/钉钉机器人的 token快速开始指南1、安装 dingtalk2python-mpipinstalldingtalk22、使用 dingtalk2fromdingtalk2importdingtalkaccess='6eab6a1161ea33c2693aae53fe92c298469f685aed8261ffdfd15d2bcfcxxxxxxx'secret='SEC0ed50da84fca5e37491b032a660dcfd2fd6aef8e2dcb74caa39ddxxxxxxxxxx'client=dingtalk.DingTalk(access=access,secret=secret)client.text("hello")client.image(pic_url='http://uc-test-manage-00.umlife.net/jenkins/pic/flake8.png')技术支持可以搜索共创群，答疑交流。共创群ID：xxx （钉钉搜索群号入群）；也可以扫码入群：
Package: dingtalk-api
钉钉服务端 API特点兼容新旧 SDK采用与官方文档相同的组织结构丰富的注释和类型标注Pydantic 集成安装pipinstalldingtalk-api使用fromdingtalk_apiimportApiClientclient=ApiClient(CLIENT_ID,CLIENT_SECRET,)# 查询用户详情 旧版SDKresp=client.contact.user.queryDetails(userid)print(resp.model_dump())# 下载机器人接收消息的文件内容 新版SDKresp=client.im.robot.downloadMessageFiles(downloadCode,ROBOT_CODE)print(resp.model_dump())
Package: dingtalk-lite
#Dingtalk lite SDK
##A lite Dingtalk SDK to simplify sending message
#Example
###To send a message with markdown format:text = "### I am the header\n" + \
       "#### This is a test message, do not worry.\n" + \
       "![girl](https://c-ssl.duitang.com/uploads/item/201605/08/20160508134621_KjzNa.thumb.700_0.gif)\n" + \
       "1. This is the first line\n" + \
       "2. This is the second line\n"
token = 'your-dingtalk-robot-token'
client = Client("https://oapi.dingtalk.com/robot/send")
response = client.send_markdown(token, '[Ambari Alert]', text)###If you want to @ somebody:token = 'your-dingtalk-robot-token'
client = Client("https://oapi.dingtalk.com/robot/send")
at_mobiles = ['185xxxxxxxx', '137xxxxxxxx']
response = client.send_text(token, "[Ambari Alert] This is a test message, do not worry.", at_mobiles)###See client_test.py to get more usages
Package: dingtalk-log-handler
钉钉群告警Handler通过钉钉群机器人, 发送Python日志到钉钉群参考钉钉群机器人接口https://open.dingtalk.com/document/robots/custom-robot-access安装pip install dingtalk-log-handler打包python setup.py sdist参数webhook: webhook url for dingtalk open apikeyword: allowed message keyword, default 'alarm'secret: secret for dingtalk open apihostname: hostname for identify machine, default local ip addresstimeout: http request timeout, default 1 secondcert_verify: verify SSL certificates or not, default True使用示例importloggingimportlogging.configLOGGING={'version':1,'disable_existing_loggers':False,'formatters':{'verbose':{'format':'[%(levelname)s%(asctime)s%(name)s%(funcName)s%(lineno)d%(process)d]\t%(message)s'},},'handlers':{'dingtalk':{'class':'dingtalk_log_handler.DingTalkHandler','webhook':'https://oapi.dingtalk.com/robot/send?access_token=XXXXX',# 'secret': '',# 'keyword': '','formatter':'verbose','level':'ERROR',},'console':{'level':'INFO','class':'logging.StreamHandler','formatter':'verbose',},},'loggers':{'':{'handlers':['dingtalk','console'],'level':'INFO','propagate':False,},}}logging.config.dictConfig(LOGGING)logging.error('testing')
Package: dingTalk-notify-source
Sentry DingTalkSentry 集成钉钉机器人通知1、@具体的人员Requirmentssentry >= 20.12.1特性发送异常通知到钉钉支持钉钉机器人webhook设置关键字配置环境变量DINGTALK_WEBHOOK: Optional(string)DINGTALK_CUSTOM_KEYWORD: Optional(string)快速使用安装使用pip命令$pipinstallsentry-dingtalk-notify写入依赖文件onpremise-xxx/sentry/requirements.txt$echosentry-dingtalk-notify>>requirements.txt钉钉机器人配置钉钉机器人并拿到对应的 webhook, 可以对机器人设置 关键词、签名、IP限制配置在 Sentry 面板 Settings > Integrations 中找到 DingTalk 并配置 webhook、关键词等信息，添加项目，创建告警规则测试Enable PluginTest Plugin
Package: dingTalk-notify-to-people
Sentry DingTalkSentry 集成钉钉机器人通知1、@具体的人员Requirmentssentry >= 21.5.1特性发送异常通知到钉钉支持钉钉机器人webhook设置关键字配置环境变量DINGTALK_WEBHOOK: Optional(string)DINGTALK_CUSTOM_KEYWORD: Optional(string)快速使用安装使用pip命令$pipinstallsentry-dingtalk-notify写入依赖文件onpremise-xxx/sentry/requirements.txt$echosentry-dingtalk-notify>>requirements.txt钉钉机器人配置钉钉机器人并拿到对应的 webhook, 可以对机器人设置 关键词、签名、IP限制配置在 Sentry 面板 Settings > Integrations 中找到 DingTalk 并配置 webhook、关键词等信息，添加项目，创建告警规则测试Enable PluginTest Plugin
Package: dingtalk-sdk
钉钉开放平台第三方 Python SDK。【阅读文档】。功能特性企业内部开发接入api应用服务商（ISV）接入api安装目前 dingtalk-sdk 支持的 Python 环境有 2.7, 3.4, 3.5, 3.6 和 pypy。dingtalk-sdk 消息加解密同时兼容 cryptography 和 PyCrypto, 优先使用 cryptography 库。
可先自行安装 cryptography 或者 PyCrypto 库:# 安装 cryptography
pip install cryptography>=0.8.2
# 或者安装 PyCrypto
pip install pycrypto>=2.6.1为了简化安装过程，推荐使用 pip 进行安装pipinstalldingtalk-sdk# with cryptographypipinstalldingtalk-sdk[cryptography]# with pycryptopipinstalldingtalk-sdk[pycrypto]升级 dingtalk-sdk 到新版本:pip install -U dingtalk-sdk使用示例django 示例https://github.com/007gzs/dingtalk-django-example
Package: dingtalk-sdk-gmdzy2010
## 钉钉`非官方版`SDK[![PyPI](https://img.shields.io/pypi/v/dingtalk-sdk-gmdzy2010.svg)](https://pypi.org/project/dingtalk-sdk-gmdzy2010/)
[![Documentation Status](https://readthedocs.org/projects/dingtalk-sdk-gmdzy2010/badge/?version=latest)](https://dingtalk-sdk-gmdzy2010.readthedocs.io/zh/latest/?badge=latest)
[![Build Status](https://travis-ci.org/gmdzy2010/dingtalk_sdk_gmdzy2010.svg?branch=master)](https://travis-ci.org/gmdzy2010/dingtalk_sdk_gmdzy2010)使用文档：https://dingtalk-sdk-gmdzy2010.readthedocs.io/zh/latest/### 项目简介本SDK非官方提供，项目结构也很简单。官方只提供了JAVA，NODE.JS以及PHP版SDK，python版没有？恰好最近业务需要，遂准备给钉钉写一整套SDK，持续更新中。
Package: dingtalk-stream
DingTalk Stream Mode 介绍Python SDK for DingTalk Stream Mode API, Compared with the webhook mode, it is easier to access the DingTalk chatbot钉钉支持 Stream 模式接入事件推送、机器人收消息以及卡片回调，该 SDK 实现了 Stream 模式。相比 Webhook 模式，Stream 模式可以更简单的接入各类事件和回调。开发教程在教程文档中，你可以找到钉钉 Stream 模式的教程文档和示例代码。特别说明因拼写错误，从旧版本升级到 v0.13.0 时候，需要将 register_callback_hanlder 修改为 register_callback_handler参考资料Stream 模式说明教程文档常见问题Stream 模式共创群
Package: dingtalk-stream-wsproxy
DingTalk Stream Mode 介绍Python SDK for DingTalk Stream Mode API, Compared with the webhook mode, it is easier to access the DingTalk chatbot钉钉支持 Stream 模式接入事件推送、机器人收消息以及卡片回调，该 SDK 实现了 Stream 模式。相比 Webhook 模式，Stream 模式可以更简单的接入各类事件和回调。特别说明注意：因拼写错误，从旧版本升级到 v0.13.0 时候，需要将 register_callback_hanlder 修改为 register_callback_handler快速开始准备工作Python3 开发环境，https://www.python.org/钉钉开发者账号，具备创建企业内部应用的权限，详见成为钉钉开发者快速开始指南1、安装 dingtalk-streampip3installdingtalk-stream2、创建企业内部应用进入钉钉开发者后台，创建企业内部应用，获取ClientID（即 AppKey）和ClientSecret（ 即AppSecret）。发布应用：在开发者后台左侧导航中，点击“版本管理与发布”，点击“确认发布”，并在接下来的可见范围设置中，选择“全部员工”，或者按需选择部分员工。3、Stream 模式的机器人（可选）如果不需要使用机器人功能的话，可以不用创建。在应用管理的左侧导航中，选择“消息推送”，打开机器人能力，设置机器人基本信息。注意：消息接收模式中，选择 “Stream 模式”点击“点击调试”按钮，可以创建测试群进行测试。项目中提供了两个关于机器人的测试案例：3.1 CalcBot将用户输入的内容进行数学表达式计算，并以文本消息的方式返回计算结果。启动服务：cdexamples/calcbot
python3calcbot.py--client_id"put-your-client-id-here"--client_secret"put-your-client-secret-here"测试效果：3.2 CardBot接收用户输入，返回一张互动卡片，随后更新卡片的文本和图片内容。启动服务：cdexamples/cardbot
python3cardbot.py--client_id"put-your-client-id-here"--client_secret"put-your-client-secret-here"测试效果：事件订阅切换到 Stream 模式（可选）进入钉钉开发者后台，选择企业内部应用，在应用管理的左侧导航中，选择“事件与回调”。
“订阅管理”中，“推送方式”选项中，选择 “Stream 模式”，并保存技术支持点击链接，加入Stream模式共创群交流
Package: dingtalk-webhook
功能支持所有钉钉消息类型。支持加签的安全设置。Python版本Python 3.6+安装1.安装requests
pipinstallrequests2.安装该模块
pipinstalldingtalk-webhook使用importdingtalkaccess_token='xxxxxxx...xxx'# 创建webhook机器人时产生的access_tokensecret='SECxxxxxxx'# 如果安全设置没有勾选加签，可不用设置该参数dt=dingtalk.DingTalk(access_token=access_token,secret=secret)dt.send_text(text='测试消息',at_all=True)
Package: dingz
Python API for interacting withDingzdevices.This module is not official, developed, supported or endorsed by iolo AG or
myStrom AG. For questions and other inquiries, use the issue tracker in this
repository please.Without the support of iolo AG and myStrom AG it would have taken much longer
to create this module which is the base for the integration intoHome Assistant. Both companies have provided
and are still providing hardware, valuable feedback and advice. Their
continuous support make further development of this module possible.Seeapi.dingz.chfor the API details.LimitationsThis module is at the moment limited to consuming sensor data, device details,
device configurations and states.
The front LED can be controlled but buttons requires you to programm them by
yourself.No support for setting timers and schedules.RequirementsYou need to havePython 3installed.dingzdeviceNetwork connectionDevices connected to your networkYou need to know the IP address of the devices. Please consult your router
documentation to get this information or use thedingzCLI tool.InstallationThe package is available in thePython Package Index.$pipinstalldingzOn a Fedora-based system or on a CentOS/RHEL machine which has EPEL enabled.$sudodnf-yinstallpython3-dingzModule usageEvery unit has its own web interface:http://IP_ADDRESS.Seeexample.pyfor detail about module.How to operate shades / dimmersd=Dingz("ip_address_or_host")# Fetch config, this has to be done once to fetch all details about the shades/dimmersawaitd.get_devices_config()# Fetch the current state of the lights/versawaitd.get_state()# Get details about shadeshade_0=d.shades.get(0)print("Blinds:%sLamella:%s"%(shade_0.current_blind_level(),shade_0.current_lamella_level()))# Operate shadeshade_0.shade_down()# Turn on lightd.dimmers.get(2).turn_on(brightness_pct=70)CLI usageThe package contains a command-line tool which support some basic tasks.$dingzdiscoverLicensepython-dingzis licensed under ASL 2.0, for more details check LICENSE.
Package: dinja
Dinja:JinjaTool-KitDinjais a singleton class that provides decorators to create customfiltersandtagsfor Jinja templates. It also allows you to load these filters and tags into a Jinja environment.InstallpipinstalldinjaJinja2UsageLoadcustom filters and tags into a Jinja environment usingDinja.load.Create customfiltersusing the@Dinja.filterdecorator.Create customtagsusing the@Dinja.tagdecorator.Method:loadLoad custom filters and tags into a Jinja environment.Parameters:jinja_env(jinja2.Environment): The Jinja environment to load into.Examplefromjinja2importEnvironment,FileSystemLoaderfromdinjaimportDinjadinja=Dinja()jinja_env=Environment(loader=FileSystemLoader("./templates"))dinja.load(jinja_env)Decorator:filterDecorator to create custom filters for Jinja templates.Parameters:method(function): The filter function.is_safe(bool): Indicate whether the tag result is safe for HTML rendering (default:False).Usage:fromdinjaimportDinjadinja=Dinja()@dinja.filter# dinja.filter(is_safe=True)defmy_filter(value):return"Filtered: "+value.lower()<div>{{ "Some-Value" | my_filter }}</div>Returns:Filter: The wrapped filter function.Decorator:tagDecorator to create custom tags for Jinja templates.Parameters:method(function): The tag function.mode(str): Jinja tag's current mode, options: {simple,value,content} (default:simple).is_safe(bool): Indicate whether the tag result is safe for HTML rendering (default:False).Usage:fromdinjaimportDinjadinja=Dinja()@dinja.tag# dinja.tag(mode="value", is_safe=True)defsimple_tag():return"Simple Tag"@dinja.tag(mode="value")defmy_value_tag(value):return'<h1>'+value+'</h1>'@dinja.tag(mode="content")defmy_content_tag(content):returncontent<!-- @Example: { simple_tag }  -->{% simple_tag %}<!-- @Example: { my_value_tag }  -->{% my_value_tag "some_value" %}<!-- @Example: { my_content_tag }  -->{% my_content_tag %}<div>Custom Content</div>{% endmy_content_tag %}Returns:Extension: The custom Jinja2 extension class.
Package: dinja2
Jinja2 template backend for DjangoDocumentationThe full documentation is athttps://dinja2.readthedocs.io.QuickstartInstall Dinja2:pip install dinja2Add it to yourINSTALLED_APPS:INSTALLED_APPS=(...'dinja2.apps.Dinja2Config',...)Add Dinja2’s URL patterns:fromdinja2importurlsasdinja2_urlsurlpatterns=[...url(r'^',include(dinja2_urls)),...]FeaturesTODORunning TestsDoes the code actually work?source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ toxCreditsTools used in rendering this package:Cookiecuttercookiecutter-djangopackageHistory0.1.0 (2017-07-20)First release on PyPI.
Package: dinjector
Dependency InjectorDescriptionVery simple dependency injector for constructing application from a yaml file.InstallationThis project has an automated deployment to pypi, so only is needed to use pip command:>> pip install dinjectorThe injector needs a ConfigService class to get all application parameters. There is an implementation of it in projectconfig-srv. The dependency is optional and you can inject anyone which comply the ConfigService interface.UsageOnce you have installed it, you'll have access to a package calleddiwher you only have to importDependencyInjectorclass.The use of this library is by inheritance. If you want to create a Value Object you only have to inherit from a Value class. If you want to have an aggregate, inherit from a Aggregate class, if a service from a Service class.SupportSend any suggestion tosruiz@indoorclima.comorsalvador.ruiz.r@gmail.com. Any ideas or support is well recieved.RoadmapIncrement versioning when pushingIntegrate with gitlab continuous integration to publish to pypi as libraryImprove coverage rate to > 96%Improve usage documentation with sphinxUpload to readthedocsContributingState if you are open to contributions and what your requirements are for accepting them.LicenseThis is under LGPL lincense. You can use and modify this library. See details in [[LICENCE.txt]]Project statusIt is used in projects developed currently by the company IndoorClima.
Package: dinjo
DINJO Is Not Just an OptimizerDINJO Is Not Just An Optimizeris a Python framework designed for the optimization of initial value problems' parameters.Lets say you have some 'experimental' data of a state variableScorresponding to the initial value problemdS/dt = f(t, S; p), S(t_0) = f_0wherepis a list of parameters. If you want to know the optimal value ofpso that the solution of the initial value problem fits your experimental data, you can use DINJO to get an approximate value of the optimalp.VisitDINJO's official documentation
Package: dinkit
dinkitDigital Ink Kit provides digital ink identification function.Examplefrom dinkit import Recognize

strokes = [[[312, 211], [312, 215], [312, 219], [310, 230], [307, 238], [305, 250], [305, 255], [302, 266], [296, 275], [292, 283], [289, 288], [283, 293], [283, 295], [279, 299], [275, 302], [274, 303], [274, 304], [273, 307], [271, 310], [271, 310]], [[382, 363], [401, 358], [417, 354], [449, 348], [461, 347], [473, 343], [483, 340], [488, 340], [492, 340], [494, 340], [495, 340], [496, 340], [496, 339], [496, 339]], [[304, 283], [306, 285], [313, 297], [319, 315], [327, 344], [332, 359], [336, 378], [338, 392], [340, 404], [343, 419], [347, 435], [349, 452], [351, 469], [352, 485], [354, 499], [356, 511], [359, 524], [359, 535], [361, 545], [361, 549], [361, 554], [362, 555], [362, 556], [361, 555], [355, 545], [346, 532], [339, 525], [332, 515], [332, 515]], [[280, 479], [282, 479], [308, 479], [329, 479], [342, 475], [350, 472], [364, 466], [374, 463], [380, 460], [392, 457], [396, 454], [400, 451], [403, 450], [404, 448], [405, 448], [407, 447], [409, 444], [411, 442], [413, 441], [415, 439], [418, 437], [421, 433], [421, 433]], [[426, 263], [426, 268], [440, 298], [453, 330], [470, 365], [480, 386], [487, 399], [497, 421], [508, 440], [521, 462], [532, 482], [544, 497], [555, 517], [565, 532], [572, 540], [578, 546], [582, 550], [584, 553], [588, 554], [588, 551], [586, 543], [583, 537], [583, 531], [583, 531]], [[575, 436], [574, 437], [569, 442], [563, 446], [542, 459], [517, 471], [502, 481], [491, 488], [483, 494], [473, 498], [466, 504], [460, 507], [458, 508], [457, 508], [456, 508], [455, 508], [454, 505], [453, 501], [453, 501]], [[466, 289], [468, 289], [478, 289], [479, 289], [482, 289], [487, 291], [492, 292], [494, 292], [495, 293], [496, 293], [497, 294], [498, 294], [500, 294], [501, 295], [503, 296], [506, 297], [510, 300], [512, 301], [514, 302], [514, 302]]]

reco = Recognize()
print(reco.Single(strokes))Output{'我': 3049, '找': 3784, '戌': 4144, '戎': 4449, '绒': 4740, '线': 4746, '拽': 4755, '伐': 4775, '战': 4802, '城': 4885}
Package: dinky
dinkyDashboard generator for e-ink devices such as theInky Frame.InstallationInstall this library usingpip:pipinstalldinkydinky is only a dashboard manager. It relies on widgets that fill the dashboard. Install your first widget also usingpip:pipinstalldinky-calendarUsageA small Python script is enough to generate your dashboard.Start by instantiating the DashboardManager with a layout of your choice:fromdinky.dashboard_managerimportDashboardManagerfromdinky.layouts.column_grid_layoutimportColumnGridLayoutdm=DashboardManager(layout_configuration=ColumnGridLayout(padding=5))Then register your first widget and specify the zone in which you want it displayed:fromdinky_calendarimportDinkyCalendarPlugindm.register(DinkyCalendarPlugin(),name="A")Finally, draw your dashboard:dm.draw_dashboard()The dashboard can now be displayed on your e-ink device.DevelopmentTo contribute to this library, first checkout the code. Then create a new virtual environment:cddinky
python-mvenv.venvsource.venv/bin/activateNow install the dependencies and test dependencies:pipinstall-e'.[test]'To run the tests:pytest
Package: dinky-calendar
dinky-calendarCalDAV-based calendar widget for thedinkydashboard generatorInstallationInstall this plugin usingpip:pipinstalldinky-calendarUsagedinky-calendaris a plugin for thedinkydashboard generator. You can simply register the calendar widget with your DashboardManager:fromdinky_calendarimportDinkyCalendarPlugindm.register(DinkyCalendarPlugin(url="CalDAV calendar",username="your_username",password="your_password",timezone="your_timezone"),zone="A")Then draw your dashboard as usual:dm.draw_dashboard()DevelopmentTo contribute to this library, first checkout the code. Then create a new virtual environment:cddinky-calendar
python-mvenv.venvsource.venv/bin/activateNow install the dependencies and test dependencies:pipinstall-e'.[test]'To run the tests:python-mpytest
Package: dinky-notes
dinky-notesNotes widget for thedinkydashboard generatorInstallationInstall this plugin usingpip:pipinstalldinky-notesUsagedinky-notesis a plugin for thedinkydashboard generator. You can simply register the notes widget with your DashboardManager:fromdinky_notesimportDinkyNotesPlugindm.register(DinkyNotesPlugin(url="URL to the notes file (e.g., a shared cloud link)"),zone="A")Then draw your dashboard as usual:dm.draw_dashboard()DevelopmentTo contribute to this library, first checkout the code. Then create a new virtual environment:cddinky-notes
python-mvenv.venvsource.venv/bin/activateNow install the dependencies and test dependencies:pipinstall-e'.[test]'To run the tests:python-mpytest
Package: dinky-onthisday
dinky-onthisday"OnThisDay"widget for thedinkydashboard generatorInstallationInstall this plugin usingpip:pipinstalldinky-onthisdayUsagedinky-onthisdayis a plugin for thedinkydashboard generator. You can simply register the"OnThisDay"widget with your DashboardManager:fromdinky_onthisdayimportDinkyOnThisDayPlugindm.register(DinkyOnThisDayPlugin(),zone="A")Then draw your dashboard as usual:dm.draw_dashboard()DevelopmentTo contribute to this library, first checkout the code. Then create a new virtual environment:cddinky-onthisday
python-mvenv.venvsource.venv/bin/activateNow install the dependencies and test dependencies:pipinstall-e'.[test]'To run the tests:python-mpytest