GithubHelp home page GithubHelp logo

Comments (4)

amyreese avatar amyreese commented on June 3, 2024

Tone aside, fissix is a backport specifically designed to be usable by standalone refactoring tools, namely Bowler. The monkeypatches allow fissix to cache grammar objects while being used from site-packages or other read-only directories, something that lib2to3 does not support. There are also some small patches for type annotation/checking purposes that were not readily accepted upstream. The formatting changes make the codebase dramatically easier (for me) to read and understand.

All of these reasons are why it's not simply titled backports.lib2to3, because it is not a direct stand-in for lib2to3. Hardly different from the other half dozen forks of lib2to3 in use throughout the community.

from fissix.

eli-schwartz avatar eli-schwartz commented on June 3, 2024

The reason for my confusion is because I tried diffing it with the original CPython lib2to3 and I did not spot any differences whatsoever -- though I'll readily admit I may have been distracted by the diff contexts which modified single quotes to double quotes or added/removed whitespace.

Perhaps for the benefit of observers, you could discuss these practical changes in the README?

The monkeypatches allow fissix to cache grammar objects while being used from site-packages or other read-only directories, something that lib2to3 does not support.

Maybe I'm missing something, but bowler at least does not seem to use this? (Except inasmuch as the default grammar isn't pickled during bdist/wheel creation the way python's Makefile does.)

There are also some small patches for type annotation/checking purposes that were not readily accepted upstream.

Could you point me to the patches in question? :) Thanks!

from fissix.

amyreese avatar amyreese commented on June 3, 2024

2b6b47f is the change that wasn't accepted upstream, but needed for purposes of type checking functions that could accept and operate on both leaves and nodes. I can't remember the BPO number offhand, but it can probably be found by searching BPO/cpython for PRs I created.

Most everything else was either upstreamed or contained to monkeypatches in fissix/__init__.py, and the history on master branch reflects all of these changes. Upstream changes are pulled into fissix via squashed merge commits, which leaves the master branch to primarily cover what makes fissix functionally separate.

I'll open an issue to clarify fissix's role in the readme.

from fissix.

eli-schwartz avatar eli-schwartz commented on June 3, 2024

Thanks, issue seems to be https://bugs.python.org/issue33983

from fissix.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.