A simple Maybe (Option) type for Python 3 inspired by Rust, fully type annotated.
Latest release:
pip install rustedpy-maybe
Latest GitHub master
branch version:
pip install git+https://github.com/rustedpy/maybe
Experimental. API subject to change.
The idea is that a possible value can be either Some(value)
or Nothing()
,
with a way to differentiate between the two. Some
and Nothing
are both
classes encapsulating a possible value.
Example usage,
from maybe import Nothing, Some
o = Some('yay')
n = Nothing()
assert o.unwrap_or_else(str.upper) == 'yay'
assert n.unwrap_or_else(lambda: 'default') == 'default'
These steps should work on any Unix-based system (Linux, macOS, etc) with Python
and make
installed. On Windows, you will need to refer to the Python
documentation (linked below) and reference the Makefile
for commands to run
from the non-unix shell you're using on Windows.
- Setup and activate a virtual environment. See Python docs for more information about virtual environments and setup.
- Run
make install
to install dependencies - Switch to a new git branch and make your changes
- Test your changes:
make test
make lint
- You can also start a Python REPL and import
maybe
- Update documentation
- Edit any relevant docstrings, markdown files
- Run
make docs
- Add an entry to the changelog
- Git commit all your changes and create a new PR.
MIT License