circuitpython/docs
Damien George 3c4bfd1dec py/objexcept: Support errno attribute on OSError exceptions.
This commit adds the errno attribute to exceptions, so code can retrieve
errno codes from an OSError using exc.errno.

The implementation here simply lets `errno` (and the existing `value`)
attributes work on any exception instance (they both alias args[0]).  This
is for efficiency and to keep code size down.  The pros and cons of this
are:

Pros:
- more compatible with CPython, less difference to document and learn
- OSError().errno will correctly return None, whereas the current way of
  doing it via OSError().args[0] will raise an IndexError
- it reduces code size on most bare-metal ports (because they already have
  the errno qstr)
- for Python code that uses exc.errno the generated bytecode is 2 bytes
  smaller and more efficient to execute (compared with exc.args[0]); so
  bytecode loaded to RAM saves 2 bytes RAM for each use of this attribute,
  and bytecode that is frozen saves 2 bytes flash/ROM for each use
- it's easier/shorter to type, and saves 2 bytes of space in .py files that
  use it (for each use)

Cons:
- increases code size by 4-8 bytes on minimal ports that don't already have
  the `errno` qstr
- all exceptions now have .errno and .value attributes (a cpydiff test is
  added to address this)

See also #2407.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-23 22:03:46 +10:00
..
develop docs/develop: Improve user C modules to properly describe how to build. 2021-04-02 17:07:20 +11:00
differences docs/differences: Clarify the differences are against Python 3.4. 2019-01-11 12:11:02 +11:00
esp32 esp32/machine_hw_spi: Use default pins when making SPI if none given. 2021-03-12 10:56:25 +11:00
esp8266 docs/esp8266/quickref: Add warning block about NeoPixel timing. 2021-01-30 14:36:30 +11:00
library py/objexcept: Support errno attribute on OSError exceptions. 2021-04-23 22:03:46 +10:00
pyboard docs: More consistent capitalization and use of articles in headings. 2020-01-06 22:17:29 +11:00
readthedocs/settings docs: Add RTD local_settings file, to add custom templates. 2014-12-21 11:21:06 +00:00
reference tools: Add filesystem action examples to pyboard.py help. 2021-02-13 14:37:28 +11:00
static docs: Add M-logo as favicon. 2017-02-07 20:04:40 +11:00
templates docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build. 2020-06-05 21:42:17 +10:00
unix windows: Improve default search path. 2020-02-11 13:34:35 +11:00
wipy docs: Remove spaces on lines that are empty. 2019-12-04 15:02:54 +11:00
Makefile docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build. 2020-06-05 21:42:17 +10:00
README.md docs/README: Add short paragraph about using readthedocs. 2020-01-12 11:45:55 +11:00
conf.py all: Bump version to 1.15. 2021-04-19 00:11:51 +10:00
index.rst docs/unix: Add a new new quickref page for the UNIX port. 2020-02-04 17:53:06 +11:00
license.rst docs/license: Update copyright year. 2017-06-23 21:48:27 +03:00
make.bat docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build. 2020-06-05 21:42:17 +10:00

README.md

MicroPython Documentation

The MicroPython documentation can be found at: http://docs.micropython.org/en/latest/

The documentation you see there is generated from the files in the docs tree: https://github.com/micropython/micropython/tree/master/docs

Building the documentation locally

If you're making changes to the documentation, you may want to build the documentation locally so that you can preview your changes.

Install Sphinx, and optionally (for the RTD-styling), sphinx_rtd_theme, preferably in a virtualenv:

 pip install sphinx
 pip install sphinx_rtd_theme

In micropython/docs, build the docs:

make html

You'll find the index page at micropython/docs/build/html/index.html.

Having readthedocs.org build the documentation

If you would like to have docs for forks/branches hosted on GitHub, GitLab or BitBucket an alternative to building the docs locally is to sign up for a free https://readthedocs.org account. The rough steps to follow are:

  1. sign-up for an account, unless you already have one
  2. in your account settings: add GitHub as a connected service (assuming you have forked this repo on github)
  3. in your account projects: import your forked/cloned micropython repository into readthedocs
  4. in the project's versions: add the branches you are developing on or for which you'd like readthedocs to auto-generate docs whenever you push a change

PDF manual generation

This can be achieved with:

make latexpdf

but require rather complete install of LaTeX with various extensions. On Debian/Ubuntu, try (500MB+ download):

apt-get install texlive-latex-recommended texlive-latex-extra