{ "info": { "author": "TRIMAR Developer", "author_email": "developer@trimar.com.pl", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3" ], "description": "## trimarlib-sysfsgpio\n\nPython GPIO library, using Linux `sysfs` interface.\n\n### Getting started\n\nThese instructions will get you a copy of the project on your local machine for development and testing purposes. \nSee [Deployment](#deployment) for notes on how to deploy the project on a live system.\n\n#### Prerequisites\n\nThe build process requires some basic development tools:\n\n* `make` - GNU Make program, either for *nix or Windows system, used to execute build and test targets\n* `git` - used not only to clone the repository, but also in auto-versioning (see [Versioning](#versioning))\n* `python3`\n\nTwo standard Python packages are used for build and installation steps:\n\n* `setuptools`\n* `wheel`\n\nThe library has no dependencies on any third-party packages.\n\n#### Building and releasing\n\nInvoking `make all` (default target) prepares archives for distribution. It is done in two steps:\n\n1. query Git repository for tags (`git describe` command) to determine current version and generate \n`version.py` file,\n2. invoke Python interpreter passing `setup.py` script to prepare source and wheel distributions.\n\nThe Python interpreter invoked by the `Makefile` defaults to `python` when running on Windows machine and\n`python3` otherwise. In both cases it is possible to override it passing a `PYTHON` variable to the command,\n e.g. `make all PYTHON=python3`.\n\nThe release process is automated and based on GitLab CI/CD environment - each commit triggers a build job\nwhich attempts to make and install built packages (no testing implemented yet, requires an available hardware\nplatform). If the commit is tagged the built wheel distribution is passed to the deployment stage and\nthe runner attempts to upload the package to the repository specified in project settings.\n\n#### Testing\n\nTest source files are located in `sysfsgpio/tests` directory. Testing is based on `unittest` Python \nbuilt-in package. The `Makefile` defines `test` target which invokes all tests. \n\nTesting is divided into two steps:\n\n* utility functions testing - performs unit tests of all ancillary features. Those tests are\nplatform independent (i.e. shall pass on either a *nix or a Windows machine);\n* `Pin` testing - performs unit tests of `Pin` class. Those tests depend on the `sysfs` Linux \nfilesystem and are skipped when running on Windows machine. \n\n### Deployment\n\nThe library is not intended to be used in a standalone configuration - the primary purpose is to be used\nby higher-level applications, which should define it as a dependency. However it is perfectly correct\nto install it manually using `pip`. \nPlease keep in mind that there are some platform dependent steps needed to be taken before the\npins are accessible without super-user privileges. The package designates 3 entry points (accessible\nas command-line tools) to ease-up the set-up process (the scripts are developed and confirmed to be\nworking on Orange Pi platform running Armbian distribution). These entry points are:\n\n* `sysfsgpio-install-service` - this command installs and enables `systemd` `gpio-exporter` service,\nwhich exports all free pins available on the Orange Pi SBC at system boot;\n* `sysfsgpio-install-rules` - this command install `udev` rules file which ensures that each exported\npin has `rw` mode available to `staff` group;\n* `sysfsgpio-install` - this one invokes the above to reduce number of commands needed to set-up system.\n\nEach of the commands may be invoked with `--force` switch to overwrite existing files - without that\nswitch commands fail printing proper message. \n\n> **NOTE:**\n> The user needs to become member of the `staff` group to use the pins without super-user rights.\n\n### Versioning\n\nThe project is versioned using a simple pattern based on repository tagging feature. See [Makefile](Makefile)\nfor implementation details, for versions available see \n[tags on this repository](https://dsl2.trimar.org/pythons-ll/sysfsgpio/tags).\n\n### Usage\n\nSee docstrings for API documentation.\n\n* Example of using pin PA21 as input:\n\n```python\nfrom sysfsgpio import Pin\n\n\ndef callback(sender, value):\n print('pin={}, value={}'.format(sender, value))\n\n\npin = Pin('PA21')\npin.direction = 'in'\npin.register_callback(callback)\npin.enabled = True\n```\n\n* Example of using pin PA20 as output:\n\n```python\nfrom sysfsgpio import Pin\nimport time\n\npin = Pin('PA20')\npin.direction = 'out'\nfor i in range(10):\n time.sleep(.1)\n pin.value = pin.value ^ 1\n```\n\n* Example of using pin PA7 as inverted output to generate timed pulses:\n\n```python\nfrom sysfsgpio import Pin\n\npin = Pin('PA20')\npin.direction = 'out'\npin.configuration = dict(ontime=3.33, offtime=6.67, repeat=3)\npin.enable()\n```\n\n### License\n\nThis software is licensed under the MIT License - see [LICENSE](LICENSE).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://dsl2.trimar.org/pythons-ll/sysfsgpiolib", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "trimarlib-sysfsgpio", "package_url": "https://pypi.org/project/trimarlib-sysfsgpio/", "platform": "", "project_url": "https://pypi.org/project/trimarlib-sysfsgpio/", "project_urls": { "Homepage": "https://dsl2.trimar.org/pythons-ll/sysfsgpiolib" }, "release_url": "https://pypi.org/project/trimarlib-sysfsgpio/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "Sysfs GPIO utility", "version": "0.2.1" }, "last_serial": 4385580, "releases": { "0.0.3rc1": [ { "comment_text": "", "digests": { "md5": "66c95570bcba92e715fc60bbaa7e462f", "sha256": "ffc3271e0b4932b146f7121ce6a2e1dd3a2970d7da5ac797fc9be05b037dbc4a" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.0.3rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "66c95570bcba92e715fc60bbaa7e462f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6218, "upload_time": "2018-06-12T12:35:55", "url": "https://files.pythonhosted.org/packages/04/33/568b0009fd7607c8fc76a61543ab436069616c61d09bb16618ca1eb91b90/trimarlib_sysfsgpio-0.0.3rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "94b42a2ba150011f7b7cf278dff738ba", "sha256": "5a6edd604fb34ae903761f3bee96c9376bc769fdc3b8d22522baf78d06fb5840" }, "downloads": -1, "filename": "trimarlib-sysfsgpio-0.0.3rc1.tar.gz", "has_sig": false, "md5_digest": "94b42a2ba150011f7b7cf278dff738ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5924, "upload_time": "2018-06-12T12:35:57", "url": "https://files.pythonhosted.org/packages/9d/4b/63212d961d9b7837788b8a57f998c84cb76a7de07822c99089a816073d8f/trimarlib-sysfsgpio-0.0.3rc1.tar.gz" } ], "0.0.3rc2": [ { "comment_text": "", "digests": { "md5": "7b6fa8569b0efd9bf66c42849957816e", "sha256": "d2cf169dfa4d4c248d1a3a0bfcf51381df3a5b30f9ab1841558cf50beaec0581" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.0.3rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "7b6fa8569b0efd9bf66c42849957816e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6217, "upload_time": "2018-06-13T08:31:13", "url": "https://files.pythonhosted.org/packages/1e/f0/30def758205112f275a7ec2d9742244373acd1940ca24e12504251e416cf/trimarlib_sysfsgpio-0.0.3rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5978c88bb40a2d1d2824aba88c70d99e", "sha256": "45dd53dfd3ccc00704381181350ca57248011d6691d5eae839065e30a5c48ffa" }, "downloads": -1, "filename": "trimarlib-sysfsgpio-0.0.3rc2.tar.gz", "has_sig": false, "md5_digest": "5978c88bb40a2d1d2824aba88c70d99e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5930, "upload_time": "2018-06-13T08:31:15", "url": "https://files.pythonhosted.org/packages/61/57/77ed6b2a9a55b680567e6ac843a0b35cf2df0999e4975676b247365ebb5e/trimarlib-sysfsgpio-0.0.3rc2.tar.gz" } ], "0.1.0.dev3": [ { "comment_text": "", "digests": { "md5": "0af6ba96bc15d75d11f7486a53bc986b", "sha256": "ddf9d40b8c350d8090cd55df4ec1a6814c1007506b4d2296a333b039d83f9438" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.1.0.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "0af6ba96bc15d75d11f7486a53bc986b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7746, "upload_time": "2018-09-19T12:41:15", "url": "https://files.pythonhosted.org/packages/26/c4/94606a75143885ca4cc80e7868c3c8f1ce5e855702e42c1d9b3e000d057b/trimarlib_sysfsgpio-0.1.0.dev3-py3-none-any.whl" } ], "0.1.0.dev4": [ { "comment_text": "", "digests": { "md5": "196ca7575afa423fb060d9e553eede08", "sha256": "ee68e5719b74d7e5281e97e4a870ea02654e9bfc9cc8b8a41d5f5a38be0709e0" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.1.0.dev4-py3-none-any.whl", "has_sig": false, "md5_digest": "196ca7575afa423fb060d9e553eede08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9760, "upload_time": "2018-09-19T13:46:09", "url": "https://files.pythonhosted.org/packages/99/e8/cd206b5b747b23c3afafe455c8033f6b070f6d52f5e4b4039f3495ee86dd/trimarlib_sysfsgpio-0.1.0.dev4-py3-none-any.whl" } ], "0.1.0rc2": [ { "comment_text": "", "digests": { "md5": "ef10cda0ba4d50409614f48b68fce3a5", "sha256": "e73bc84bb6cb6528cc9e2d7dc8b0d07494a2f1e856d0034a422bb344491bc445" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.1.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "ef10cda0ba4d50409614f48b68fce3a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9737, "upload_time": "2018-09-19T13:52:15", "url": "https://files.pythonhosted.org/packages/5f/fc/e6d2127046a5b5d1282be5c815910d8a8ac71c2102f50eb6d711ea10035d/trimarlib_sysfsgpio-0.1.0rc2-py3-none-any.whl" } ], "0.1.0rc3": [ { "comment_text": "", "digests": { "md5": "7b5bbff8b233a3771297d01dae34ff3f", "sha256": "7e9f198693e4244e73c3a73eab087208f448c50458d6033938caef6cf37336bf" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.1.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "7b5bbff8b233a3771297d01dae34ff3f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10577, "upload_time": "2018-09-25T14:51:01", "url": "https://files.pythonhosted.org/packages/ac/cc/afdfcc10c750040cf2639b2e0cdbe0e6a220869bc5cdabac1feca0b1d0ba/trimarlib_sysfsgpio-0.1.0rc3-py3-none-any.whl" } ], "0.1.0rc4": [ { "comment_text": "", "digests": { "md5": "ee99c8c9687cb494f5b54e0b596763ef", "sha256": "ba60c7ea03b19f7064ab3dbd4701a01d45e773337bcf02d26168f90d7a9e6f98" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.1.0rc4-py3-none-any.whl", "has_sig": false, "md5_digest": "ee99c8c9687cb494f5b54e0b596763ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10583, "upload_time": "2018-09-26T10:39:52", "url": "https://files.pythonhosted.org/packages/8a/0f/2807681d5b257fb0c62207aa85bcb503a925792788d401a6fa0d075b7293/trimarlib_sysfsgpio-0.1.0rc4-py3-none-any.whl" } ], "0.2.0rc1": [ { "comment_text": "", "digests": { "md5": "d14b418903f6ddc78aee86786b25278c", "sha256": "0ab59ae457742303d0d0e234f6167cb66345fa983127b8173f936d228ca9b4c0" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.2.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "d14b418903f6ddc78aee86786b25278c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10894, "upload_time": "2018-09-28T11:42:10", "url": "https://files.pythonhosted.org/packages/d1/3c/d5f70f579516a201a529db7d5c31838021aa32a3edbe14d5278cb68bbe3e/trimarlib_sysfsgpio-0.2.0rc1-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a3c28ceb06e1ba7764bddf5d05c245e6", "sha256": "659dad6252684f0cc5da1955e6d429a77f78504b04231827c64324d5f4e48bcf" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a3c28ceb06e1ba7764bddf5d05c245e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10879, "upload_time": "2018-10-17T08:48:51", "url": "https://files.pythonhosted.org/packages/2f/50/be2c18c850fcae15a511415117df74ed042e6205586b8f5cdb5973d1afea/trimarlib_sysfsgpio-0.2.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a3c28ceb06e1ba7764bddf5d05c245e6", "sha256": "659dad6252684f0cc5da1955e6d429a77f78504b04231827c64324d5f4e48bcf" }, "downloads": -1, "filename": "trimarlib_sysfsgpio-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a3c28ceb06e1ba7764bddf5d05c245e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10879, "upload_time": "2018-10-17T08:48:51", "url": "https://files.pythonhosted.org/packages/2f/50/be2c18c850fcae15a511415117df74ed042e6205586b8f5cdb5973d1afea/trimarlib_sysfsgpio-0.2.1-py3-none-any.whl" } ] }