Comments (4)
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.
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.
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.
Thanks, issue seems to be https://bugs.python.org/issue33983
from fissix.
Related Issues (19)
- Feature request: helper(s) to avoid syntax errors HOT 1
- fix iterables to list when indexed in iterated context
- Rename function arg async to async_ HOT 1
- UserDict HOT 2
- Parse error on argument called "print" HOT 9
- fissix.tests (unittest.loader._FailedTest) ... FAIL HOT 7
- New Node may not be visited in lib2to3.refactor.RefactoringTool.traverse_by
- upload docs to rtfd etc HOT 4
- StdoutRefactoringTool sets files attribute even when no files need to be modified
- Please make fissix/tests relocatable and able to load from system libs rather than source tree HOT 1
- catch StopIteration around 1-arg next in generator functions
- FP in fix_except
- Plans on 3.9+ support? HOT 1
- New release? HOT 1
- Fix PR #40 (except fixer: don't do anything if the "as" is already there) by checking against value of node HOT 1
- Clarify changes and local patches from lib2to3 in readme.
- [upstream issue] missing license and permission to distribute fissix/pgen2/tokenize.py HOT 3
- Import lib2to3 from v3.8.2+ HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fissix.