Commit graph

50 commits

Author SHA1 Message Date
Correl Roush
7745f5ff6a Fix circular imports in Result and Maybe
Result and Maybe include methods for converting themselves into each
other. In order for the forward references to work correctly, the
imports need to be module-only imports.
2019-02-15 13:40:45 -05:00
Correl Roush
894e272d16 Bump version to 0.7 2019-01-08 15:54:47 -05:00
Correl Roush
efa13e6f08 Remove Future from generic monad testing
The Future tests already re-implement all of the normal tests while
also handling their asynchronous nature. Including them in the generic
tests leave futures unawaited.
2019-01-08 15:40:00 -05:00
Correl Roush
cbe71da3f8 Fix Reader.__repr__ failing when its callable lacks a __name__ 2019-01-08 15:34:11 -05:00
Correl Roush
319ac3cb4d Add __name__ to the "constant" callable in Reader
Without it, the __repr__ of Reader may fail
2019-01-08 15:31:58 -05:00
Correl Roush
3d312c1c90 Give Curried its own __repr__ implementation
Because a curried function annotation will be based on the original
function signature (won't match Env -> T), I'd rather differentiate
its representation. Otherwise, it looks like something messed up
building a Reader.
2019-01-08 15:24:32 -05:00
Correl Roush
375e5a47e1 Adjust signatures of curried functions 2019-01-08 14:53:33 -05:00
a45af9b5b0 Adjust signatures of Reader instances 2019-01-08 14:53:33 -05:00
116c3cc1ac Move currying to its own module and give it types 2019-01-08 14:53:33 -05:00
Correl Roush
71db6f311e Update Future.sequence to accept an iterable of any awaitable object 2019-01-04 11:47:04 -05:00
Correl Roush
e623ba0571 Remove conditional behavior of Future.pure
It was not wrapping awaitable values in a new awaitable, which is
incorrect and confusing behavior.
2019-01-04 11:44:38 -05:00
a340cfea68 Ensure the types are correct for all monad methods 2019-01-03 22:28:41 -05:00
7d63ad0849 Bump version to 0.6 2018-12-12 23:23:48 -05:00
2ef3f0b517 Add pytest-asyncio test dependency 2018-12-12 23:04:14 -05:00
93bc193494 Add the Future monad 2018-12-12 23:00:18 -05:00
b08d145da2 Bump version to 0.5 2018-12-12 01:53:10 -05:00
56c2eb2db5 Integrate the Black code formatting tool 2018-12-12 01:53:10 -05:00
7608fa40fe Add missing result test 2018-12-12 01:17:49 -05:00
90b2ec49ef Add documentation on the classes provided to the README 2018-12-12 01:07:22 -05:00
8a25d3904f Add an infix operator for Applicative.apply 2018-12-11 23:22:35 -05:00
58c8d6841b Add Result.mapError 2018-12-11 22:19:13 -05:00
77bf6b4735 Add Monad.sequence 2018-12-11 22:08:15 -05:00
Correl Roush
83b13a3e74 Bump version to 0.4 2018-12-06 13:56:45 -05:00
Correl Roush
16c87c4d04 Ensure all monoids and monoids implement their appropriate operators 2018-12-06 13:53:07 -05:00
Correl Roush
50a26a7b7a Add Maybe analogues to Result's to/from Maybe methods 2018-12-06 13:31:09 -05:00
Correl Roush
c85f5537ec Change class parameter in Result.fromMaybe 2018-12-06 13:31:09 -05:00
Correl Roush
69f8aa86b9 Bump version to 0.3 2018-12-03 16:19:39 -05:00
Correl Roush
c7a5020d89 Add some useful conversion functions 2018-12-03 16:16:04 -05:00
Correl Roush
23f53d422a Package a type marker file per PEP 561
This will make type annotations usable for projects importing the
library.
2018-12-03 16:15:59 -05:00
Correl Roush
8a3e5c9aac Add Travis CI deployment configuration 2018-11-29 14:04:28 -05:00
Correl Roush
906a3e9ca4 Add CI and coverage badges 2018-11-29 12:14:26 -05:00
Correl Roush
0072034f99 Configure Travis CI and CodeCov
Configure automated tests with Travis CI, and upload code coverage
reports to codecov.io
2018-11-29 12:06:43 -05:00
Correl Roush
8e5b34f4f9 Prepare for pypi release 2018-11-29 11:13:02 -05:00
Correl Roush
b798eb74ba Add Reader 2018-10-25 15:15:27 -04:00
a4a46a46c7 More monoids 2018-10-13 02:27:39 -04:00
Correl Roush
8b00d44f39 Consolidate test fixtures 2018-10-12 22:20:31 -04:00
Correl Roush
8c18de5e6f Ignore coverage on unreachable code branches
These code branches should be unreachable in type-safe code.
2018-10-12 15:41:37 -04:00
Correl Roush
711571d807 Add more tests for Result 2018-10-12 15:41:37 -04:00
Correl Roush
c31a9c49ca Add more tests for Maybe 2018-10-12 14:54:03 -04:00
Correl Roush
68705f25cc Remove old Monad definition from monads.result 2018-10-12 14:54:03 -04:00
Correl Roush
e21791a8b7 Ignore coverage of repr / base class methods 2018-10-12 14:54:03 -04:00
Correl Roush
1a87d73a5b Applicative 2018-10-12 14:54:03 -04:00
Correl Roush
7ce173e829 Functor tests 2018-10-12 14:09:05 -04:00
0348e8d82b Add README 2018-10-11 21:29:57 -04:00
87f92b504f
Add LICENSE 2018-10-11 21:14:03 -04:00
c71b9d6ff6 Rename methods
unit -> pure
fmap -> map
2018-10-11 21:06:23 -04:00
f5b0e6e5e4 Monoids 2018-10-11 20:45:56 -04:00
Correl Roush
d38f617ba4 Test that each monad respects monad laws 2018-10-11 12:15:52 -04:00
de53c59732 Organize into a library 2018-10-11 01:26:00 -04:00
763f9b341c 2018-10-10 16:10:04 -04:00