Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Ref Docs #3

Merged
merged 12 commits into from
Mar 11, 2018
File renamed without changes.
6 changes: 4 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,17 @@ deploy:
provider: releases
api_key: $GITHUB_TOKEN
file_glob: true
file: bundles/*
file: $TRAVIS_BUILD_DIR/bundles/*
skip_cleanup: true
overwrite: true
on:
tags: true

install:
- pip install pylint circuitpython-build-tools
- pip install pylint circuitpython-build-tools Sphinx sphinx-rtd-theme

script:
- pylint adafruit_lsm9ds0.py
- ([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name examples/*.py)
- circuitpython-build-bundles --filename_prefix adafruit-circuitpython-lsm9ds0 --library_location .
- cd docs && sphinx-build -E -W -b html . _build/html
51 changes: 45 additions & 6 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This is easily achieved by downloading
Usage Example
=============

See examples/simpletest.py for a demo of the usage.
See examples/lsm9ds0_simpletest.py for a demo of the usage.

Contributing
============
Expand All @@ -35,10 +35,49 @@ Contributions are welcome! Please read our `Code of Conduct
<https://github.com/adafruit/Adafruit_CircuitPython_lsm9ds0/blob/master/CODE_OF_CONDUCT.md>`_
before contributing to help this project stay welcoming.

API Reference
=============
Building locally
================

To build this library locally you'll need to install the
`circuitpython-build-tools <https://github.com/adafruit/circuitpython-build-tools>`_ package.

.. code-block:: shell

python3 -m venv .env
source .env/bin/activate
pip install circuitpython-build-tools

Once installed, make sure you are in the virtual environment:

.. code-block:: shell

source .env/bin/activate

Then run the build:

.. code-block:: shell

circuitpython-build-bundles --filename_prefix adafruit-circuitpython-lsm9ds0 --library_location .

Sphinx documentation
-----------------------

Sphinx is used to build the documentation based on rST files and comments in the code. First,
install dependencies (feel free to reuse the virtual environment from above):

.. code-block:: shell

python3 -m venv .env
source .env/bin/activate
pip install Sphinx sphinx-rtd-theme

Now, once you have the virtual environment activated:

.. code-block:: shell

.. toctree::
:maxdepth: 2
cd docs
sphinx-build -E -W -b html . _build/html

api
This will output the documentation to ``docs/_build/html``. Open the index.html in your browser to
view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to
locally verify it will pass.
33 changes: 25 additions & 8 deletions adafruit_lsm9ds0.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,28 @@

CircuitPython module for the LSM9DS0 accelerometer, magnetometer, gyroscope.
Based on the driver from:
https://github.com/adafruit/Adafruit_LSM9DS0
https://github.com/adafruit/Adafruit_LSM9DS0

See examples/simpletest.py for a demo of the usage.

* Author(s): Tony DiCola

Implementation Notes
--------------------

**Hardware:**

* Adafruit `9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS0
<https://www.adafruit.com/product/2021>`_ (Product ID: 2021)

* FLORA `9-DOF Accelerometer/Gyroscope/Magnetometer - LSM9DS0
<https://www.adafruit.com/product/2020>`_ (Product ID: 2020)

**Software and Dependencies:**

* Adafruit CircuitPython firmware for the ESP8622 and M0-based boards:
https://github.com/adafruit/circuitpython/releases
* Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice
"""
try:
import struct
Expand Down Expand Up @@ -153,7 +170,7 @@ def __init__(self):

@property
def accel_range(self):
"""Get and set the accelerometer range. Must be a value of:
"""The accelerometer range. Must be a value of:
- ACCELRANGE_2G
- ACCELRANGE_4G
- ACCELRANGE_6G
Expand Down Expand Up @@ -184,7 +201,7 @@ def accel_range(self, val):

@property
def mag_gain(self):
"""Get and set the magnetometer gain. Must be a value of:
"""The magnetometer gain. Must be a value of:
- MAGGAIN_2GAUSS
- MAGGAIN_4GAUSS
- MAGGAIN_8GAUSS
Expand Down Expand Up @@ -212,7 +229,7 @@ def mag_gain(self, val):

@property
def gyro_scale(self):
"""Get and set the gyroscope scale. Must be a value of:
"""The gyroscope scale. Must be a value of:
- GYROSCALE_245DPS
- GYROSCALE_500DPS
- GYROSCALE_2000DPS
Expand Down Expand Up @@ -248,7 +265,7 @@ def read_accel_raw(self):

@property
def accelerometer(self):
"""Get the accelerometer X, Y, Z axis values as a 3-tuple of
"""Returns the accelerometer X, Y, Z axis values as a 3-tuple of
m/s^2 values.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The accelerometer ..." Doesn't need "Returns".

"""
raw = self.read_accel_raw()
Expand All @@ -269,7 +286,7 @@ def read_mag_raw(self):

@property
def magnetometer(self):
"""Get the magnetometer X, Y, Z axis values as a 3-tuple of
"""Returns the magnetometer X, Y, Z axis values as a 3-tuple of
gauss values.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

"""
raw = self.read_mag_raw()
Expand All @@ -289,7 +306,7 @@ def read_gyro_raw(self):

@property
def gyroscope(self):
"""Get the gyroscope X, Y, Z axis values as a 3-tuple of
"""Returns the gyroscope X, Y, Z axis values as a 3-tuple of
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

degrees/second values.
"""
raw = self.read_mag_raw()
Expand All @@ -308,7 +325,7 @@ def read_temp_raw(self):

@property
def temperature(self):
"""Get the temperature of the sensor in degrees Celsius."""
"""Returns the temperature of the sensor in degrees Celsius."""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

# This is just a guess since the starting point (21C here) isn't documented :(
temp = self.read_temp_raw()
temp = 21.0 + temp/8
Expand Down
Binary file added docs/_static/favicon.ico
Binary file not shown.
File renamed without changes.
15 changes: 12 additions & 3 deletions conf.py → docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import os
import sys
sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath('..'))

# -- General configuration ------------------------------------------------

Expand All @@ -28,7 +28,7 @@
source_suffix = '.rst'

# The master toctree document.
master_doc = 'README'
master_doc = 'index'

# General information about the project.
project = u'Adafruit LSM9DS0 Library'
Expand All @@ -54,7 +54,7 @@
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.env', 'CODE_OF_CONDUCT.md']

# The reST default role (used for this markup: `text`) to use for all
# documents.
Expand All @@ -71,6 +71,9 @@
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False

# If this is True, todo emits a warning for each TODO entries. The default is False.
todo_emit_warnings = True


# -- Options for HTML output ----------------------------------------------

Expand All @@ -95,6 +98,12 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']

# The name of an image file (relative to this directory) to use as a favicon of
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#
html_favicon = '_static/favicon.ico'

# Output file base name for HTML help builder.
htmlhelp_basename = 'AdafruitLSM9DS0Librarydoc'

Expand Down
8 changes: 8 additions & 0 deletions docs/examples.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Simple test
------------

Ensure your device works with this simple test.

.. literalinclude:: ../examples/lsm9ds0_simpletest.py
:caption: examples/lsm9ds0_simpletest.py
:linenos:
49 changes: 49 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
.. include:: ../README.rst

Table of Contents
=================

.. toctree::
:maxdepth: 4
:hidden:

self

.. toctree::
:caption: Examples

examples

.. toctree::
:caption: API Reference
:maxdepth: 3

api

.. toctree::
:caption: Tutorials

.. toctree::
:caption: Related Products

Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS0 <https://www.adafruit.com/product/2021>

FLORA 9-DOF Accelerometer/Gyroscope/Magnetometer - LSM9DS0 <https://www.adafruit.com/product/2020>

.. toctree::
:caption: Other Links

Download <https://github.com/adafruit/Adafruit_CircuitPython_LSM9DS0/releases/latest>
CircuitPython Reference Documentation <https://circuitpython.readthedocs.io>
CircuitPython Support Forum <https://forums.adafruit.com/viewforum.php?f=60>
Discord Chat <https://adafru.it/discord>
Adafruit Learning System <https://learn.adafruit.com>
Adafruit Blog <https://blog.adafruit.com>
Adafruit Store <https://www.adafruit.com>

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
File renamed without changes.