Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 0.0.5 #8

Merged
merged 46 commits into from
Jan 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
56112b1
Make breaking changes for v0.0.5
StefanGreve Jan 2, 2023
afdd2e8
Add changelog for v0.0.5 (WIP)
StefanGreve Jan 2, 2023
a6ca1d2
Update test suite
StefanGreve Jan 2, 2023
cd57b24
Add more complex test scenarios to test suite as a proof of concept
StefanGreve Jan 2, 2023
c009136
Increment version number and add Functions import
StefanGreve Jan 2, 2023
fd5d3b3
Update version matrix in pipeline
StefanGreve Jan 8, 2023
e28cfad
Update dev dependencies
StefanGreve Jan 8, 2023
43b4bd9
Edit setup file
StefanGreve Jan 8, 2023
63c66e3
Bump python_minor to 3.8
StefanGreve Jan 8, 2023
970588d
Implement to_list and parameter support for the union method
StefanGreve Jan 8, 2023
6b5320f
Implement intersects method and add doc strings
StefanGreve Jan 8, 2023
c863009
Implement the (set) difference method
StefanGreve Jan 8, 2023
9d7219f
Revise the implementation of the union method
StefanGreve Jan 8, 2023
b95aa9c
Implement is_subset and is_superset and edit doc strings
StefanGreve Jan 8, 2023
e4211d8
Update Functions class
StefanGreve Jan 8, 2023
eaac35c
Add examples in doc strings for is_subset and is_superset
StefanGreve Jan 8, 2023
3a205fe
Implement is_disjoint method and improve is_subset and is_superset
StefanGreve Jan 8, 2023
fc8871e
Rename member to is_member
StefanGreve Jan 8, 2023
9ca13a7
Improve type hints for zip_reduce
StefanGreve Jan 8, 2023
6474721
Implement the static randint function
StefanGreve Jan 8, 2023
45fe3ae
Implement the symmetric_difference method
StefanGreve Jan 8, 2023
66a37bf
Implement iter and next and change implementation of str
StefanGreve Jan 11, 2023
4484b82
Improve test_next
StefanGreve Jan 12, 2023
fec4429
Implement operator overload for __eq__ and __ne__
StefanGreve Jan 12, 2023
ac9b0c1
Fix unit test
StefanGreve Jan 12, 2023
de10c77
Implement cartesian product method and edit typings
StefanGreve Jan 12, 2023
8370600
Add typing_extensions for advanced type hints as prod dependency
StefanGreve Jan 12, 2023
117e48f
Add unit tests for cartesian method
StefanGreve Jan 12, 2023
ce1aa2f
Improve cartesian method and add more methods for probability theory
StefanGreve Jan 12, 2023
0bfbc8a
Increase test coverage
StefanGreve Jan 12, 2023
377b82e
Implement is_prime method, edit doc strings and expand test suite
StefanGreve Jan 12, 2023
4619d06
Add secure parameter to random method
StefanGreve Jan 13, 2023
cca44fe
Add file enum and partially implement open method
StefanGreve Jan 13, 2023
da4768e
Rename File.IMG to File.IMAGE and update test suite for __str__ and _…
StefanGreve Jan 13, 2023
b8b6c94
Fix typo in function name
StefanGreve Jan 13, 2023
db41c5b
Implement save method and refactor code
StefanGreve Jan 19, 2023
f66ebb6
Rename empty to is_empty and implement to_dict
StefanGreve Jan 19, 2023
c4f252b
Update README
StefanGreve Jan 19, 2023
f8f38bc
Add license information to the preamble of the source file
StefanGreve Jan 20, 2023
f9c38ad
Change implementation of find_index methd
StefanGreve Jan 20, 2023
9e3a6a0
Edit README
StefanGreve Jan 20, 2023
e689ef4
Add project logo
StefanGreve Jan 22, 2023
513c4ac
Implement the Miller-Rabin primality test
StefanGreve Jan 22, 2023
b2f0660
Update README: add sub-section about technical limitations
StefanGreve Jan 22, 2023
1a1d196
Update changelog and set release date for v0.0.5 to 2023-01-29
StefanGreve Jan 22, 2023
aa9ea45
Update README and CHANGELOG prior to release
StefanGreve Jan 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [ '3.7', '3.8', '3.9', '3.10', '3.11-dev']
python-version: [ '3.8', '3.9', '3.10', '3.11.1', '3.12.0-alpha.3']
os: [ ubuntu-latest, macOS-latest, windows-latest ]

steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
python-version: [ 3.7 ]
python-version: [ 3.8 ]

steps:
- uses: actions/checkout@v2
Expand Down
198 changes: 126 additions & 72 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,68 @@
# Changelog

## Version 0.0.5 (29 Jan 2023)

> Note that this update introduces breaking changes.

Implement a `Functions` helper class for common procedures such as

- `invert`
- `is_even`
- `is_odd`
- `miller_rabin`
- `sign`

The overload in the `Iter` constructor was removed in favor of a static `Iter.range`
method to enforce separation of concerns more diligently. Additional minor modifications
were made to pretty much all doc strings to reflect the recent changes that are
to be consolidated for more information. In brief,

- the `chunk_by` method now also provides `eject` as an optional argument
- the `concat` method was renamed to `union`
- `iterable` and `iter` keyword arguments were renamed to `iter_`
- the method signature of the `range` method has changed and added support for
decrements
- the `empty` method was renamed to `is_empty`

The following methods are new:

- `self.cartesian`
- `self.combinations`
- `self.combinations_with_replacement`
- `self.difference`
- `self.duplicates`
- `self.flatten`
- `self.intersects`
- `self.is_disjoint`
- `self.is_subset`
- `self.is_superset`
- `Iter.linspace`
- `Iter.open`
- `self.permutations`
- `self.save`
- `self.symmetric_difference`
- `Iter.randint`
- `self.to_dict`
- `self.to_list`
- `self.transpose`
- `self.__eq__`
- `self.__ne__`
- `self.__iter__`
- `self.__next__`

Starting with version `0.0.5`, this library now also pulls in `typing_extensions`
as an external dependency. Support for Python 3.7 has been dropped which makes
version 3.8 the new baseline in this project.

## Version 0.0.4 (17 May 2022)

Refactors code and improves the doc strings here and there. The `Iter.__ctor` method
was removed in favor of `Iter.range` for implementing the `Iter.__init__` overload.

Additionally, the following methods have been removed as well:

- `self.each`
- `self.fetch`
- `self.each`
- `self.fetch`

Turns out they are not that useful in Python after all.

Expand All @@ -22,76 +76,76 @@ all at once. Perhaps there will be a `Stream`-like structure in the future that'
compatible with `Iter`, though it remains to be seen whether such a thing will be
implemented in the future.

- [x] `self.__init__`
- [x] `self.all`
- [x] `self.any`
- [x] `self.at`
- [x] `self.avg`
- [x] `self.chunk_by`
- [x] `self.chunk_every`
- [ ] `self.chunk_while`
- [x] `self.concat`
- [x] `self.count`
- [x] `self.count_until`
- [x] `self.dedup`
- [x] `self.dedup_by`
- [x] `self.drop`
- [x] `self.drop_every`
- [x] `self.drop_while`
- [x] `self.each`
- [x] `self.empty`
- [x] `self.fetch`
- [x] `self.filter`
- [x] `self.find`
- [x] `self.find_index`
- [x] `self.find_value`
- [x] `self.flat_map`
- [ ] `self.flat_map_reduce`
- [x] `self.frequencies`
- [x] `self.frequencies_by`
- [x] `self.group_by`
- [x] `self.intersperse`
- [x] `self.into`
- [x] `self.join`
- [x] `self.map`
- [x] `self.map_every`
- [x] `self.map_intersperse`
- [x] `self.map_join`
- [x] `self.map_reduce`
- [x] `self.max`
- [x] `self.member`
- [x] `self.min`
- [x] `self.min_max`
- [x] `self.product`
- [x] `self.random`
- [x] `Iter.range`
- [x] `self.reduce`
- [x] `self.reduce_while`
- [x] `self.reject`
- [x] `self.reverse`
- [x] `self.reverse_slice`
- [x] `self.scan`
- [x] `Iter.shorten`
- [x] `self.shuffle`
- [x] `self.slice`
- [x] `self.slide`
- [x] `self.sort`
- [x] `self.split`
- [x] `self.split_while`
- [x] `self.split_with`
- [x] `self.sum`
- [x] `self.take`
- [x] `self.take_every`
- [x] `self.take_random`
- [x] `self.take_while`
- [x] `self.uniq`
- [x] `self.unzip`
- [x] `self.with_index`
- [x] `self.zip`
- [ ] `self.zip_reduce`
- [ ] `self.zip_with`
- [x] `self.__repr__`
- [x] `self.__str__`
- [x] `self.__init__`
- [x] `self.all`
- [x] `self.any`
- [x] `self.at`
- [x] `self.avg`
- [x] `self.chunk_by`
- [x] `self.chunk_every`
- [ ] `self.chunk_while`
- [x] `self.concat`
- [x] `self.count`
- [x] `self.count_until`
- [x] `self.dedup`
- [x] `self.dedup_by`
- [x] `self.drop`
- [x] `self.drop_every`
- [x] `self.drop_while`
- [x] `self.each`
- [x] `self.empty`
- [x] `self.fetch`
- [x] `self.filter`
- [x] `self.find`
- [x] `self.find_index`
- [x] `self.find_value`
- [x] `self.flat_map`
- [ ] `self.flat_map_reduce`
- [x] `self.frequencies`
- [x] `self.frequencies_by`
- [x] `self.group_by`
- [x] `self.intersperse`
- [x] `self.into`
- [x] `self.join`
- [x] `self.map`
- [x] `self.map_every`
- [x] `self.map_intersperse`
- [x] `self.map_join`
- [x] `self.map_reduce`
- [x] `self.max`
- [x] `self.member`
- [x] `self.min`
- [x] `self.min_max`
- [x] `self.product`
- [x] `self.random`
- [x] `Iter.range`
- [x] `self.reduce`
- [x] `self.reduce_while`
- [x] `self.reject`
- [x] `self.reverse`
- [x] `self.reverse_slice`
- [x] `self.scan`
- [x] `Iter.shorten`
- [x] `self.shuffle`
- [x] `self.slice`
- [x] `self.slide`
- [x] `self.sort`
- [x] `self.split`
- [x] `self.split_while`
- [x] `self.split_with`
- [x] `self.sum`
- [x] `self.take`
- [x] `self.take_every`
- [x] `self.take_random`
- [x] `self.take_while`
- [x] `self.uniq`
- [x] `self.unzip`
- [x] `self.with_index`
- [x] `self.zip`
- [ ] `self.zip_reduce`
- [ ] `self.zip_with`
- [x] `self.__repr__`
- [x] `self.__str__`

The static non-standard functions `Iter.range` and `Iter.shorten` have been added
for convenience purposes only. The method signature `uniq_by` does not appear in
Expand Down
Loading