Coder Social home page Coder Social logo

ripple-energy-fork's Introduction

Ripple Energy

A Python package For interacting with the Ripple Energy GraphQL API.

The primary purpose of this package is to create an interface for Home Assistant to communicate with the Ripple Energy GraphQL API however, the facility is available to develop this module further by adding additional queries / functions.


Disclaimer - I do not work for Ripple Energy however, I have memberships in some of their co-ops. While this module has been developed in consultation with Ripple Energy, I cannot guarantee it's long-term support or stability.


PyPI - Version

PyPI - Python Version


Table of Contents

To-Do

  • Create exceptions
  • Put functions into classes
  • Add linting
  • Create tests
  • Create build pipeline
  • Publish to PyPi
  • Make Async?

Installation

From Package Index

It is recommended to use pip to pull the package from PyPi

pip install ripple-energy

From Repository

Clone this repository

git clone https://github.com/danieledwardgeorgehitchcock/ripple-energy.git

This project leverages the use of Hatch for project management - please follow the installation instructions there before continuing.

Once the above has completed, enter in to the project directory

cd ripple-energy

As this package is managed by Hatch, you can start an environment which automatically pulls the project dependencies

hatch shell start

You should then be able to use the package from within this environment.

Example

from ripple_energy import RippleEnergy, RippleEnergyCredentialAuth
import asyncio
from sys import platform

if(platform == "win32"):
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) #Avoid event loop selector policy error in Windows 

async def main():

  auth = RippleEnergyCredentialAuth(email="YOUR_RIPPLE_EMAIL", password="YOUR_RIPPLE_PASSWORD")

  async with RippleEnergy(auth=auth) as ripple:

      #Query filter
      faqs = await ripple.faqs("business")
      
      #Full object response
      print(faqs)
      
      member = await ripple.member()

      #Filtered object response
      print(member.address)

      version = await ripple.version()

      #Simple type response
      print(version)

if __name__ == "__main__":
  asyncio.run(main())

Contributing

To add a new query to this module, add the GraphQL query into the src/ripple_energy/graphql_queries folder as a file with the extension .graphql such as: my_example_query.graphql - please see the existing queries as an example of how to write them.

In a terminal, make sure you are in the Hatch shell environment:

hatch shell start

This project uses the Ariadne code generator. To run it:

ariadne-codegen

If there no errors, a new client should be generated in the src/ripple_energy/graphql_client folder.

Add the new function to src/ripple_energy/ripple_energy.py - please see the existing functions as an example of how to write them.

Commit the changes and create a Pull Request in this repo.

License

ripple-energy is distributed under the terms of the MIT license.

ripple-energy-fork's People

Contributors

danieledwardgeorgehitchcock avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.