Python's None Wrapper, inspired by java.util.Optional
Project description
py_nullable
Introduction
Python's None Wrapper, inspired by java.util.Optional
Getting Started
Installing
install from PyPI with:
python -m pip install py_nullable
install from source with:
git clone https://github.com/miyamo2theppl/py_nullable.git
cd py_nullable
python -m pip install .
Simple Usage
if you want to get value.
from py_nullable import Nullable
nullable: Nullable[str] = Nullable[str]("some string")
if nullable.isPresent():
print(nullable.get()) # Prints some string
if you want to generate a new Nullable from an existing Nullable with the mapping function.
from typing import Callable
from py_nullable import Nullable
nullable: Nullable[str] = Nullable[str]("1234")
callback: Callable[[str], int] = lambda x: int(x) * 2
result: Nullable[int] = nullable.map(callback)
print(result.get()) # Prints 2468
if you want to refactor the return value from Optional[T] to Nullable[T].
from yourpackage import YourClass
from py_nullable import Nullable, nullable_wrap
in_memory_db: dict[str, YourClass] = {"A001": YourClass("foo")}
@nullable_wrap
def find_by_id(id: str) -> Optional[YourClass]:
return in_memory_db.get(id)
nullable: Nullable[YourClass] = find_by_id("B001")
print(nullable.isEmpty()) # Prints True
Contributing
Create a feature branch
git checkout -b feature_{example}
Set up your environment
python -m venv .venv
.venv/bin/activate
pip install -r dev_requirements.txt
pip install -e .
Running Tests
pytest --cov py_nullable --cov-branch --cov-report=html
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py_nullable-0.3.2.tar.gz
(10.7 kB
view details)
Built Distribution
File details
Details for the file py_nullable-0.3.2.tar.gz
.
File metadata
- Download URL: py_nullable-0.3.2.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcc92f74f68400682fac3f45473165942cdc60414d4d7c3c743a8569dfd09750 |
|
MD5 | 20c2802a45ad49514d14e99b343fae54 |
|
BLAKE2b-256 | c3c1b07c12e0f0b79dba194940d220a18e9a1a62da7272ba1ee932737bd53a80 |
File details
Details for the file py_nullable-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: py_nullable-0.3.2-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 852b6364536fee34c5310164ed951775b9b2c61847e8dcec6e893fc8686934b9 |
|
MD5 | 5f9f2ea4040b15a381189211bfdba684 |
|
BLAKE2b-256 | 8eaca8c3f7963388d325fd554b29b8aa99ce9e6a528c099d1b2d1942f9664401 |