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)

HiSim - House Infrastructure Simulator

HiSim is a Python package for simulation and analysis of household scenarios using modern components as alternative to fossil fuel based ones.

FZJ-IEK3 17 Dec 17, 2022
Final Fantasy XIV Auto House Clicker

Final Fantasy XIV Auto House Clicker

KanameS 0 Mar 31, 2022
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 3, 2023
A Python script to parse Fortinet products serial numbers, and detect the associated model and version.

ParseFortinetSerialNumber A Python script to parse Fortinet products serial numbers, and detect the associated model and version. Example $ ./ParseFor

Podalirius 10 Oct 28, 2022
A chain of stores wants a 3-month demand forecast for its 10 different stores and 50 different products.

Demand Forecasting Objective A chain store wants a machine learning project for a 3-month demand forecast for 10 different stores and 50 different pro

null 2 Jan 6, 2022
An unofficial python API for trading on the DeGiro platform, with the ability to get real time data and historical data.

DegiroAPI An unofficial API for the trading platform Degiro written in Python with the ability to get real time data and historical data for products.

Jorrick Sleijster 5 Dec 16, 2022
Unofficial Python implementation of the DNMF overlapping community detection algorithm

DNMF Unofficial Python implementation of the Discrete Non-negative Matrix Factorization (DNMF) overlapping community detection algorithm Paper Ye, Fan

Andrej Janchevski 3 Nov 30, 2021
Unofficial package for fetching users information based on National ID Number (Tanzania)

Nida Unofficial package for fetching users information based on National ID Number made by kalebu Installation You can install it directly or using pi

Jordan Kalebu 57 Dec 28, 2022
Unofficial Valorant documentation and tools for third party developers

Valorant Third Party Toolkit This repository contains unofficial Valorant documentation and tools for third party developers. Our goal is to centraliz

Noah Kim 20 Dec 21, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
An unofficial opensource Pokemon cursor theme for Windows and Linux.

pokemon-cursor An unofficial opensource Pokemon cursor theme for Windows and Linux. Cursor Sizes 22 24 28 32 40 48 56 64 72 80 88 96 Colors Quick inst

Kaiz Khatri 72 Dec 26, 2022
An open-source Python project series where beginners can contribute and practice coding.

Python Mini Projects A collection of easy Python small projects to help you improve your programming skills. Table Of Contents Aim Of The Project Cont

Leah Nguyen 491 Jan 4, 2023
A Python script to convert your favorite TV series into an Anki deck.

Ankiniser A Python3.8 script to convert your favorite TV series into an Anki deck. How to install? Download the script with git or download it manualy

null 37 Nov 3, 2022
A series of basic programs written in Python

Primeros programas en Python Una serie de programas básicos escritos en Python

Madirex 1 Feb 15, 2022
Python Create Your Own Tool Series

Python Create Your Own Tool Series Hey there! This is an additional Github repository that contains the final product files for each video in my Youtu

Joe Helle 21 Dec 2, 2022
Very simple encoding scheme that will encode data as a series of OwOs or UwUs.

OwO Encoder Very simple encoding scheme that will encode data as a series of OwOs or UwUs. The encoder is a simple state machine. Still needs a decode

null 1 Nov 15, 2021
JLC2KICAD_lib is a python script that generate a component library for KiCad from the JLCPCB/easyEDA library.

JLC2KiCad_lib is a python script that generate a component library (schematic, footprint and 3D model) for KiCad from the JLCPCB/easyEDA library. This script requires Python 3.6 or higher.

Nicolas Toussaint 73 Dec 26, 2022
K2HASH Python library - NoSQL Key Value Store(KVS) library

k2hash_python Overview k2hash_python is an official python driver for k2hash. Install Firstly you must install the k2hash shared library: curl -o- htt

Yahoo! JAPAN 3 Oct 19, 2022