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.
Files changed (102) hide show
  1. funstruct-1.0.1/.github/workflows/docs.yml +31 -0
  2. {funstruct-1.0.0 → funstruct-1.0.1}/PKG-INFO +4 -2
  3. {funstruct-1.0.0 → funstruct-1.0.1}/README.md +1 -0
  4. {funstruct-1.0.0 → funstruct-1.0.1}/mkdocs.yml +4 -0
  5. {funstruct-1.0.0 → funstruct-1.0.1}/pyproject.toml +3 -2
  6. {funstruct-1.0.0 → funstruct-1.0.1}/uv.lock +1 -1
  7. funstruct-1.0.1/uv.toml +3 -0
  8. {funstruct-1.0.0 → funstruct-1.0.1}/.claude/settings.local.json +0 -0
  9. {funstruct-1.0.0 → funstruct-1.0.1}/.github/workflows/ci.yml +0 -0
  10. {funstruct-1.0.0 → funstruct-1.0.1}/.github/workflows/publish.yml +0 -0
  11. {funstruct-1.0.0 → funstruct-1.0.1}/.gitignore +0 -0
  12. {funstruct-1.0.0 → funstruct-1.0.1}/.pre-commit-config.yaml +0 -0
  13. {funstruct-1.0.0 → funstruct-1.0.1}/CONTRIBUTING.md +0 -0
  14. {funstruct-1.0.0 → funstruct-1.0.1}/LICENSE +0 -0
  15. {funstruct-1.0.0 → funstruct-1.0.1}/benchmarks/test_bench_collections.py +0 -0
  16. {funstruct-1.0.0 → funstruct-1.0.1}/docs/applicative/index.md +0 -0
  17. {funstruct-1.0.0 → funstruct-1.0.1}/docs/applicative/validated.md +0 -0
  18. {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/cons.md +0 -0
  19. {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/frozendict.md +0 -0
  20. {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/index.md +0 -0
  21. {funstruct-1.0.0 → funstruct-1.0.1}/docs/collections/tree.md +0 -0
  22. {funstruct-1.0.0 → funstruct-1.0.1}/docs/functor/.gitkeep +0 -0
  23. {funstruct-1.0.0 → funstruct-1.0.1}/docs/functor/index.md +0 -0
  24. {funstruct-1.0.0 → funstruct-1.0.1}/docs/index.md +0 -0
  25. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/either.md +0 -0
  26. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/future.md +0 -0
  27. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/index.md +0 -0
  28. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/option.md +0 -0
  29. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/reader.md +0 -0
  30. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/result.md +0 -0
  31. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/state.md +0 -0
  32. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monad/writer.md +0 -0
  33. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/either_t.md +0 -0
  34. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/index.md +0 -0
  35. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/option_t.md +0 -0
  36. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/reader_t.md +0 -0
  37. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/state_t.md +0 -0
  38. {funstruct-1.0.0 → funstruct-1.0.1}/docs/monadtransformer/writer_t.md +0 -0
  39. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/applicative.md +0 -0
  40. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/index.md +0 -0
  41. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monad.md +0 -0
  42. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monadtransformer.md +0 -0
  43. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/monoid.md +0 -0
  44. {funstruct-1.0.0 → funstruct-1.0.1}/docs/typeclass/semigroup.md +0 -0
  45. {funstruct-1.0.0 → funstruct-1.0.1}/docs/util/tailrec.md +0 -0
  46. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/__init__.py +0 -0
  47. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/applicative/__init__.py +0 -0
  48. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/applicative/validated.py +0 -0
  49. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/__init__.py +0 -0
  50. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/cons.py +0 -0
  51. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/frozendict.py +0 -0
  52. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/collections/tree.py +0 -0
  53. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/functor/__init__.py +0 -0
  54. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/__init__.py +0 -0
  55. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/either.py +0 -0
  56. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/future.py +0 -0
  57. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/option.py +0 -0
  58. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/reader.py +0 -0
  59. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/result.py +0 -0
  60. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/state.py +0 -0
  61. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monad/writer.py +0 -0
  62. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/__init__.py +0 -0
  63. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/either_t.py +0 -0
  64. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/option_t.py +0 -0
  65. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/reader_t.py +0 -0
  66. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/state_t.py +0 -0
  67. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monadtransformer/writer_t.py +0 -0
  68. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/monoid/__init__.py +0 -0
  69. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/py.typed +0 -0
  70. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/semigroup/__init__.py +0 -0
  71. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/__init__.py +0 -0
  72. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_applicative.py +0 -0
  73. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_functor.py +0 -0
  74. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monad.py +0 -0
  75. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monad_transformer.py +0 -0
  76. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_monoid.py +0 -0
  77. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/typeclasses/_semigroup.py +0 -0
  78. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/util/__init__.py +0 -0
  79. {funstruct-1.0.0 → funstruct-1.0.1}/funstruct/util/tailrec.py +0 -0
  80. {funstruct-1.0.0 → funstruct-1.0.1}/justfile +0 -0
  81. {funstruct-1.0.0 → funstruct-1.0.1}/mise.toml +0 -0
  82. {funstruct-1.0.0 → funstruct-1.0.1}/noxfile.py +0 -0
  83. {funstruct-1.0.0 → funstruct-1.0.1}/tests/__init__.py +0 -0
  84. {funstruct-1.0.0 → funstruct-1.0.1}/tests/laws.py +0 -0
  85. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_cons.py +0 -0
  86. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_either.py +0 -0
  87. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_either_t.py +0 -0
  88. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_frozendict.py +0 -0
  89. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_future.py +0 -0
  90. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_law_violations.py +0 -0
  91. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_option.py +0 -0
  92. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_option_t.py +0 -0
  93. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_reader.py +0 -0
  94. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_reader_t.py +0 -0
  95. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_result.py +0 -0
  96. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_state.py +0 -0
  97. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_state_t.py +0 -0
  98. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_tailrec.py +0 -0
  99. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_tree.py +0 -0
  100. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_validated.py +0 -0
  101. {funstruct-1.0.0 → funstruct-1.0.1}/tests/test_writer.py +0 -0
  102. {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.0
3
+ Version: 1.0.1
4
4
  Summary: Fun & functional structures for Python
5
- Project-URL: Homepage, https://github.com/veyga/funstruct
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
 
@@ -86,6 +86,7 @@ class Monad(Applicative):
86
86
  def __rshift__ = bind # >>
87
87
 
88
88
  class MonadTransformer(Monad, Generic[_F, _A]):
89
+ def lift_f(cls, inner: _F) -> MonadTransformer: ...
89
90
  def and_then(self, other) -> MonadTransformer: ...
90
91
  ```
91
92
 
@@ -54,6 +54,10 @@ nav:
54
54
  - util:
55
55
  - tailrec: util/tailrec.md
56
56
 
57
+ extra:
58
+ version:
59
+ provider: mike
60
+
57
61
  plugins:
58
62
  - search
59
63
  - mkdocstrings:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "funstruct"
3
- version = "1.0.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.com/veyga/funstruct"
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]
@@ -476,7 +476,7 @@ wheels = [
476
476
 
477
477
  [[package]]
478
478
  name = "funstruct"
479
- version = "1.0.0"
479
+ version = "1.0.1"
480
480
  source = { editable = "." }
481
481
 
482
482
  [package.dev-dependencies]
@@ -0,0 +1,3 @@
1
+ [[index]]
2
+ url = "https://pypi.org/simple/"
3
+ default = true
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