Developer Guides

Information about ezdxf internals.

Source Code Formatting

Reformat code by Black for a column width of 80:

C:\> black -l 80 <python-file>

Reformatting the ezdxf code base is an ongoing process, add reformatted code in a separate commit without changing the runtime logic.

Type Annotations

The use of type annotations is encouraged. New modules should pass mypy without errors in non-strict mode. Using # type: ignore is fine in tricky situations - type annotations should be helpful in understanding the code and not be a burden.

The following global options are required to pass mypy without error messages:

[mypy]
python_version = 3.7
ignore_missing_imports = True

Read this to learn where mypy searches for config files.

Use the mypy command line option --ignore-missing-imports and -p to check the whole package from any location in the file system:

PS D:\Source\ezdxf.git> mypy --ignore-missing-imports -p ezdxf
Success: no issues found in 255 source files

Design

The Package Design for Developers section shows the structure of the ezdxf package for developers with more experience, which want to have more insight into the package an maybe want to develop add-ons or want contribute to the ezdxf package.

Documentation Guide