Metadata-Version: 2.1
Name: protocol-lib
Version: 1.0.0
Summary: Protocols for better structural typing
Home-page: https://github.com/eganjs/protocol-lib
License: MIT
Author: Joseph Egan
Author-email: joseph.s.egan@gmail.com
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: typing-extensions (>=3.7.4.3,<4.0.0.0)
Project-URL: Repository, https://github.com/eganjs/protocol-lib
Description-Content-Type: text/markdown

# protocol-lib

![Build](https://github.com/eganjs/protocol-lib/workflows/ci/badge.svg)

Protocols for better structural typing

## Goals

Implement Protocols for:
- [x] Container
- [x] Hashable
- [x] Iterable
- [x] Iterator
- [x] Reversible
- [ ] ~~Generator~~
- [x] Sized
- [ ] Callable
- [x] Collection
- [x] Sequence
- [x] MutableSequence
- [ ] ByteString
- [ ] Set
- [ ] MutableSet
- [x] Mapping
- [ ] MutableMapping
- [ ] MappingView
- [ ] ItemsView
- [ ] KeysView
- [ ] ValuesView
- [ ] Awaitable
- [ ] Coroutine
- [ ] AsyncIterable
- [ ] AsyncIterator
- [ ] AsyncGenerator

## Notes

Generator is not currently implemented in this library. This is due to challenges encountered when attempting to implement it.

## Updating project config

To do this make edits to the `.projenrc.js` file in the root of the project and run `npx projen` to update existing or generate new config. Please also use `npx prettier --trailing-comma all --write .projenrc.js` to format this file.

