diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f1799598..d126f8aa 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -95,6 +95,6 @@ jobs: coverage combine coverage* coverage xml -i -# - name: Upload report -# run: | -# ./codacy-coverage-reporter report --api-token ${{ secrets.CODACY_API_TOKEN }} --organization-provider gh --username adamcharnock --project-name lightbus -r coverage.xml + - name: Upload report + run: | + ./codacy-coverage-reporter report --project-token ${{ secrets.CODACY_PROJECT_TOKEN }} --organization-provider gh --username adamcharnock --project-name lightbus -r coverage.xml diff --git a/README.md b/README.md new file mode 100644 index 00000000..17011693 --- /dev/null +++ b/README.md @@ -0,0 +1,73 @@ +# What is Lightbus? + +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/f5e5fd4eeb57462b80e2a99e957b7baa)](https://app.codacy.com/gh/adamcharnock/lightbus/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) +[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/f5e5fd4eeb57462b80e2a99e957b7baa)](https://app.codacy.com/gh/adamcharnock/lightbus/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://lightbus.org/reference/code-of-conduct/) + +Lightbus allows your backend processes to communicate, run background +tasks, and expose internal APIs. + +Lightbus uses Redis as its underlying transport, although support for +other platforms may eventually be added. + +Lightbus requires Python 3.8 or above. + +**Full documentation can be found at https://lightbus.org** + +## Designed for ease of use + +Lightbus is designed with developers in mind. The syntax aims to be +intuitive and familiar, and common problems are caught with clear and +helpful error messages. + +For example, a naïve authentication API: + +``` python3 +class AuthApi(Api): + user_registered = Event(parameters=('username', 'email')) + + class Meta: + name = 'auth' + + def check_password(self, user, password): + return ( + user == 'admin' + and password == 'secret' + ) +``` + +This can be called as follows: + +``` python3 +import lightbus + +bus = lightbus.create() + +bus.auth.check_password( + user='admin', + password='secret' +) +# Returns true +``` + +You can also listen for events: + +``` python3 +import lightbus + +bus = lightbus.create() + +def send_signup_email(event_message, + username, email): + send_mail(email, + subject=f'Welcome {username}' + ) + +@bus.client.on_start() +def bus_start(client): + bus.auth.user_registered.listen( + send_signup_email + ) +``` + +**To get started checkout the documentation at https://lightbus.org.** diff --git a/README.rst b/README.rst deleted file mode 100644 index f221f3e6..00000000 --- a/README.rst +++ /dev/null @@ -1,98 +0,0 @@ - -What is Lightbus? -================= - - -.. image:: https://img.shields.io/circleci/build/github/adamcharnock/lightbus - :target: https://circleci.com/gh/adamcharnock/lightbus/tree/master - :alt: CircleCI - - -.. image:: https://api.codacy.com/project/badge/Grade/801d031fd2714b4f9c643182f1fbbd0b - :target: https://www.codacy.com/app/adamcharnock/lightbus?utm_source=github.com&utm_medium=referral&utm_content=adamcharnock/lightbus&utm_campaign=Badge_Grade - :alt: Codacy Badge - - -.. image:: https://api.codacy.com/project/badge/Coverage/801d031fd2714b4f9c643182f1fbbd0b - :target: https://www.codacy.com/app/adamcharnock/lightbus?utm_source=github.com&utm_medium=referral&utm_content=adamcharnock/lightbus&utm_campaign=Badge_Coverage - :alt: Codacy Badge - - -.. image:: https://img.shields.io/discord/645218336229031946 - :target: https://discord.gg/2j594ws - :alt: Discord - - -.. image:: https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg - :target: https://lightbus.org/reference/code-of-conduct/ - :alt: Contributor Covenant - - -Lightbus allows your backend processes to communicate, run background tasks, -and expose internal APIs. - -Lightbus uses Redis as its underlying transport, although support -for other platforms may eventually be added. - -Lightbus requires Python 3.8 or above. - -**Full documentation can be found at https://lightbus.org** - -Designed for ease of use ------------------------- - -Lightbus is designed with developers in mind. The syntax aims to -be intuitive and familiar, and common problems are caught with -clear and helpful error messages. - -For example, a naïve authentication API: - -.. code-block:: python3 - - class AuthApi(Api): - user_registered = Event(parameters=('username', 'email')) - - class Meta: - name = 'auth' - - def check_password(self, user, password): - return ( - user == 'admin' - and password == 'secret' - ) - -This can be called as follows: - -.. code-block:: python3 - - import lightbus - - bus = lightbus.create() - - bus.auth.check_password( - user='admin', - password='secret' - ) - # Returns true - -You can also listen for events: - -.. code-block:: python3 - - import lightbus - - bus = lightbus.create() - - def send_signup_email(event_message, - username, email): - send_mail(email, - subject=f'Welcome {username}' - ) - - @bus.client.on_start() - def bus_start(client): - bus.auth.user_registered.listen( - send_signup_email - ) - -**To get started checkout the documentation at https://lightbus.org.**