diff --git a/readthedocs.yml b/.readthedocs.yml similarity index 100% rename from readthedocs.yml rename to .readthedocs.yml diff --git a/.travis.yml b/.travis.yml index d8f2b75..b0448eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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_ds1307.py - ([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name examples/*.py) - circuitpython-build-bundles --filename_prefix adafruit-circuitpython-ds1307 --library_location . + - cd docs && sphinx-build -E -W -b html . _build/html diff --git a/README.rst b/README.rst index 3ab4ebf..c966d6b 100644 --- a/README.rst +++ b/README.rst @@ -6,9 +6,9 @@ Introduction :target: https://circuitpython.readthedocs.io/projects/ds1307/en/latest/ :alt: Documentation Status -.. image :: https://badges.gitter.im/adafruit/circuitpython.svg - :target: https://gitter.im/adafruit/circuitpython?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge - :alt: Gitter +.. image :: https://img.shields.io/discord/327254708534116352.svg + :target: https://discord.gg/nBQh6qu + :alt: Discord This is a great battery-backed real time clock (RTC) that allows your microcontroller project to keep track of time even if it is reprogrammed, @@ -24,16 +24,20 @@ If you do not need a DS1307, or you need a 3.3V-power/logic capable RTC please check out our affordable `PCF8523 RTC breakout `_. -.. image:: 3296-00.jpg +.. image:: ../docs/_static/3296-00.jpg + :alt: DS1307 Dependencies ============= +This driver depends on: -This driver depends on the `Register `_ -and `Bus Device `_ -libraries. Please ensure they are also available on the CircuitPython filesystem. +* `Adafruit CircuitPython `_ +* `Bus Device `_ +* `Register `_ + +Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading -`a library and driver bundle `_. +`the Adafruit library and driver bundle `_. Usage Notes =========== @@ -47,7 +51,7 @@ Of course, you must import the library to use it: import time All the Adafruit RTC libraries take an instantiated and active I2C object -(from the `busio` library) as an argument to their constructor. The way to +(from the ``busio`` library) as an argument to their constructor. The way to create an I2C object depends on the board you are using. For boards with labeled SCL and SDA pins, you can: @@ -55,8 +59,8 @@ SCL and SDA pins, you can: from board import * -You can also use pins defined by the onboard `microcontroller` through the -`microcontroller.pin` module. +You can also use pins defined by the onboard ``microcontroller`` through the +``microcontroller.pin`` module. Now, to initialize the I2C bus: @@ -78,8 +82,8 @@ To set the time, you need to set ``datetime`` to a `time.struct_time` object: rtc.datetime = time.struct_time((2017,1,9,15,6,0,0,9,-1)) After the RTC is set, you retrieve the time by reading the ``datetime`` -attribute and access the standard attributes of a struct_time such as `tm_year`, -`tm_hour` and `tm_min`. +attribute and access the standard attributes of a struct_time such as ``tm_year``, +``tm_hour`` and ``tm_min``. .. code:: python @@ -87,10 +91,56 @@ attribute and access the standard attributes of a struct_time such as `tm_year`, print(t) print(t.tm_hour, t.tm_min) -API Reference -============= +Contributing +============ + +Contributions are welcome! Please read our `Code of Conduct +`_ +before contributing to help this project stay welcoming. + +Building locally +================ + +To build this library locally you'll need to install the +`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-ds1307 --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. \ No newline at end of file diff --git a/api.rst b/api.rst deleted file mode 100644 index 33284e3..0000000 --- a/api.rst +++ /dev/null @@ -1,3 +0,0 @@ - -.. automodule:: adafruit_ds1307 - :members: diff --git a/3296-00.jpg b/docs/_static/3296-00.jpg similarity index 100% rename from 3296-00.jpg rename to docs/_static/3296-00.jpg diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico new file mode 100644 index 0000000..5aca983 Binary files /dev/null and b/docs/_static/favicon.ico differ diff --git a/docs/api.rst b/docs/api.rst new file mode 100644 index 0000000..615c652 --- /dev/null +++ b/docs/api.rst @@ -0,0 +1,5 @@ + +.. If you created a package, create one automodule per module in the package. + +.. automodule:: adafruit_ds1307 + :members: diff --git a/conf.py b/docs/conf.py similarity index 92% rename from conf.py rename to docs/conf.py index 07d90ca..66678dd 100644 --- a/conf.py +++ b/docs/conf.py @@ -18,7 +18,7 @@ # import os import sys -sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ------------------------------------------------ @@ -35,6 +35,11 @@ 'sphinx.ext.viewcode', ] +# Uncomment the below if you use native CircuitPython modules such as +# digitalio, micropython and busio. List the modules you use. Without it, the +# autodoc module docs will fail to generate with a warning. +autodoc_mock_imports = ["adafruit_register", "adafruit_bus_device"] + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -49,7 +54,7 @@ # source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'README' +master_doc = 'index' # General information about the project. project = u'Adafruit DS1307 Library' @@ -84,7 +89,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. @@ -93,7 +98,7 @@ # If true, '()' will be appended to :func: etc. cross-reference text. # -# add_function_parentheses = True +add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). @@ -117,6 +122,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 ---------------------------------------------- @@ -170,6 +178,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' + # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. diff --git a/docs/examples.rst b/docs/examples.rst new file mode 100644 index 0000000..ab698d8 --- /dev/null +++ b/docs/examples.rst @@ -0,0 +1,8 @@ +Simple test +------------ + +Ensure your device works with this simple test. + +.. literalinclude:: ../examples/ds1307_simpletest.py + :caption: examples/ds1307_simpletest.py + :linenos: diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..aa37e22 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,47 @@ +.. 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 DS1307 Real Time Clock Assembled Breakout Board + +.. toctree:: + :caption: Other Links + + Download + CircuitPython Reference Documentation + CircuitPython Support Forum + Discord Chat + Adafruit Learning System + Adafruit Blog + Adafruit Store + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/examples/demo.py b/examples/ds1307_simpletest.py similarity index 100% rename from examples/demo.py rename to examples/ds1307_simpletest.py