Skip to content
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Robust And Fast Functional IO Toolkit

*Raffiot* is small (almost) dependency-free python library providing some
*Raffiot* is small dependency-free python library providing some
usual functional tools. It currently provides
- an easy-to-use `IO` monad which is **stack-safe**, **fast**, support
**asynchronous**, **concurrent**, **parallel** programming, has many other features.
Expand Down Expand Up @@ -35,10 +35,9 @@ The [API](https://chrilves.github.io/raffiot.py/api/index.html) is online at

## Features

- **pure python**: *Raffiot* is written entirely in Python 3.7+.
- **pure python**: *Raffiot* is written entirely in Python 3.8+.
- **small**: it is just a few small files.
- **(almost) dependency-free**: it only depends on `typing-extensions` (for the
`@final` annotation).
- **dependency-free**: it only depends on the python standary library.
- **crystal clear code**

### IO
Expand Down Expand Up @@ -72,4 +71,4 @@ result of a computation:
- `Ok(value)`: the computation successfully computed the this `value`.
- `Error(error)`: the computation failed on some expected failure `error`, probably
from the business domain.
- `Panic(exception)`: the computation failed on some unexpected failure `exception`.
- `Panic(exception)`: the computation failed on some unexpected failure `exception`.
3 changes: 1 addition & 2 deletions raffiot/_internal.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@

from enum import Enum

from typing_extensions import final
from typing import List, Any, Iterable
from typing import List, Any, Iterable, final
from collections import abc

__all__ = ["IOTag", "ContTag", "ResultTag", "FiberState"]
Expand Down
4 changes: 1 addition & 3 deletions raffiot/_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@
from queue import Queue
from random import randint
from threading import Thread
from typing import Any, List, TypeVar, Generic, Callable, Optional, Tuple

from typing_extensions import final
from typing import Any, List, TypeVar, Generic, Callable, Optional, Tuple, final

from raffiot._internal import ContTag, FiberState, IOTag, ResultTag
from raffiot.io import IO
Expand Down
4 changes: 1 addition & 3 deletions raffiot/io.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

import time
from collections import abc
from typing import TypeVar, Generic, Callable, Any, List, Iterable

from typing_extensions import final
from typing import TypeVar, Generic, Callable, Any, List, Iterable, final

from raffiot import result
from raffiot._internal import IOTag
Expand Down
4 changes: 1 addition & 3 deletions raffiot/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@

from collections import abc
from dataclasses import dataclass
from typing import TypeVar, Generic, Callable, Any, Tuple, List, Iterable

from typing_extensions import final
from typing import TypeVar, Generic, Callable, Any, Tuple, List, Iterable, final

from raffiot import _runtime
from raffiot import io
Expand Down
4 changes: 1 addition & 3 deletions raffiot/result.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

from collections import abc
from dataclasses import dataclass
from typing import TypeVar, Generic, Callable, Any, List, Iterable, Union

from typing_extensions import final
from typing import TypeVar, Generic, Callable, Any, List, Iterable, Union, final

from raffiot.utils import (
ComputationStatus,
Expand Down
4 changes: 1 addition & 3 deletions raffiot/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
from dataclasses import dataclass
from enum import IntEnum
from traceback import format_exc, format_stack
from typing import Any, List, Generic, TypeVar, Iterable

from typing_extensions import final
from typing import Any, List, Generic, TypeVar, Iterable, final

__all__ = [
"TracedException",
Expand Down
4 changes: 1 addition & 3 deletions raffiot/val.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@

from collections import abc
from dataclasses import dataclass
from typing import Generic, TypeVar, Callable, List, Any

from typing_extensions import final
from typing import Generic, TypeVar, Callable, List, Any, final

from raffiot import io, resource
from raffiot.io import IO
Expand Down
4 changes: 1 addition & 3 deletions raffiot/var.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@

from collections import abc
from dataclasses import dataclass
from typing import Generic, TypeVar, Callable, List, Any, Tuple

from typing_extensions import final
from typing import Generic, TypeVar, Callable, List, Any, Tuple, final

from raffiot import io, resource
from raffiot.io import IO
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@
"Intended Audience :: Developers",
"Topic :: Software Development :: Build Tools",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Operating System :: OS Independent",
],
install_requires=["typing-extensions"],
python_requires=">=3.7",
install_requires=[],
python_requires=">=3.8",
zip_safe=False,
package_data={"raffiot": ["py.typed"]},
)