bentley_ottmann
In what follows python is an alias for python3.10 or pypy3.10
or any later version (python3.11, pypy3.11 and so on).
Installation
Prerequisites
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 bentley_ottmann
Developer
Download the latest version from GitHub repository
git clone https://github.com/lycantropos/bentley_ottmann.git
cd bentley_ottmann
Install
python -m pip install -e '.'
Usage
With segments
>>> import math
>>> from fractions import Fraction
>>> from ground.context import Context
>>> context = Context(coordinate_factory=Fraction, sqrt=math.sqrt)
>>> Point, Segment = context.point_cls, context.segment_cls
>>> unit_segments = [
... Segment(Point(0, 0), Point(1, 0)),
... Segment(Point(0, 0), Point(0, 1))
... ]
we can check if they intersect
>>> from bentley_ottmann.planar import segments_intersect
>>> segments_intersect(unit_segments, context=context)
True
With contours
>>> Contour = context.contour_cls
>>> triangle = Contour([Point(0, 0), Point(1, 0), Point(0, 1)])
>>> degenerate_triangle = Contour([Point(0, 0), Point(2, 0), Point(1, 0)])
we can check if they are self-intersecting or not
>>> from bentley_ottmann.planar import contour_self_intersects
>>> contour_self_intersects(triangle, context=context)
False
>>> contour_self_intersects(degenerate_triangle, context=context)
True
Development
Bumping version
Prerequisites
Install bump-my-version.
Release
Choose which version number category to bump following semver specification.
Test bumping version
bump-my-version bump --dry-run --verbose $CATEGORY
where $CATEGORY is the target version number category name, possible
values are patch/minor/major.
Bump version
bump-my-version bump --verbose $CATEGORY
This will set version to major.minor.patch.
Running tests
Plain
Install with dependencies
python -m pip install -e '.[tests]'
Run
pytest
Docker container
Run
-
with
CPythondocker-compose --file docker-compose.cpython.yml up
-
with
PyPydocker-compose --file docker-compose.pypy.yml up
Bash script
Run
-
with
CPython./run-tests.sh
or
./run-tests.sh cpython -
with
PyPy./run-tests.sh pypy
PowerShell script
Run
-
with
CPython.\run-tests.ps1
or
.\run-tests.ps1 cpython
-
with
PyPy.\run-tests.ps1 pypy
Metadata
Release files for bentley-ottmann 9.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bentley_ottmann-9.0.1.tar.gz | 13.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bentley_ottmann-9.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.6 kB
Release files / bentley_ottmann-9.0.1.tar.gz
| Download URL | bentley_ottmann-9.0.1.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d58f40f380cc68ca954ab60c352a01a30f61d681e461a54e6038346ef3673d6c
|
|
BLAKE2b-256 checksum How to use checksums |
2e29c94b8194bc6782876a74910c125b4fa658c4c8e52af7af1eb16f82f5e9a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / bentley_ottmann-9.0.1-py3-none-any.whl
| Download URL | bentley_ottmann-9.0.1-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
44421a21d3005bf9c46557d3a79ef934cbbcca418a89f2cdfd8b87654f166e55
|
|
BLAKE2b-256 checksum How to use checksums |
ae8b2b961ccd2ae529e2a33a8c6bb3b7de2ebc3b62e9bf2e694c876a9ebeed09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|