- Added parametrize for parameterized unit tests
- Fixed tests failing (to find test files) when running from the IDE or the terminal when not in the right directory
- Added Python version to GitHub Action workflow job steps and set Black to show required formatting changes
- Upgraded pre-commit hooks (pre-commit-hooks to
v5.0.0and ruff-pre-commit tov0.6.0) - Added run-test.sh script that runs all checks on code
- Added support for Python 3.12 and 3.13 by upgrading Pylint and disabling/fixing Pylint errors
- Corrected and improved language consistency in readme and
CHANGELOG.md
- Implemented
zip_with_nextfunction
- Added support for empty sequence expressions
seq(),pseq()(#159) - Added
no_wrapoption tohead(),head_option(),first(),last()andlast_option(), as well as toseq(),pseq()andSequenceconstructor
- Added precompute attribute to reverse transformation (#137)
- Updated setup.py dill to requirements.txt (#138)
- Docstring of tail fixed (#140)
- Added extend feature (#144)
- Fixed Broken link in readme
- Loosened version requirements #129
- Fixed lint errors
- Fixed StopIteration errors for Python 3.7 #132
- Dropped support for python 3.4
- Fixed bug in
partition#124
- Implemented optimized version of
reduce_by_key - Implemented
count_by_key - Implemented
count_by_value - Implemented
accumulate#104 - Added support for variance on versions of certain packages: #117 and #116
- Various typo fixes
- Various CI fixes
- Dropped CI testing and official support for Python 3.3
- Made import much faster by loading pandas more lazily #99
- Fixed bug in
grouped#123 - Fixed bug in
to_csv#123 - Fixed bug with incorrect wrapping of pandas dataframes #122
- Fixed issue with
first/headevaluating entire sequence https://github.com/EntilZha/PyFunctional/commit/fb8f3686cf94f072f4e6ed23a361952de1447dc8
Reaching 1.0 primarily means that API stability has been reached, so I don't expect to run into many new breaking changes.
- Added optional initial value for
reduce(#86) - Added table of contents to readme (#88)
- Added data interchange tutorial with pandas (https://github.com/EntilZha/PyFunctional/blob/master/examples/PyFunctional-pandas-tutorial.ipynb)
- Implemented
itertools.starmapasSequence.starmapandSequence.smap(#90) - Added interface to
csv.DictReaderviaseq.csv_dict_reader(#92) - Improved
_html_repr_,showandtabulateby auto detecting named tuples as column names (#91) - Improved
_html_repr_andshowto tell the user 10 of N rows are being shown if there are more than 10 rows (#94)
- Bumped version dependencies (#89)
- Added Python 3.6 via Travis CI testing
- Implemented pretty html repr for Jupyter
- Implemented proper parsing of pandas DataFrames
- Added feature to detect when it's possible to pretty print a table and do so
list/to_listhave a parameternto limit number of results
- Fixed bug where
groupedunnecessarily forces precomputation of sequence - Removed package installations from default requirements that sometimes break installation on barebones systems in python 2.7
- Auto parallelization by using
pseqinstead ofseq. Details at #47 - Parallel functions:
map,select,filter,filter_not,where,flatten, andflat_map - Compressed file IO support for
gzip/lzma/bz2as detailed at #54 - Cartesian product from
itertools.productimplemented asPipeline.cartesian - Website at pyfunctional.pedro.ai and docs at docs.pyfunctional.pedro.ai
- No option for encoding in
to_json#70
- Pinned versions of all dependencies
- Thanks to versae for implementing most of the
pseqfeature! - Thanks to ChuyuHsu for implementing large parts of the compression feature!
- Added support for reading to and from SQLite databases
- Changed project name from
ScalaFunctionaltoPyFunctional - Added
to_pandascall integration
- Changed code quality check service
- Added delimiter option on
to_file Sequence.slidingto create a sliding window from a list of elements
- Changed all relative imports to absolute imports with
__future__.absolute_import
- Fixed case where
_wrapis changing named tuples to arrays when it should preserve them - Fixed documentation on
to_filewhich incorrectly copied fromseq.opendelimiter parameter - Fixed
Sequence.zip_with_indexbehavior, which used to mimicenumerateby zipping on the left side while Scala and Spark zip on the right side. This introduces different but more flexible behavior in combination withenumerate. A start parameter was also added like inenumerate
Fixed python 3 build error due to wheel installation of enum34. Package no longer depends on enum34
- Official and tested support for python 3.5. Thus
ScalaFunctionalis tested on Python 2.7, 3.3, 3.4, 3.5, pypy, and pypy3 aggregatefrom LINQorder_byfrom LINQwherefrom LINQselectfrom LINQaveragefrom LINQsummodified to allow LINQ projected sumproductmodified to allow LINQ projected productseq.jsonlto read jsonl filesseq.jsonto read json filesseq.opento read filesseq.csvto read csv filesseq.rangeto create range sequencesSequence.to_jsonlto save jsonl filesSequence.to_jsonto save json filesSequence.to_fileto save filesSequence.to_csvto save csv files- Improved documentation with more examples and mention LINQ explicitly
- Changed PyPi keywords to improve discoverability
- Created Google groups mailing list
fold_leftandfold_righthad incorrect order of arguments for passed function