cfractions
is a drop-in replacement for fractions
module
written using Python C API
.
Main features are:
- speed & memory efficiency compared to pure-
Python
counterpart, - full spectre of arithmetic & comparison operations,
Python3.9+
support,PyPy
support (by falling back tofractions.Fraction
proxy).
In what follows python
is an alias for python3.9
or pypy3.9
or any later version (python3.10
, pypy3.10
and so on).
Install the latest pip
& setuptools
packages versions
python -m pip install --upgrade pip setuptools
Download and install the latest stable version from PyPI
repository
python -m pip install --upgrade cfractions
Download the latest version from GitHub
repository
git clone https://github.com/lycantropos/cfractions.git
cd cfractions
Install
python -m pip install -e .
>>> from cfractions import Fraction
>>> Fraction()
Fraction(0, 1)
>>> Fraction(1, 2)
Fraction(1, 2)
>>> Fraction(50, 100)
Fraction(1, 2)
>>> Fraction(0.5)
Fraction(1, 2)
>>> Fraction(1, 3) + Fraction(1, 6)
Fraction(1, 2)
>>> Fraction(3, 2) - 1
Fraction(1, 2)
>>> 1 - Fraction(1, 2)
Fraction(1, 2)
>>> Fraction(1, 3) * Fraction(3, 2)
Fraction(1, 2)
>>> Fraction(1, 3) / Fraction(2, 3)
Fraction(1, 2)
>>> Fraction(1, 6) * 3
Fraction(1, 2)
>>> Fraction(3, 2) / 3
Fraction(1, 2)
>>> str(Fraction(1, 2))
'1/2'
Install bump2version.
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
.
Test bumping version
bump2version --dry-run --verbose release
Bump version
bump2version --verbose release
This will set version to major.minor.patch
.
Install with dependencies
python -m pip install -e .[tests]
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