EntilZha / PyFunctional

Python library for creating data pipelines with chain functional programming
http://pyfunctional.pedro.ai
MIT License
2.4k stars 132 forks source link

RFC: Name Change #62

Closed EntilZha closed 8 years ago

EntilZha commented 8 years ago

I have long thought that the name ScalaFunctional is not that great, but so far haven't done anything about it. I think that this might be a good time to come up with a better name that suits what it does and direction of the project better. To be clear, the name change is for the distribution name (repository, website, PyPI), the import name will not change, because too many things would break.

I would like to detail where the name came from, why its not that good, and what would be desired in a new name by explaining the overall goals for the project. I plan on posting some name ideas later this week after more thought, but would like to get ideas from others as well.

At the end of the issue, I will explain logistically what the plan is to TLDR not break anything.

ScalaFunctional Name

Origin

Currently, the project is doing very well in supporting the first two. The streams/actions API is very complete, and more or less all common data formats/sources are supported (file compression coming in next release). The next possible targets would be SQL DBs with SQLAlchemy or similar to to_pandas, provide a way to make an SKLearn node (auto generate class that satisfies the node API).

I am not quite happy with progress on the third goal, namely making lambda calls more succinct. This is my motivation to at some point natively support something like _ from fn.py. This is paired with the exploratory work I have been doing on a SQL Parser/Compiler. With the code/understanding I have right now, something like below is looking pretty easy:

User = namedtuple('User', 'id name city')
seq([User(1, 'pedro', 'boulder'), User(2, 'fritz', 'seattle')]).filter('id < 1').select('name,city')

I am fairly confidant that as time goes on, the fourth goal will be better and better met.

The last goal has a few things wrapped in:

Hopefully I didn't forget anything, open to comments on anything at all (including that name change is not a good idea)

EntilZha commented 8 years ago

Now that I had some time to reserve the name on PyPI today, would like to provide one possible rename option: PyFunctional

Pluses:

Cons

Other ideas:

ChuyuHsu commented 8 years ago

PyFunctional sounds great, although the name ScalaFunctional we have now implies it's pipelining nature

EntilZha commented 8 years ago

Deciding on PyFunctional. Tomorrow I will be releasing 0.6.0 to put sqlite3 support on PyPI.

Summary of Actions

  1. Everything in the repository will be renamed to PyFunctional with a note of old name
  2. All supporting infrastructure will be tested, then the repository will be renamed
  3. Release 0.6.0 on PyPI as PyFunctional and ScalaFunctional. This will be the last or second to last release under the name ScalaFunctional (unlike issue description in first comment, changed mind on this)
  4. Separate from this, create a roadmap to 1.0. This will probably be in 2-3 releases from now. Planned inclusions are compressed file support, general sql db reading support, completed LINQ parsing for simple statements, a parallel execution engine, and possibly packaging an _ equivalent.
EntilZha commented 8 years ago

Name change is complete