2 unstable releases
0.1.0 | Oct 8, 2023 |
---|---|
0.0.0 | Apr 9, 2022 |
#615 in Math
1.5MB
40K
SLoC
rene
In what follows python
is an alias for python3.8
or pypy3.8
or any later version (python3.9
, pypy3.9
and so on).
Installation
Install the latest pip
& setuptools
packages versions
python -m pip install --upgrade pip setuptools
User
Download and install the latest stable version from PyPI
repository
python -m pip install --upgrade rene
Developer
Download the latest version from GitHub
repository
git clone https://github.com/lycantropos/rene.git
cd rene
Install
python setup.py install
Usage
>>> from rene.exact import (Contour,
... Empty,
... Point,
... Polygon)
>>> square = Polygon(Contour([Point(0, 0), Point(4, 0), Point(4, 4),
... Point(0, 4)]),
... [])
>>> square == square
True
>>> square & square == square
True
>>> square | square == square
True
>>> square - square == Empty()
True
>>> square ^ square == Empty()
True
>>> len(square.border.vertices) == 4
True
>>> len(square.holes) == 0
True
>>> from rene.exact import ConstrainedDelaunayTriangulation
>>> (ConstrainedDelaunayTriangulation.from_polygon(square).triangles
... == [Contour([Point(0, 0), Point(4, 0), Point(0, 4)]),
... Contour([Point(0, 4), Point(4, 0), Point(4, 4)])])
True
>>> from rene import Location
>>> from rene.exact import Trapezoidation
>>> trapezoidation = Trapezoidation.from_polygon(square)
>>> all(vertex in trapezoidation for vertex in square.border.vertices)
True
>>> all(trapezoidation.locate(vertex) is Location.BOUNDARY
... for vertex in square.border.vertices)
True
Development
Bumping version
Preparation
Install bump2version.
Pre-release
Choose which version number category to bump following semver specification.
Test bumping version
bump2version --dry-run --verbose $CATEGORY
where $CATEGORY
is the target version number category name, possible
values are patch
/minor
/major
.
Bump version
bump2version --verbose $CATEGORY
This will set version to major.minor.patch-alpha
.
Release
Test bumping version
bump2version --dry-run --verbose release
Bump version
bump2version --verbose release
This will set version to major.minor.patch
.
Running tests
Install dependencies
python -m pip install -r requirements-tests.txt
Plain
pytest
Inside Docker
container:
- with
CPython
docker-compose --file docker-compose.cpython.yml up
- with
PyPy
docker-compose --file docker-compose.pypy.yml up
Bash
script:
-
with
CPython
./run-tests.sh
or
./run-tests.sh cpython
-
with
PyPy
./run-tests.sh pypy
PowerShell
script:
- with
CPython
or.\run-tests.ps1
.\run-tests.ps1 cpython
- with
PyPy
.\run-tests.ps1 pypy
Dependencies
~3–7.5MB
~73K SLoC