Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change parser to new Structural Pattern Matching Spec #35

Open
Vlek opened this issue Feb 16, 2021 · 2 comments
Open

Change parser to new Structural Pattern Matching Spec #35

Vlek opened this issue Feb 16, 2021 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@Vlek
Copy link
Owner

Vlek commented Feb 16, 2021

Brand new PEP 634 -- Structural Pattern Matching specification came out that may make pyparsing unnecessary and so that we can use the Python standard library for our parsing needs.

Pros:

  • Offers a way to remove yet another dependency which reduces the potential for issues down the line if pyparsing does not get updates, both in terms of functionality and also malicious code threats.
  • Potentially faster as we will not have to import outside code.
  • Reduces overall footprint of the project on user's computers.

Cons:

  • Requires yet another rewrite of underlying parser logic. The third time is the charm, but it's going to be even more of a pain now that additional features have been incorporated.
  • Available starting at Python v3.10. This means that this spec is going to be out of reach of our general target audience for quite some time as we are currently shooting for 3.6-3.8. Ubuntu doesn't even have 3.9 officially yet.
@Vlek Vlek added the enhancement New feature or request label Feb 16, 2021
@Vlek Vlek self-assigned this Feb 16, 2021
@Vlek
Copy link
Owner Author

Vlek commented Jun 19, 2021

One way that we might be able to get around the 3.10 not being officially released issue is to use docker containers, but it's a pretty roundabout way of dealing with it: https://andrewlock.net/packaging-cli-programs-into-docker-images-to-avoid-dependency-hell/

The other option is to somehow, maybe Makefile, state that a virtual environment should be created that is a 3.10 version, like using asdf: https://stackoverflow.com/questions/2547554/multiple-python-versions-on-the-same-machine/46258340#46258340

@Vlek
Copy link
Owner Author

Vlek commented Mar 30, 2022

3.10 is now out and available. Still definitely not widely used, but is doable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant