Skip to main content

Parses a superset of Python allowing for inline module import expressions

Project description

Import Expression Parser (for lack of a better name)

Build Status Coverage Status

Import Expression Parser converts code like this:

x = collections.deque!(maxsize=2)

Into this roughly equivalent code:

from collections import deque
x = deque(maxsize=2)
del deque

Usage

>>> import import_expression
>>> import_expression.eval('collections!.Counter("bccdddeeee")')
Counter({'e': 4, 'd': 3, 'c': 2, 'b': 1})

By default, the filename for SyntaxErrors is <string>. To change this, pass in a filename via the filename kwarg.

Limitations / Known Issues

  • Some invalid syntax, such as !a, a!b, urllib!.parse!, and def a(b!): pass, is not yet detected.

FAQ

Actually asked questions for a new project! Golly gee!

  • Why not just use __import__('x')?
    From the discord.py server:

    devon#4089: if i want to type _("thing")
    devon#4089: i have to move my fingers between three different locations
    devon#4089: both at the end and start of the string
    lambda#0987: yeah and [it's] also a pain to type on mobile so ok
    devon#4089: <<x>> is slightly less grating \

    For context, the originally proposed syntax was <<x>>.

License

Copyright © 2018 Benjamin Mintz bmintz@protonmail.com. All Rights Reserved.
Licensed under this new hipster cool cat license called the Charity Public License.
If you are not a hipster cool cat, please contact me to arrange a private license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

import_expression-0.0.2.post1-py3-none-any.whl (8.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page