Unofficial Python Library to communicate with SESAME 3 series products from CANDY HOUSE, Inc.

Overview

pysesame3

Unofficial Python Library to communicate with SESAME 3 series products from CANDY HOUSE, Inc.

PyPI PyPI - Python Version GitHub Workflow Status (branch) Documentation Status codecov PyPI - License

This project aims to control SESAME 3 series devices by using the cloud service. If you want to control them directly via Bluetooth connection, please check pysesameos2.

Features

Please note that pysesame3 can only control SESAME 3 Smart Lock at this moment. It could technically support SESAME Bot as well, but I don't have that device. PRs are always welcome!

  • Retrieve status of a SESAME lock (locked, handle position, etc.).
  • Retrieve recent events (locked, unlocked, etc.) associated with a lock.
  • Needless to say, locking and unlocking!

Usage

Please take a look at the documentation.

Credits & Thanks

Comments
  • Set API Gateway API Key

    Set API Gateway API Key

    Cognito Authを使用した際にlock, unlock, historyなどの操作を行うと403 Unauthorizedが帰ってくる。 公式SDKに元から入っているAPI KEYを使用すると動作したのでそれを使うように変更。

    When using Cognito Auth, operations such as lock, unlock, history, etc., return a 403 Unauthorized. I changed to use the API KEY that is included in the official SDK.

    opened by konikoni428 5
  • [Bug]: pysesame3 does not work at all

    [Bug]: pysesame3 does not work at all

    Description - 説明

    subscribeMechStatusを実行するとエラーが出続け、鍵の開閉を受信しません。 おそらく半年前くらい前からこの症状が出ており、それまで便利に使わせていただいていましたが、いつかバージョンアップ等で解消されるだろうと思い放置していましたが、現状も同じなので報告させていただきます。

    Expected Behavior - 期待する動作

    エラーが出ず、開閉を受信する。

    Pysesame3 version (pip show pysesame3)

    0.5.1

    Python version (python --version)

    Python 3.10.4

    OS

    Win10

    How to Reproduce - 再現方法

    1. pip install pysesame3[cognito] でインストール
    2. Example Usage ( https://pysesame3.readthedocs.io/en/stable/usage/ ) のソースの必要箇所を変更して実行
    3. An error occurs.

    Output - 出力された内容, 具体的な問題内容

    C:\Users\myname\Desktop>python pysesame3Test.py
    ==========
    [Initial MechStatus]
    CHSesame2MechStatus(Battery=100% (6.07V), isInLockRange=True, isInUnlockRange=False, retCode=0, target=551, position=517)
    ==========
    [History]
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    (Histories)
    ==========
    [Prompt]
    Action [lock/unlock/toggle/click]: AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    AWS IoT connection resumed. return_code: 0 session_present: True
    AWS IoT connection interrupted. error: AWS_ERROR_MQTT_UNEXPECTED_HANGUP: The connection was closed unexpectedly.
    Traceback (most recent call last):
      File "C:\Users\myname\Desktop\pysesame3Test.py", line 134, in <module>
        main()
      File "C:\Users\myname\Desktop\pysesame3Test.py", line 116, in main
        val = input("Action [lock/unlock/toggle/click]: ")
    KeyboardInterrupt
    ^C
    
    bug 
    opened by sho-mlqzo 5
  • SESAME bot の譲渡

    SESAME bot の譲渡

    • pysesame3 version:
    • Python version:
    • Operating System:

    Description

    ここに書いて良いのかどうかわかりませんが、使ってないセサミbotがあります。開発のお役に立てるのならお譲りしたいと思います。

    What I Did

    Paste the command(s) you ran and the output.
    If there was a crash, please include the traceback here.
    
    opened by Chabiichi 4
  • [Bug]: Subscription to a device shadow cannot be continued after 24 hours

    [Bug]: Subscription to a device shadow cannot be continued after 24 hours

    Description - 説明

    Due to the websocket connection quota in AWS IoT, the websocket connection will be closed after 24 hours. The problem is the temporary credential from Cogninto has been out dated at that moment so we cannot reconnect.

    The issue is reported at https://github.com/aws/aws-iot-device-sdk-python/issues/224.

    Expected Behavior - 期待する動作

    No response

    Pysesame3 version (pip show pysesame3)

    0.4.0

    Python version (python --version)

    3.9.6

    OS

    Ubuntu 20.04.2 LTS

    How to Reproduce - 再現方法

    Run the example script and keep it running more than 24 hours.

    Output - 出力された内容, 具体的な問題内容

    DEBUG:AWSIoTPythonSDK.core.protocol.internal.clients:Invoking custom event callback...
    [Errno 103] 0
    DEBUG:AWSIoTPythonSDK.core.protocol.internal.workers:Produced [disconnect] event
    DEBUG:AWSIoTPythonSDK.core.protocol.internal.workers:Dispatching [disconnect] event
    DEBUG:AWSIoTPythonSDK.core.protocol.internal.clients:Invoking custom event callback...
    DEBUG:AWSIoTPythonSDK.core.protocol.connection.cores:backOff: current backoff time is: 1 sec.
    DEBUG:AWSIoTPythonSDK.core.protocol.connection.cores:IAM credentials from custom config.
    DEBUG:AWSIoTPythonSDK.core.protocol.connection.cores:createWebsocketEndpoint: Websocket URL: wss://<snip>
    Exception in thread Thread-2:
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/connection/cores.py", line 428, in __init__
        self._handShake(hostAddress, portNumber)
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/connection/cores.py", line 523, in _handShake
        raise wssHandShakeError()
    AWSIoTPythonSDK.exception.AWSIoTExceptions.wssHandShakeError
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/threading.py", line 973, in _bootstrap_inner
        self.run()
      File "/usr/local/lib/python3.9/threading.py", line 910, in run
        self._target(*self._args, **self._kwargs)
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/paho/client.py", line 2389, in _thread_main
        self.loop_forever()
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/paho/client.py", line 1391, in loop_forever
        self.reconnect()
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/paho/client.py", line 802, in reconnect
        self._ssl = SecuredWebSocketCore(rawSSL, self._host, self._port, self._AWSAccessKeyIDCustomConfig, self._AWSSecretAccessKeyCustomConfig, self._AWSSessionTokenCustomConfig)  # Override the _ssl socket
      File "/usr/local/lib/python3.9/site-packages/AWSIoTPythonSDK/core/protocol/connection/cores.py", line 432, in __init__
        raise ValueError("Websocket Handshake Error")
    ValueError: Websocket Handshake Error
    
    bug 
    opened by mochipon 3
  • [Question]: Why do you access 169.254.169.254 at CHSesame2 startup?

    [Question]: Why do you access 169.254.169.254 at CHSesame2 startup?

    Describe the question you have - 質問の内容

    at first "CognitoAuth" next "CHSesame2" use then accessing 169.254.169.254 and time out and error.

    There is no problem in operation. It's working fine.

    Is this the correct behavior?

    Additional context - その他

    2021-07-03 17:58:32,506 - botocore.hooks - DEBUG - Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2021-07-03 17:58:32,573 - botocore.hooks - DEBUG - Changing event name from before-call.apigateway to before-call.api-gateway 2021-07-03 17:58:32,601 - botocore.hooks - DEBUG - Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2021-07-03 17:58:32,670 - botocore.hooks - DEBUG - Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunch$2021-07-03 17:58:32,674 - botocore.hooks - DEBUG - Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2021-07-03 17:58:32,691 - botocore.hooks - DEBUG - Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2021-07-03 17:58:32,716 - botocore.hooks - DEBUG - Changing event name from docs..autoscaling.CreateLaunchConfiguration.complete-section to docs..auto-scaling.CreateLaunchConfiguration.c$2021-07-03 17:58:32,825 - botocore.hooks - DEBUG - Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2021-07-03 17:58:32,829 - botocore.hooks - DEBUG - Changing event name from docs..logs.CreateExportTask.complete-section to docs..cloudwatch-logs.CreateExportTask.complete-section 2021-07-03 17:58:32,832 - botocore.hooks - DEBUG - Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2021-07-03 17:58:32,836 - botocore.hooks - DEBUG - Changing event name from docs..cloudsearchdomain.Search.complete-section to docs..cloudsearch-domain.Search.complete-section 2021-07-03 17:58:32,899 - botocore.utils - DEBUG - IMDS ENDPOINT: http://169.254.169.254/ 2021-07-03 17:58:32,927 - botocore.credentials - DEBUG - Looking for credentials via: env 2021-07-03 17:58:32,929 - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2021-07-03 17:58:32,931 - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity 2021-07-03 17:58:32,933 - botocore.credentials - DEBUG - Looking for credentials via: sso 2021-07-03 17:58:32,934 - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2021-07-03 17:58:32,937 - botocore.credentials - DEBUG - Looking for credentials via: custom-process 2021-07-03 17:58:32,938 - botocore.credentials - DEBUG - Looking for credentials via: config-file 2021-07-03 17:58:32,941 - botocore.credentials - DEBUG - Looking for credentials via: ec2-credentials-file 2021-07-03 17:58:32,942 - botocore.credentials - DEBUG - Looking for credentials via: boto-config 2021-07-03 17:58:32,945 - botocore.credentials - DEBUG - Looking for credentials via: container-role 2021-07-03 17:58:32,947 - botocore.credentials - DEBUG - Looking for credentials via: iam-role 2021-07-03 17:58:32,959 - urllib3.connectionpool - DEBUG - Starting new HTTP connection (1): 169.254.169.254:80 2021-07-03 17:58:33,982 - botocore.utils - DEBUG - Caught retryable HTTP exception while making metadata service request to http://169.254.169.254/latest/api/token: Connect timeout on endp$Traceback (most recent call last): File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 170, in _new_conn (self._dns_host, self.port), self.timeout, **extra_kw File "/usr/local/lib/python3.7/dist-packages/urllib3/util/connection.py", line 96, in create_connection raise err File "/usr/local/lib/python3.7/dist-packages/urllib3/util/connection.py", line 86, in create_connection sock.connect(sa) socket.timeout: timed out

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/usr/local/lib/python3.7/dist-packages/botocore/httpsession.py", line 332, in send chunked=self._chunked(request.headers), File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 756, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/usr/local/lib/python3.7/dist-packages/urllib3/util/retry.py", line 507, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.7/dist-packages/urllib3/packages/six.py", line 770, in reraise raise value File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 706, in urlopen chunked=chunked, File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 394, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 234, in request super(HTTPConnection, self).request(method, url, body=body, headers=headers) File "/usr/lib/python3.7/http/client.py", line 1260, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/local/lib/python3.7/dist-packages/botocore/awsrequest.py", line 93, in _send_request method, url, body, headers, *args, **kwargs) File "/usr/lib/python3.7/http/client.py", line 1306, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib/python3.7/http/client.py", line 1255, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.7/dist-packages/botocore/awsrequest.py", line 120, in _send_output self.send(msg) File "/usr/local/lib/python3.7/dist-packages/botocore/awsrequest.py", line 204, in send return super(AWSConnection, self).send(str) File "/usr/lib/python3.7/http/client.py", line 970, in send self.connect() File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 200, in connect conn = self._new_conn() File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 177, in _new_conn % (self.host, self.timeout), urllib3.exceptions.ConnectTimeoutError: (<botocore.awsrequest.AWSHTTPConnection object at 0xb56c5370>, 'Connection to 169.254.169.254 timed out. (connect timeout=1)')

    During handling of the above exception, another exception occurred:

    Pysesame3 version (pip show pysesame3)

    0.4.0

    Python version (python --version)

    3.7.3

    OS

    Raspbian buster 10.10

    question 
    opened by midori-mushi 3
  • history enumeration fails because of unexpected parameter in CHSesame2History.

    history enumeration fails because of unexpected parameter in CHSesame2History.

    • pysesame3 version:0.3.0
    • Python version:3.9
    • Operating System:Ubuntu 21.04

    Description

    Almost at the end of cloud.py, CHSesame2History is created using returned value from the API (**entry), but it fails when it contains a value with 'parameter' key, as it is not defined in CHSesame2History.__init__.

    What I Did

    I sImply followed the example usage at: https://pysesame3.readthedocs.io/en/latest/usage/ then got an error in device.historyEntries iteration.

    opened by since19861019 3
  • set UUIDv4 as AWSIoT Client ID

    set UUIDv4 as AWSIoT Client ID

    Fix #77

    JP AWS IoTのClient IDには一意のIDを使用する必要があるが、本来使用すべきでない同一のIDを使用している。 そのため、プログラムを動かした際に既に接続済みの人が切断され、また再接続しようとすることを繰り返し、ロックの取り合いのようになってしまっていると思われます。 改善としてUUIDv4を使用しランダムなIDを生成しています。

    EN The Client ID for AWS IoT requires a unique ID, but they are using the same ID which should not be used. As a result, when the program is run, people who are already connected are disconnected and repeatedly try to reconnect again, which seems to be like fighting for a lock. As an improvement, UUID v4 is used to generate random IDs.

    opened by konikoni428 2
  • [Request]: Home Assistant Integration

    [Request]: Home Assistant Integration

    Describe the solution you'd like - リクエストの内容

    As the subject line suggests.

    What's the problem this feature will solve? - 解決したい内容

    No response

    Additional context - その他

    No response

    enhancement help wanted 
    opened by mochipon 2
  • SESAME4 support

    SESAME4 support

    This PR aims to make this library support SESAME 4.

    Although the documentation has not been updated, the SDK has been updated. SESAME 4 can be controlled in exactly the same way as SESAME 3 in software, so we could implement it quickly.

    I hope to get feedback from users to see whether it works or not since I will not buy SESAME 4 for me.

    opened by mochipon 2
  • [Question]: QR Code

    [Question]: QR Code

    Describe the question you have - 質問の内容

    This looks great and I would love to use it. I just have no idea where to get the QR code that the QR code site need to provide the KEY Secret. Thoughts?

    Additional context - その他

    No response

    Pysesame3 version (pip show pysesame3)

    3

    Python version (python --version)

    3

    OS

    macOS

    question 
    opened by patrickoleary1977 2
  • Update dependency mkdocs-autorefs to ^0.3.0

    Update dependency mkdocs-autorefs to ^0.3.0

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | mkdocs-autorefs | ^0.2.1 -> ^0.3.0 | age | adoption | passing | confidence |


    Release Notes

    mkdocstrings/autorefs

    v0.3.0

    Compare Source

    Compare with 0.2.1

    Features

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 2
  • Update szenius/set-timezone action to v1.1

    Update szenius/set-timezone action to v1.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | szenius/set-timezone | action | minor | v1.0 -> v1.1 |


    Release Notes

    szenius/set-timezone

    v1.1: Upgrade to Node16

    Compare Source

    This release upgrades the runtime to Node16 since Node12 is being deprecated.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update dependency mkdocstrings-python to ^0.8.0

    Update dependency mkdocstrings-python to ^0.8.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | mkdocstrings-python (changelog) | ^0.7.0 -> ^0.8.0 | age | adoption | passing | confidence |


    Release Notes

    mkdocstrings/python

    v0.8.2

    Compare Source

    Compare with 0.8.1

    Bug Fixes

    v0.8.1

    Compare Source

    Compare with 0.8.0

    Bug Fixes

    v0.8.0

    Compare Source

    Compare with 0.7.1

    Features
    Code Refactoring
    • Support Griffe 0.24 (3b9f701 by Timothée Mazzucotelli).

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update dependency moto to v4

    Update dependency moto to v4

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | moto (changelog) | ^3.1.10 -> ^4.0.0 | age | adoption | passing | confidence |


    Release Notes

    spulec/moto

    v4.0.10

    Compare Source

    Docker Digest for 4.0.10: sha256:faf0e4b591c47c7775da4f827c2ec2e1ff48a32b31169236fa604ffb95dafb78

    New Methods:
        * CloudFront:
            * get_distribution_config()
        * Organizations:
            * delete_organizational_unit()
    
    Miscellaneous:
        * APIGateway: put_integration_response() now supports the responseParameters-parameter
        * Cloudformation now supports the creation/update/deletion of AWS::SSM::Parameter
        * Cloudformation: create_stack() now returns the attribute EnableTerminationProtection
        * CloudWatch: put_metric_data() now supports the MetricData.Values parameter
        * DynamoDB: transact_write_items() now supports the ReturnValuesOnConditionCheckFailure-parameter
        * RDS: describe_db_cluster now returns the EarliestRestorableTime-attribute
        * S3: get_object() and head_object() now correctly handle the IfModifiedSince-parameter
    

    v4.0.9

    Compare Source

    Docker Digest for 4.0.9: sha256:0c7a87255814035794733764d497fcb659ae0d6c843fae41040bb1a29c0726ab

    Miscellaneous:
        * CloudTrail: describe_trails() now returns the correct (MultiRegion) trails
        * CloudWatch:tag_resource() now allows tagting new Alarms that didn't have tags yet
        * EC2: create_instances() now supports the `IamInstanceProfile`-parameter
        * EC2: describe_route_tables() now supports the `route.vpc-peering-connection-id`-filter
        * EC2: modify_vpc_attribute() now supports the enableNetworkAddressUsageMetrics-attribute
        * S3: delete_objects() now works against the JS SDK v3.197.0
    

    v4.0.8

    Compare Source

    Docker Digest for 4.0.8: sha256:41883fb0f38572f3194dcbef6731eafdc6d8d7d4e319257d2ba2468c401c9881

    General:
        * Unpins the werkzeug-dependency - Moto now works with werkzeug==2.2.2
        * Fixes the Docker-build to run on M1 Macbooks.
    
    New Services:
        * ServiceQuotas:
            * get_service_quota()
            * list_aws_default_service_quotas()
    
    New Methods:
        * CloudFront: list_invalidations()
        * RDS: modify_db_cluster()
    
    Miscellaneous:
        * Lambda:delete_function() - fixed an issue where the wrong Function would be deleted when providing a qualifier
        * ECR:put_image() now removes any existing images that have the provided tag
        * IAM:detach_user/group/role_policy() now throws the correct error message when the policy is not attached in the first place 
        * S3:list_object_versions(): Fix delimiter to take prefix into account 
        * S3: Now closes file handles as early as possible when deleting files/multipart uploads
        * Sagamaker:describe_training_job() now throws the correct exception when trying to explain a non-existing job
    

    v4.0.7

    Compare Source

    Docker Digest for 4.0.7: sha256:a8ecbdba177c91c557ff76814c1b9a4d6673dc8e1e4183b183e5cff4ce73c356

    New Services:
        * Comprehend:
            * create_entity_recognizer()
            * delete_entity_recognizer()
            * describe_entity_recognizer()
            * list_entity_recognizers()
            * list_tags_for_resource()
            * stop_training_entity_recognizer()
    
        * MeteringMarketplace:
            * batch_meter_usage()
    
    New Methods:
        * EC2:
            * modify_vpc_endpoint()
        * MediaConnect:
            * grant_flow_entitlements()
            * revoke_flow_entitlement()
            * update_flow_entitlement()
            * update_flow_output()
    
    Miscellaneous:
        * DynamoDB:transact_write_items() - Now includes validation if multipel operations are provided in the same item
        * EC2:cancel_spot_fleet_request() - Fixed a bug where instances were always terminated
        * EC2:create_instances() - Now uses the private IP address as as provided in the NetworkInterface
        * EC2:describe_instance_types() - Now supports all filters
        * ECS:run_task() - Now creates/attaches an ENI if appropriate
        * S3: Fixed an issue where file handles were not closed on large uploads
    

    v4.0.6

    Compare Source

    Docker Digest for 4.0.6: sha256:01582a705be7c50bc15993acc2271cd190db9c08c5fc09d85c59c8ddae6bb260

    General:
        * Moto can now be seeded, which will make identifiers deterministic.
          See http://docs.getmoto.org/en/latest/docs/configuration/recorder/index.html
        * The format for access-key and role ids has been changed, and is now generated using the same algorithm that AWS uses
    
    Miscellaneous:
        * AWSLambda:add_permission() now properly handles the PrincipalOrgID-param
        * DynamoDB:update_item() now validates duplicate UpdateExpressions
        * EC2 now exposes instance types in the correct availability zones for us-west-1 (us-west-1a and us-west-1b)
        * EC2 has various improvements around the handling of RouteTableAssociations
        * Glue:get_tables() now supports the Expression-parameter
        * Organizations:create_organization() now uses a default value for FeatureSet=ALL
        * RDS:describe_db_subnet_groups() now returns the DBSubnetGroupArn-attribute
        * S3:upload_file() now supports the ExtraArgs: ChecksumAlgorithm-parameter
        * SSM:list_commands() now returns the DeliveryTimedOutCount-attribute
    

    v4.0.5

    Compare Source

    Docker Digest for 4.0.5: sha256:d18f760f3498b212b0c8c205c9c28c2b41e8c7a108f44e1bd1d7ee86dfc37c03

    General:
        * Moto now has a Recorder, to easily record and replay a given set of requests.
          See http://docs.getmoto.org/en/latest/docs/configuration/recorder/index.html
    
    Miscellaneous:
        * CloudFormation now supports the creation/update/deletion of AWS::EC2::LaunchTemplate
        * Glue:start_job_run() now respects the MaxConcurrentRuns-parameter
        * S3:get_object() now performs rudimentary BucketPolicy validation
        * StateManager now supports `glue::job_run`, managing how long it takes to for a Glue job to become 'SUCCEEDED'
    

    v4.0.3

    Compare Source

    Docker Digest for 4.0.3:

    General:
        * Compatible with openapi-spec-validator 0.5.x
    
    New Methods:
        * Kinesis:
            * update_stream_mode()
        * WAFv2:
            * associate_web_acl()
            * delete_web_acl()
            * disassociate_web_acl()
            * get_web_acl()
            * get_web_acl_for_resource()
            * list_rule_groups()
            * list_tags_for_resource()
            * tag_resource()
            * untag_resource()
            * update_web_acl()
    
    Miscellaneous:
        * DynamoDB:query() now has improved support for KeyConditionExpression
        * Kinesis:put_records() now validates the size/number of records, following AWS' behaviour
    

    v4.0.2

    Compare Source

    Docker Digest for 4.0.2: sha256:32b30fef5d54d30eb7beca263dcb0ba08bd3718adb8b5d95f9f4b6e9cfc854f1

    New Services:
        * Amazon Managed Prometheus (AMP)
            * create_rule_groups_namespace()
            * create_workspace()
            * delete_rule_groups_namespace()
            * delete_workspace()
            * describe_rule_groups_namespace()
            * describe_workspace()
            * list_rule_groups_namespaces()
            * list_tags_for_resource()
            * list_workspaces()
            * put_rule_groups_namespace()
            * tag_resource()
            * untag_resource()
            * update_workspace_alias()
    
    Miscellaneous:
        * APIGateway:put_method() now supports the requestParameters-parameter
        * AutoScaling:create_auto_scaling_group() now supports the MixedInstancesPolicy-parameter
        * CloudWatchLogs:filter_log_events() now supports the filterPattern-parameter
        * DynamoDB:batch_put_item() now has validatior for empty keys
        * Kinesis:create_stream() now supports stream-mode=OnDemand
        * S3:head_object() now returns the PartsCount-header
        * SNS:subscribe() now has increased support for the FilterPolicy-argument
        * SSM now returns the /aws/service/ami-amazon-linux-latest-parameters as provided by AWS
    

    v4.0.1

    Compare Source

    Docker Digest for 4.0.10:

    New Methods:
        * CloudFront:
            * get_distribution_config()
        * Organizations:
            * delete_organizational_unit()
    
    Miscellaneous:
        * APIGateway: put_integration_response() now supports the responseParameters-parameter
        * Cloudformation now supports the creation/update/deletion of AWS::SSM::Parameter
        * Cloudformation: create_stack() now returns the attribute EnableTerminationProtection
        * CloudWatch: put_metric_data() now supports the MetricData.Values parameter
        * DynamoDB: transact_write_items() now supports the ReturnValuesOnConditionCheckFailure-parameter
        * RDS: describe_db_cluster now returns the EarliestRestorableTime-attribute
        * S3: get_object() and head_object() now correctly handle the IfModifiedSince-parameter
    

    v4.0.0

    Compare Source

    Docker Digest for 4.0.0: sha256:348b516e706e19544dec3643d25304e24b75e48c92b1a6d347e5cd8c349cd8cd

    General:
        * Introduces MultiAccount support (see http://docs.getmoto.org/en/latest/docs/multi_account.html)
        * Removes deprecated decorators mock_dynamodb2 and mock_rds2
        * The API for the TreadedMotoServer is now considered stable
    
    Dependencies:
        * The responses-module now has a minimum version of 0.13.0
    

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Rate-Limited

    These updates are currently rate-limited. Click on a checkbox below to force their creation now.

    • [ ] Update dependency importlib-metadata to v5
    • [ ] Update dependency pytest-cov to v4
    • [ ] 🔐 Create all rate-limited PRs at once 🔐

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Detected dependencies

    github-actions
    .github/workflows/ci.yml
    • szenius/set-timezone v1.0
    • actions/checkout v3
    • actions/setup-python v4
    • codecov/codecov-action v3
    • szenius/set-timezone v1.0
    • actions/checkout v3
    • actions/setup-python v4
    .github/workflows/release.yml
    • actions/checkout v3
    • heinrichreimer/github-changelog-generator-action v2.3
    • actions/setup-python v4
    poetry
    pyproject.toml
    • typing-extensions ^4.2.0
    • importlib-metadata ^4.11.4
    • pycryptodome ^3.14.1
    • requests ^2.27.1
    • awsiotsdk ^1.11.1
    • boto3 ^1.23.6
    • certifi *
    • requests-aws4auth ^1.1.2
    • livereload ^2.6.3
    • mkdocs ^1.3.0
    • mkdocstrings ^0.19.0
    • mkdocstrings-python ^0.7.0
    • mkdocs-autorefs ^0.4.1
    • mkdocs-include-markdown-plugin ^3.5.0
    • mkdocs-material ^8.2.15
    • asynctest ^0.13.0
    • bump2version ^1.0.1
    • moto ^3.1.10
    • pre-commit ^2.19.0
    • pytest ^7.1.2
    • pytest-cov ^3.0.0
    • requests-mock ^1.9.3

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
Releases(v0.6.0)
  • v0.6.0(May 30, 2022)

    ⚠️ Noticeable changes for CognitoAuth users

    I don't think I have received any official notification yet, but it seems that users are now charged to use the Web API from CANDY HOUSE as pointed at https://github.com/mochipon/pysesame3/pull/79?w=1#issuecomment-1135619952 (comment).

    Following their clear statement, we decided to use their official (Paid) API to operate the device. However, this library will continue to provide the ability to connect to AWS IoT Core and receive real-time device state changes. This is the only feature that this library implements that is not officially provided.

    I have tried to maintain all backward compatibility, so you will be able to continue to use this library without any particular changes.

    公式には発表されていないと思いますが、CANDY HOUSE は SESAME デバイスの Web API を有料化しました。

    このライブラリでは CognitoAuth という認証方法を使うことで公式に提供されている Web API 以上の機能を利用することができましたが、その一環として非公式な API を活用していました。

    しかし、CANDY HOUSE の利益に明確に反することは、このライブラリの意図するところではありません。そのため、このリリースから、デバイスを操作する全ての API は公式の (有料化された) Web API を利用することにしました。唯一、公式では提供されていないリアルタイムな鍵の状態変化を受け取る機能 (subscribeMechStatus) は、オープンソースで公開されている公式の SDK に基づいた (Web API を利用しない) 実装となっています。

    後方互換性を維持するように努めているので、このライブラリを利用するユーザへの影響はありません。

    What's Changed

    • Drop Python 3.6 support and Bump dependencies by @mochipon in https://github.com/mochipon/pysesame3/pull/80
    • Fix typo: getBatteryPrecentage -> getBatteryPercentage by @mochipon in https://github.com/mochipon/pysesame3/pull/81
    • Update codecov/codecov-action action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/75
    • Update actions/setup-python action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/73
    • Update actions/checkout action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/72
    • set UUIDv4 as AWSIoT Client ID by @konikoni428 in https://github.com/mochipon/pysesame3/pull/78
    • Use official Web API to control SESAME devices by @mochipon in https://github.com/mochipon/pysesame3/pull/82
    • Use master site (GitHub) for flake8 by @mochipon in https://github.com/mochipon/pysesame3/pull/85
    • Update dependency mkdocstrings to ^0.19.0 by @renovate in https://github.com/mochipon/pysesame3/pull/68
    • Update dependency mkdocstrings-python to ^0.7.0 by @renovate in https://github.com/mochipon/pysesame3/pull/84

    New Contributors

    • @konikoni428 made their first contribution in https://github.com/mochipon/pysesame3/pull/78
    • @key made their first contribution in https://github.com/mochipon/pysesame3/pull/70

    Full Changelog: https://github.com/mochipon/pysesame3/compare/v0.5.1...v0.6.0

    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.6.0-py3-none-any.whl(22.63 KB)
  • v0.6.0-rc.1(May 24, 2022)

    ⚠️ Warning

    This is a pre-release version! By default, pip only finds stable versions. If you want to try this version, please use pip install --pre pysesame3[cognito].

    If you find any problem, kindly report it to me. Thank you!

    このバージョンは正式リリース前のリリース候補版です。もし問題を発見したら、どうか Issue として報告してください。

    pip は標準でリリース版しかインストールしません。このリリース候補版をインストールするためには pip install --pre pysesame3[cognito] コマンドを実行してください。

    ⚠️ Noticeable changes for CognitoAuth users

    I don't think I have received any official notification yet, but it seems that users are now charged to use the Web API from CANDY HOUSE as pointed at https://github.com/mochipon/pysesame3/pull/79?w=1#issuecomment-1135619952 (comment).

    Following their clear statement, we decided to use their official (Paid) API to operate the device. However, this library will continue to provide the ability to connect to AWS IoT Core and receive real-time device state changes. This is the only feature that this library implements that is not officially provided.

    I have tried to maintain all backward compatibility, so you will be able to continue to use this library without any particular changes.

    公式には発表されていないと思いますが、CANDY HOUSE は SESAME デバイスの Web API を有料化しました。

    このライブラリでは CognitoAuth という認証方法を使うことで公式に提供されている Web API 以上の機能を利用することができましたが、その一環として非公式な API を活用していました。

    しかし、CANDY HOUSE の利益に明確に反することは、このライブラリの意図するところではありません。そのため、このリリースから、デバイスを操作する全ての API は公式の (有料化された) Web API を利用することにしました。唯一、公式では提供されていないリアルタイムな鍵の状態変化を受け取る機能 (subscribeMechStatus) は、オープンソースで公開されている公式の SDK に基づいた (Web API を利用しない) 実装となっています。

    後方互換性を維持するように努めているので、このライブラリを利用するユーザへの影響はありません。

    What's Changed

    • Drop Python 3.6 support and Bump dependencies by @mochipon in https://github.com/mochipon/pysesame3/pull/80
    • Fix typo: getBatteryPrecentage -> getBatteryPercentage by @mochipon in https://github.com/mochipon/pysesame3/pull/81
    • Update codecov/codecov-action action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/75
    • Update actions/setup-python action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/73
    • Update actions/checkout action to v3 by @renovate in https://github.com/mochipon/pysesame3/pull/72
    • set UUIDv4 as AWSIoT Client ID by @konikoni428 in https://github.com/mochipon/pysesame3/pull/78
    • Use official Web API to control SESAME devices by @mochipon in https://github.com/mochipon/pysesame3/pull/82

    New Contributors

    • @konikoni428 made their first contribution in https://github.com/mochipon/pysesame3/pull/78
    • @key made their first contribution in https://github.com/mochipon/pysesame3/pull/70

    Full Changelog: https://github.com/mochipon/pysesame3/compare/v0.5.1...v0.6.0-rc.1

    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.6.0rc1-py3-none-any.whl(22.65 KB)
  • v0.5.1(Nov 3, 2021)

    Changelog

    ⚠️ Noticeable changes for CognitoAuth users

    Candyhouse no longer issues a user-specific CLIENT_ID. It seems that we can continue to use the CLIENT_IDs that we have been using, but we no longer need to provide it to use CognitoAuth.

    Old

    auth = CognitoAuth(
        apikey="API_KEY",
        client_id="CLIENT_ID (like: `us-west-1:11111111-2222-3333-4444-555555555555`)",
    )
    

    New

    auth = CognitoAuth(apikey="API_KEY")
    

    v0.5.1 (2021-11-03)

    Implemented enhancements:

    • [Request]: CLIENT_ID is no longer required for CognitoAuth #64

    Merged pull requests:

    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.5.1-py3-none-any.whl(22.58 KB)
  • v0.5.0(Sep 2, 2021)

    Changelog

    I sincerely apologize for the delay of this release. Also, I would like to express my deepest thanks to all those who have tested the pre-release versions (v0.5.0-rc.1, v0.5.0-rc.2).

    This release contains two major changes, the first is support for the SESAME BOT. Please refer to #45, #51, and the updated docs for details. Also, note that the APIs provided by SESAME Cloud are not fully disclosed in detail. I asked them about the documentation issues, but it has been left unanswered for over a month, and I decided to give up.

    The second change affects all users who are using Cognito Auth. That is, we have moved the AWS IoT Device SDK from v1 to v2 at #41. This has significantly improved the stability of the connection to the cloud. In addition, it is now possible to connect to multiple locks simultaneously, which means that a door with two locks can be simply controlled (actually this is what I personally needed!).

    If you find any problem, kindly report it to me. Thank you!


    このバージョンの正式な公開が遅くなったことを深くお詫びします。また、このバージョンの候補版 (v0.5.0-rc.1, v0.5.0-rc.2) をテストしていただいた全ての方々に深く感謝申し上げます。「便りの無いのは良い便り」といいますし、このバージョンが安定していることを確信しています。

    このバージョンでは 2 つの大きな変更がありました。まず 1 つ目は、SESAME BOT をサポートしたことです。詳細は #45, #51, 更新したドキュメント をご参照ください。注意していただきたいのは、SESAME Cloud が提供する API は、その仕様が完全に開示されているわけではないということです。実際に提供されている API の挙動を踏まえて実装しましたが、一部解決されていない問題があります。CANDY HOUSE に問い合わせてみたものの、1 ヶ月以上放置されましたので、諦めました。

    2 つ目の変更は、Cognito Auth を使っている全てのユーザに影響します。それは、AWS IoT への接続に使っているライブラリ (AWS IoT Device SDK) を v1 系から v2 系に変更したことです (#41)。これによって、接続の安定性が著しく向上しました。加えて、複数のデバイスに対して同時に接続 (subscribe) することが出来るようになりました。いわゆる「ワンドアツーロック」環境において、このライブラリが使いやすくなりました。

    なにか不具合や不明点があれば、遠慮なく Issue から日本語で質問してください。


    v0.5.0 (2021-09-02)

    Implemented enhancements:

    • [Request]: Support simultaneous subscriptions #40

    Fixed bugs:

    • [Bug]: Missing the version menu on the docs site #49

    Merged pull requests:

    • Implement CHSesameBotMechStatus for SESAME bot #51
    • Update dependency importlib-metadata to v4 #48
    • Update codecov/codecov-action action to v2 #46
    • 🎉 Support SESAME bot #45
    • Doc update for AWS IoT Device SDK v2 #44
    • Handle AWS_ERROR_MQTT_ALREADY_CONNECTED #43
    • Enable logging #42
    • Move from AWS IoT Device SDK v1 to v2 #41
    • Update precommit hook pre-commit/mirrors-isort to v5.9.2 #39
    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.5.0-py3-none-any.whl(22.11 KB)
  • v0.5.0-rc.2(Jul 27, 2021)

    ⚠️Warning

    This is a pre-release version! By default, pip only finds stable versions. If you want to try this version, please use pip install --pre pysesame3[cognito].

    If you find any problem, kindly report it to me. Thank you!

    このバージョンは正式リリース前のリリース候補版です。もし問題を発見したら、どうか Issue として報告してください。

    pip は標準でリリース版しかインストールしません。このリリース候補版をインストールするためには pip install --pre pysesame3[cognito] コマンドを実行してください。

    v0.5.0-rc.2 (2021-07-27)

    Fixed bugs:

    • [Bug]: Missing the version menu on the docs site #49

    Merged pull requests:

    • Implement CHSesameBotMechStatus for SESAME bot #51
    • Update dependency importlib-metadata to v4 #48
    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.5.0rc2-py3-none-any.whl(22.14 KB)
  • v0.5.0-rc.1(Jul 21, 2021)

    ⚠️Warning

    This is a pre-release version! By default, pip only finds stable versions. If you want to try this version, please use pip install --pre pysesame3[cognito].

    If you find any problem, kindly report it to me. Thank you!

    このバージョンは正式リリース前のリリース候補版です。もし問題を発見したら、どうか Issue として報告してください。

    pip は標準でリリース版しかインストールしません。このリリース候補版をインストールするためには pip install --pre pysesame3[cognito] コマンドを実行してください。

    v0.5.0-rc.1 (2021-07-20)

    Implemented enhancements:

    • [Request]: Support simultaneous subscriptions #40

    Merged pull requests:

    • Update codecov/codecov-action action to v2 #46
    • 🎉 Support SESAME bot #45
    • Doc update for AWS IoT Device SDK v2 #44
    • Handle AWS_ERROR_MQTT_ALREADY_CONNECTED #43
    • Enable logging #42
    • Move from AWS IoT Device SDK v1 to v2 #41
    • Update precommit hook pre-commit/mirrors-isort to v5.9.2 #39
    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.5.0rc1-py3-none-any.whl(21.65 KB)
  • v0.4.1(Jul 5, 2021)

  • v0.4.0(Jul 3, 2021)

    Changelog

    ⚠️ Breaking changes for all users

    The lock module is renamed into chsesame2 in https://github.com/mochipon/pysesame3/pull/31. This is a preparation to support new devices, so please bear with me.

    Old

    from pysesame3.lock import CHSesame2
    

    New

    from pysesame3.chsesame2 import CHSesame2
    

    ⚠️ Breaking changes for CognitoAuth users

    Using subscribeMechStatus, you can set a function (callback) to be executed when the lock status changes. In previous releases, device shadows were not handled correctly within pysesame3 if you set your own callbacks. The issue is fixed at https://github.com/mochipon/pysesame3/pull/27.

    From this release, the callback must accept two inputs. The first will be a device object itself and the second will be a latest MechStatus of a device. Please take a look at the updated example script.

    Old

    def your_callback(client, userdata, message):
        ...
    

    New

    def your_callback(device: CHSesame2, status: CHSesame2MechStatus):
        ...
    

    v0.4.0 (2021-07-03)

    Fixed bugs:

    • [Bug]: subscribeMechStatus callback will not be executed #32
    • Fix for unexpected (imcomplete) device shadow #33

    Merged pull requests:

    • Rename the module: lock -> chsesame2 #31
    • Ensure we have the latest pip version in build environments #30
    • Increase test coverage, correct type hints #29
    • Modernize issue templates #28
    • Support for setting the callback for MechStatus updates #27
    • Fix signed value conversion #26
    • Update precommit hook pre-commit/mirrors-isort to v5.9.1 #24
    Source code(tar.gz)
    Source code(zip)
    pysesame3-0.4.0-py3-none-any.whl(12.64 KB)
  • v0.3.1(Jun 21, 2021)

  • v0.3.0(Jun 15, 2021)

  • v0.2.2(Jun 14, 2021)

  • v0.2.1(Jun 12, 2021)

  • v0.2.0(Jun 11, 2021)

  • v0.1.0(Jun 11, 2021)

Simple Wayland HotKey Daemon

swhkd Simple Wayland HotKey Daemon This project is still very new and I'm making new decisions everyday as to where I should drive this project. I'm u

Aakash Sen Sharma 407 Dec 30, 2022
The fetch of the delegator list and the input of the epoch nonce need to be done independently

raffle The fetch of the delegator list and the input of the epoch nonce need to be done independently. Get the list of delegators at the epoch change.

1 Dec 15, 2021
A simple panel with IP, CNPJ, CEP and PLACA queries

Painel mpm Um painel simples com consultas de IP, CNPJ, CEP e PLACA Início 🌐 apt update && apt upgrade -y pkg i python git pip install requests Insta

MrDiniz 4 Nov 04, 2022
Python library to interact with Move Hub / PoweredUp Hubs

Python library to interact with Move Hub / PoweredUp Hubs Move Hub is central controller block of LEGO® Boost Robotics Set. In fact, Move Hub is just

Andrey Pokhilko 499 Jan 04, 2023
This repository collects nice scripts ("plugins") for the SimpleBot bot for DeltaChat.

Having fun with DeltaChat This repository collects nice scripts ("plugins") for the SimpleBot bot for DeltaChat. DeltaChat is a nice e-mail based mess

Valentin Brandner 3 Dec 25, 2021
A deployer and package manager for OceanBase open-source software.

OceanBase Deploy OceanBase Deploy (简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何安装 OBD、使用 OBD 和 OBD 的命令。 安装 OBD 您可以使用以下方

OceanBase 59 Dec 27, 2022
A redesign of our previous Python World Cup, aiming to simulate the 2022 World Cup all the way from the qualifiers

A redesign of our previous Python World Cup, aiming to simulate the 2022 World Cup all the way from the qualifiers. This new version is designed to be more compact and more efficient and will reflect

Sam Counsell 1 Jan 07, 2022
Feapder的管道扩展

FEAPDER 管道扩展 简介 此模块为feapder的pipelines扩展,感谢广大开发者对feapder的贡献 随着feapder支持的pipelines越来越多,为减少feapder的体积,特将pipelines提出,使用者可按需安装 管道 PostgreSQL 贡献者:沈瑞祥 联系方式:r

boris 9 Dec 07, 2022
Remove Sheet Protection from .xlsx files. Easily.

🔓 Excel Sheet Unlocker Remove sheet protection from .xlsx files. How to use Run Run the script/packaged executable from the command line. Universal u

Daniel 3 Nov 16, 2022
Given tool find related trending keywords of input keyword

blog_generator Given tool find related trending keywords of input keyword (blog_related_to_keyword). Then cretes a mini blog. Currently its customised

Shivanshu Srivastava 2 Nov 30, 2021
A Kodi add-on for watching content hosted on PeerTube.

A Kodi add-on for watching content hosted on PeerTube. This add-on is under development so only basic features work, and you're welcome to improve it.

1 Dec 18, 2021
Python library to decorate and beautify strings

outputformater Python library to decorate and beautify your standard output 💖 I

Felipe Delestro Matos 259 Dec 13, 2022
A refresher for PowerBI Desktop documents

PowerBI_Refresher-NPP Informació Per executar el programa s'ha de tenir instalat el python versio 3 o mes. Requeriments a requirements.txt. El fitxer

Nil Pujol 1 May 02, 2022
Mute your mic while you're typing. An app for Ubuntu.

Hushboard Mute your microphone while typing, for Ubuntu. Install from kryogenix.org/code/hushboard/. Installation We recommend you install Hushboard t

Stuart Langridge 142 Jan 05, 2023
Alerts for Western Australian Covid-19 exposure locations via email and Slack

WA Covid Mailer Sends alerts from Healthy WA's Covid19 Exposure Locations via email and slack. Setup Edit the configuration items in wacovidmailer.py

13 Mar 29, 2022
Notebooks for computing approximations to the prime counting function using Riemann's formula.

Notebooks for computing approximations to the prime counting function using Riemann's formula.

Tom White 2 Aug 02, 2022
A free micro-blog written in Python and powered by Heroku. *Merge requests are appreciated!*

Background Hobo is an ultra-lightweight blog engine written in Python. It has two dependencies, fully integrated into the codebase with no additional

Andrew Nelder 48 Jan 28, 2021
Chess bot can play automatically as white or black on lichess.com, chess.com and any website using drag and drop to move pieces

Chessbot "Why create another chessbot ?" The explanation is simple : I did not find a free bot I liked online : all the bots I saw on internet are par

Dhimas Bagus Prayoga 2 Nov 11, 2021
Python samples for Google Cloud Platform products.

Google Cloud Platform Python Samples Python samples for Google Cloud Platform products. Setup Install pip and virtualenv if you do not already have th

Google Cloud Platform 6k Jan 03, 2023
Make creating Excel XLSX files fun again

Poi: Make creating Excel XLSX files fun again. Poi helps you write Excel sheet in a declarative way, ensuring you have a better Excel writing experien

Ryan Wang 11 Apr 01, 2022