Skip to content

Commit efc7b31

Browse files
committed
Improved documentation
1 parent f9e33ff commit efc7b31

File tree

4 files changed

+55
-37
lines changed

4 files changed

+55
-37
lines changed

CHANGELOG.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
# Changelog
22
## Next Release
3+
4+
## Release 0.7.0
35
### New Features
4-
* Re-architected code to allow for `pseq` to exist
5-
* Implemented `pseq` by implementing `ParallelStream` and `ParallelExecutionEngine`
6-
* `map`, `select`, `filter`, `filter_not`, `where`, `flatten`, and `flat_map` parallelized
7-
* Many Thanks to `versae` for implementing the `pseq` feature!
8-
* Cartesian product from `itertools.product` implemented as `cartesian`
6+
* Auto parallelization by using `pseq` instead of `seq`. Details at https://github.com/EntilZha/PyFunctional/issues/47
7+
* Parallel functions: `map`, `select`, `filter`, `filter_not`, `where`, `flatten`, and `flat_map`
8+
* Compressed file IO support for `gzip`/`lzma`/`bz2` as detailed at https://github.com/EntilZha/PyFunctional/issues/54
9+
* Cartesian product from `itertools.product` implemented as `Pipeline.cartesian`
10+
* Website at [pyfunctional.org](http://www.pyfunctional.org) and docs at [docs.pyfunctional.org](http://docs.pyfunctional.org)
11+
12+
### Bug Fixes
13+
* No option for encoding in `to_json` https://github.com/EntilZha/PyFunctional/issues/70
14+
15+
### Internal Changes
16+
* Pinned versions of all dependencies
17+
18+
### Contributors
19+
* Thanks to [versae](https://github.com/versae) for implementing most of the `pseq` feature!
20+
* Thanks to [ChuyuHsu](https://github.com/ChuyuHsu) for implemented large parts of the compression feature!
921

1022
## Release 0.6.0
1123
### New Features

DEVELOPER.md

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,46 @@
11
# Developer Documentation
2-
This file primarily contains useful information for developers of `ScalaFunctional`
32

43
## Release Process
54
For every release, the following process is used.
65

6+
### Before Release
77
1. From the project directory, run `./run-tests.sh` to insure unit tests pass (on python 2 and 3),
88
and that pylint succeeds
99
2. Push commit which is the candidate release to Github master
10-
3. Wait for tests to pass on [TravisCI](https://travis-ci.org/EntilZha/ScalaFunctional)
11-
4. Wait for coverage to complete at 100% on [Coveralls](https://coveralls.io/github/EntilZha/ScalaFunctional)
12-
5. Wait for docs to complete building successfully at [scalafunctional.readthedocs.org/en/latest](http://scalafunctional.readthedocs.org/en/latest/)
13-
6. Create an empty `virtualenv` by running `virtualenv env_directory` and activate it by running
14-
`source env_directory/bin/activate`
15-
7. Install `ScalaFunctional` into the virtualenv by running `python setup.py install`
16-
8. Run a python terminal session and insure that `import functional` returns with no errors
17-
9. Deactivate the `virtualenv` by running `deactivate`
18-
10. Repeat steps 6-9 but instead use a python3 interpreter
19-
11. Build the source distribution using `python setup.py sdist`
20-
12. Build the wheel distribution using `python bdist_wheel`
21-
13. Assuming a `.pypirc` file like below, double check that `dist/` has the source and wheel
10+
3. Wait for tests to pass on [TravisCI](https://travis-ci.org/EntilZha/PyFunctional)
11+
4. Wait for coverage to complete at 100% on [Coveralls](https://coveralls.io/github/EntilZha/PyFunctional)
12+
5. Wait for docs to complete building successfully at [docs.pyfunctional.org/en/latest](http://docs.pyfunctional.org/en/latest/)
13+
14+
### Testing Local Release
15+
1. Run `docker run -it python bash` for clean python installation
16+
2. Clone and install `PyFunctional` with `python setup.py install`
17+
3. Run a python terminal session and insure that `import functional` returns with no errors
18+
4. Repeat steps 6-9 but instead use a python3 docker image
19+
20+
### Building Release
21+
1. Build the source distribution using `python setup.py sdist`
22+
2. Build the wheel distribution using `python bdist_wheel`
23+
3. Assuming a `.pypirc` file like below, double check that `dist/` has the source and wheel
2224
distributions
23-
14. Run `twine upload -r test dist/*` to upload `ScalaFunctional` to the test PyPi server
24-
15. Browse to the [pypi test server](testpypi.python.org) and insure the webpage looks correct and
25+
26+
### Testing on Test PyPI
27+
1. Run `twine upload -r test dist/*` to upload `PyFunctional` to the test PyPi server
28+
2. Browse to the [pypi test server](testpypi.python.org) and insure the webpage looks correct and
2529
that the upload was done correctly.
26-
16. Create a new `virtualenv` and install the package using `pip install -i https://testpypi.python.org/pypi scalafunctional`.
27-
Test that the install completes correctly and that `functional` is importable. This may require
28-
installing dependencies from regular `pip` which are not on the test servers like `future`, `six`,
29-
and `enum34` if running python 2.
30-
17. Repeat step 16 using python 3.
31-
18. If all these steps run, than the candidate release commit will become the new release which
32-
means uploading to live pypi and tagging the commit as a release
33-
19. Run `twine upload -r pypi dist/*` to publish `ScalaFunctional` to the live PyPi server.
34-
20. Repeat steps 16 and 17 using the live pip repositories
35-
21. Tag the release on git with `git tag -a vX.X.X`. Then run `git push` and `git push --tags`
36-
22. On Github, create/edit the release page to match the changelog and add discussion
37-
23. Celebrate!
30+
3. Run `docker run -it python bash` and install the package using `pip install -i https://testpypi.python.org/pypi pyfunctional`.
31+
4. Install dependencies not on the test PyPI instance: `future`, `six`, `dill`, and `backports.lzma`
32+
5. Test that `functional` is importable
33+
6. Repeat using python 3.
34+
35+
If all these steps run, than the candidate release commit will become the new release which
36+
means uploading to live pypi and tagging the commit as a release.
37+
38+
### Publishing Release on Production PyPI
39+
1. Run `twine upload -r pypi dist/*` to publish `PyFunctional` to the live PyPi server.
40+
2. Repeat install tests from Test PyPI testing
41+
3. Tag the release on git with `git tag -a vX.X.X`. Then run `git push` and `git push --tags`
42+
4. On Github, create/edit the release page to match the changelog and add discussion
43+
5. Celebrate!
3844

3945

4046
### `.pypirc` file

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ food_cost = seq(transactions)\
9393
.where(lambda x: x.reason == 'food')\
9494
.select(lambda x: x.amount).sum()
9595

96-
# Using ScalaFunctional with fn
96+
# Using PyFunctional with fn
9797
from fn import _
9898
food_cost = seq(transactions).filter(_.reason == 'food').map(_.amount).sum()
9999
```
@@ -295,12 +295,12 @@ seq.sqlite3('filepath', 'select * from data')
295295
```
296296

297297
For more information on the parameters that these functions can take, reference the
298-
[streams documentation](http://scalafunctional.readthedocs.org/en/latest/functional.html#module-functional.streams)
298+
[streams documentation](http://docs.pyfunctional.org/en/latest/functional.html#module-functional.streams)
299299

300300
### Transformations and Actions APIs
301301
Below is the complete list of functions which can be called on a stream object from `seq`. For
302302
complete documentation reference
303-
[transformation and actions API](http://scalafunctional.readthedocs.org/en/latest/functional.html#module-functional.pipeline).
303+
[transformation and actions API](http://docs.pyfunctional.org/en/latest/functional.html#module-functional.pipeline).
304304

305305
Function | Description | Type
306306
------- | ----------- | ----

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515

1616
setup(
1717
name='PyFunctional',
18-
description='Package for creating data pipelines, LINQ, and chain functional programming',
18+
description='Package for creating data pipelines with chain functional programming',
1919
long_description=long_description,
2020
url='https://github.com/EntilZha/PyFunctional',
2121
author='Pedro Rodriguez',
2222
author_email='[email protected]',
2323
maintainer='Pedro Rodriguez',
2424
maintainer_email='[email protected]',
2525
license='MIT',
26-
keywords='functional LINQ pipeline data collection rdd scala',
26+
keywords='functional pipeline data collection chain rdd linq parallel',
2727
packages=find_packages(exclude=['contrib', 'docs', 'tests*', 'test']),
2828
version='0.6.0',
2929
install_requires=install_requires,

0 commit comments

Comments
 (0)