funstruct 1.0.0__tar.gz → 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- funstruct-1.0.1/.github/workflows/docs.yml +31 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/PKG-INFO +4 -2
- {funstruct-1.0.0 → funstruct-1.0.1}/README.md +1 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/mkdocs.yml +4 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/pyproject.toml +3 -2
- {funstruct-1.0.0 → funstruct-1.0.1}/uv.lock +1 -1
- funstruct-1.0.1/uv.toml +3 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/.claude/settings.local.json +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/.github/workflows/ci.yml +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/.github/workflows/publish.yml +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/.gitignore +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/.pre-commit-config.yaml +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/CONTRIBUTING.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/LICENSE +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/benchmarks/test_bench_collections.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/applicative/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/applicative/validated.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/cons.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/frozendict.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/tree.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/functor/.gitkeep +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/functor/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/either.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/future.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/option.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/reader.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/result.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/state.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/writer.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/either_t.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/option_t.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/reader_t.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/state_t.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/writer_t.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/applicative.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/index.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monad.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monadtransformer.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monoid.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/semigroup.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/docs/util/tailrec.md +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/applicative/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/applicative/validated.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/cons.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/frozendict.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/tree.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/functor/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/either.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/future.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/option.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/reader.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/result.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/state.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/writer.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/either_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/option_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/reader_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/state_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/writer_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monoid/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/py.typed +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/semigroup/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_applicative.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_functor.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monad.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monad_transformer.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monoid.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_semigroup.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/util/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/util/tailrec.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/justfile +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/mise.toml +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/noxfile.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/__init__.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/laws.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_cons.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_either.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_either_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_frozendict.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_future.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_law_violations.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_option.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_option_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_reader.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_reader_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_result.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_state.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_state_t.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_tailrec.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_tree.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_validated.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_writer.py +0 -0
- {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_writer_t.py +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
release:
|
|
7
|
+
types: [published]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
deploy:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v5
|
|
17
|
+
with:
|
|
18
|
+
fetch-depth: 0
|
|
19
|
+
- uses: astral-sh/setup-uv@v7
|
|
20
|
+
- run: uv sync --group docs
|
|
21
|
+
- name: Deploy docs
|
|
22
|
+
run: |
|
|
23
|
+
git config user.name "github-actions[bot]"
|
|
24
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
25
|
+
if [ "${{ github.event_name }}" = "release" ]; then
|
|
26
|
+
VERSION=${{ github.event.release.tag_name }}
|
|
27
|
+
else
|
|
28
|
+
VERSION=dev
|
|
29
|
+
fi
|
|
30
|
+
uv run mike deploy "$VERSION" latest --update-aliases --push
|
|
31
|
+
uv run mike set-default latest --push
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: funstruct
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Fun & functional structures for Python
|
|
5
|
-
Project-URL: Homepage, https://github.
|
|
5
|
+
Project-URL: Homepage, https://veyga.github.io/funstruct/
|
|
6
|
+
Project-URL: Documentation, https://veyga.github.io/funstruct/
|
|
6
7
|
Project-URL: Repository, https://github.com/veyga/funstruct
|
|
7
8
|
Author-email: Andrew Stefanich <andrewstefanich@gmail.com>
|
|
8
9
|
License: MIT
|
|
@@ -99,6 +100,7 @@ class Monad(Applicative):
|
|
|
99
100
|
def __rshift__ = bind # >>
|
|
100
101
|
|
|
101
102
|
class MonadTransformer(Monad, Generic[_F, _A]):
|
|
103
|
+
def lift_f(cls, inner: _F) -> MonadTransformer: ...
|
|
102
104
|
def and_then(self, other) -> MonadTransformer: ...
|
|
103
105
|
```
|
|
104
106
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "funstruct"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.1"
|
|
4
4
|
description = "Fun & functional structures for Python"
|
|
5
5
|
authors = [{name = "Andrew Stefanich", email = "andrewstefanich@gmail.com"}]
|
|
6
6
|
license = {text = "MIT"}
|
|
@@ -10,7 +10,8 @@ keywords = ["functional", "immutable", "fp", "data structures", "cons"]
|
|
|
10
10
|
dependencies = []
|
|
11
11
|
|
|
12
12
|
[project.urls]
|
|
13
|
-
Homepage = "https://github.
|
|
13
|
+
Homepage = "https://veyga.github.io/funstruct/"
|
|
14
|
+
Documentation = "https://veyga.github.io/funstruct/"
|
|
14
15
|
Repository = "https://github.com/veyga/funstruct"
|
|
15
16
|
|
|
16
17
|
[build-system]
|
funstruct-1.0.1/uv.toml
ADDED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|