* Return Instances of the Type of self from Fluent Methods
* Updated `Workplane.workplane()`, `Workplane.copyWorkplane()`, `Workplane.newObject()` to return instances of a type that's based on the input parameters (such as `self`).
* Updated type hints to reflect that return types of fluent methods depend on the type of method arguments.
* Added a unit test to verify fluent methods in a derived class return instances of the derived class.
* Fix Workpane MyPy Errors
* Fixed type hints in `sweep()` and `_selectObjects()`.
* Fix `test_cadquery.py` Formatting
* Ran `black` on `test_cadquery.py`.
* Renamed `TypeVar` `WorkplaneT` to `T`
* Renamed `WorkplaneT` to `T` in `cq.py`.
* Reformat with Black
* Re-formatted `cq.py` with `black`.
* Re-format with the Right Version of Black (19.10b0)
* Re-formatted `cq.py` with `black` 19.10b0.
* findSolid returns None when no solids found
Removed a line in the findSolid docstring about raising an error if no
solids found. Added exceptions to several methods that were previously
failing with AttributeErrors when they tried to treat the None object as
a solid.
* findSolid needed type hint Optional on it's return value
* Type hint and test Workplane.findFace
* Rewrite to raise ValueError in findSolid
* I forgot about findFace again
* add exceptions to docstrings
* Added forConstruction option to Workplane.offset2D
* Added Workplane.offset2D example
Co-authored-by: Adam Urbańczyk <adam-urbanczyk@users.noreply.github.com>
* Fixed the `testSplineTangentMagnitudeBelowToleranceThrows` unit test. It was failing since `spline()`'s parameter `tolerance` seems to have been renamed to `tol`.
* Reformatted the code with `black` 19.10b. This is the version that's used by the Travis continuous integration check. The default version of `black` that comes with Conda is 20.8b1, which produces different formatting.
<environment.yml> should be updated to require the specific version of `black` used to check code before it's merged.
* Added support for specifying the tangents at arbitrary interpolation
points when interpolating a B-spline curve with `Workplane.spline()`.
* Added support for specifying whether the tangents should be
automatically scaled. (I.e., only use the tangent vector directions,
rather than their magnitudes.)
* Added support for specifying the value of the curve function
parameter at the interpolation points.
* Added support for specifying the interpolator's tolerance value.
Q: _There are a number of whitespace, and other formatting changes
introduced by `black`. Is there a specific list of parameters that you
use when running code formatting?_
* Added 2d centered option to rect
* Added single bool center option to box
* Add single bool center option to sphere
* Added single bool center option to wedge
* Added 2d centered option to rarray
* Black fix
* Centered docstrings
Change all docstrings for centered options to be consistent and more
clear
* Docstring fixes
* Fix type hint on wedge method
* Initial version of the constraints docs
* Adding the assy section
* apireference cleanup
* Include cutouts
* Roadmap cleanup
* _query cleanup
* Black fix
* Add RadiusNthSelector again
* Typo fix
* Paste error fix
* Show detailed selector docs
* Another typo fix
* Mention other constrain overload
* Added test for end()
* Refactor tags
* Use pyparsing for query parsing and implement tags
* Black and mypy fixes
* Allow "_" in names and tags
* Added tests
* Fixed constrain with tag test
* Better docstring for _query
* Typo fix