summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 13:53:48 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 13:53:48 +0000
commitc21df9237b5ad29a630f865d28982cc8438b954f (patch)
tree50f911ed8a7173fd1e8753f9ca313b5bc724eedf
parent9753a9e266410c385755a793e6a8536eb223b32c (diff)
automatic import of python-import-expression
-rw-r--r--.gitignore1
-rw-r--r--python-import-expression.spec342
-rw-r--r--sources1
3 files changed, 344 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c4e4123 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/import_expression-1.1.4.tar.gz
diff --git a/python-import-expression.spec b/python-import-expression.spec
new file mode 100644
index 0000000..ff89922
--- /dev/null
+++ b/python-import-expression.spec
@@ -0,0 +1,342 @@
+%global _empty_manifest_terminate_build 0
+Name: python-import-expression
+Version: 1.1.4
+Release: 1
+Summary: Parses a superset of Python allowing for inline module import expressions
+License: MIT
+URL: https://github.com/iomintz/import-expression-parser
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cf/b7/aca3c80b4efd272597754b37cf894521ac7dd82c2c2ebe58eaef494e627f/import_expression-1.1.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-astunparse
+Requires: python3-pytest
+Requires: python3-pytest-cov
+
+%description
+# Import Expression Parser (for lack of a better name)
+
+[![Build Status](https://img.shields.io/travis/iomintz/import-expression-parser/main.svg?label=tests)](https://travis-ci.org/iomintz/import-expression-parser)
+[![Coverage Status](https://coveralls.io/repos/github/iomintz/import-expression-parser/badge.svg?branch=main)](https://coveralls.io/github/iomintz/import-expression-parser?branch=main)
+
+Import Expression Parser converts code like this:
+
+```py
+urllib.parse!.quote('hello there')
+```
+
+Into this equivalent code:
+```py
+importlib.import_module('urllib.parse').quote('hello there')
+```
+
+## Usage
+
+```py
+>>> import import_expression
+>>> import_expression.eval('collections!.Counter("bccdddeeee")')
+Counter({'e': 4, 'd': 3, 'c': 2, 'b': 1})
+```
+
+The other public functions are `exec`, `compile`, `parse`, `find_imports`, and `update_globals`.
+See their docstrings for details.
+
+By default, the filename for `SyntaxError`s is `<string>`.
+To change this, pass in a filename via the `filename` kwarg.
+
+### Reusing compiled code objects
+
+import_expression.eval/exec/compile should not be passed strings in a tight loop. \
+Doing so will recompile the string every time. Instead, you should pre-compile the string to a code object
+and pass that to import_expression.eval / import_expression.exec.
+For example, instead of this:
+
+```py
+for line in sys.stdin:
+ print(import_expression.eval('foo!.bar(l)', dict(l=line))
+```
+
+Prefer this:
+
+```py
+code = import_expression.compile('foo!.bar(l)', mode='eval')
+for line in sys.stdin:
+ print(import_expression.eval(code, dict(l=line)))
+```
+
+### Custom encoding
+
+```py
+# encoding: import_expression
+print(typing!.TYPE_CHECKING)
+```
+
+This file, when run, will print True/False. For maximum laziness you can also do `#coding:ie`.
+
+### REPL usage
+
+Run `import-expression` for an import expression enabled REPL. \
+Run `import-expression -a` for a REPL that supports both import expressions and top level `await` (3.8+).
+
+See `import-expression --help` for more details.
+
+### Running a file
+
+Run `import-expression <filename.py>`.
+
+### File rewriter
+
+Run `import-expression-rewrite <file.py>` to rewrite a file containing import expressions to standard Python. \
+Add the `-i` flag to rewrite in-place.
+
+## Limitations / Known Issues
+
+* Due to the hell that is f-string parsing, and because `!` is already an operator inside f-strings,
+ import expressions inside f-strings will likely never be supported.
+* Due to python limitations, results of `import_expression.exec` will have no effect on the caller's globals or locals
+ without an explicit `globals` argument.
+* Unlike real operators, spaces before and after the import expression operator (such as `x ! .y`) are not supported.
+
+## [License](https://github.com/iomintz/import-expression-parser/blob/main/LICENSE)
+
+Copyright © 2018–2019 Io Mintz <<io@mintz.cc>>. All Rights Reserved. \
+Licensed under the MIT License. See the LICENSE file for details.
+
+
+
+
+%package -n python3-import-expression
+Summary: Parses a superset of Python allowing for inline module import expressions
+Provides: python-import-expression
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-import-expression
+# Import Expression Parser (for lack of a better name)
+
+[![Build Status](https://img.shields.io/travis/iomintz/import-expression-parser/main.svg?label=tests)](https://travis-ci.org/iomintz/import-expression-parser)
+[![Coverage Status](https://coveralls.io/repos/github/iomintz/import-expression-parser/badge.svg?branch=main)](https://coveralls.io/github/iomintz/import-expression-parser?branch=main)
+
+Import Expression Parser converts code like this:
+
+```py
+urllib.parse!.quote('hello there')
+```
+
+Into this equivalent code:
+```py
+importlib.import_module('urllib.parse').quote('hello there')
+```
+
+## Usage
+
+```py
+>>> import import_expression
+>>> import_expression.eval('collections!.Counter("bccdddeeee")')
+Counter({'e': 4, 'd': 3, 'c': 2, 'b': 1})
+```
+
+The other public functions are `exec`, `compile`, `parse`, `find_imports`, and `update_globals`.
+See their docstrings for details.
+
+By default, the filename for `SyntaxError`s is `<string>`.
+To change this, pass in a filename via the `filename` kwarg.
+
+### Reusing compiled code objects
+
+import_expression.eval/exec/compile should not be passed strings in a tight loop. \
+Doing so will recompile the string every time. Instead, you should pre-compile the string to a code object
+and pass that to import_expression.eval / import_expression.exec.
+For example, instead of this:
+
+```py
+for line in sys.stdin:
+ print(import_expression.eval('foo!.bar(l)', dict(l=line))
+```
+
+Prefer this:
+
+```py
+code = import_expression.compile('foo!.bar(l)', mode='eval')
+for line in sys.stdin:
+ print(import_expression.eval(code, dict(l=line)))
+```
+
+### Custom encoding
+
+```py
+# encoding: import_expression
+print(typing!.TYPE_CHECKING)
+```
+
+This file, when run, will print True/False. For maximum laziness you can also do `#coding:ie`.
+
+### REPL usage
+
+Run `import-expression` for an import expression enabled REPL. \
+Run `import-expression -a` for a REPL that supports both import expressions and top level `await` (3.8+).
+
+See `import-expression --help` for more details.
+
+### Running a file
+
+Run `import-expression <filename.py>`.
+
+### File rewriter
+
+Run `import-expression-rewrite <file.py>` to rewrite a file containing import expressions to standard Python. \
+Add the `-i` flag to rewrite in-place.
+
+## Limitations / Known Issues
+
+* Due to the hell that is f-string parsing, and because `!` is already an operator inside f-strings,
+ import expressions inside f-strings will likely never be supported.
+* Due to python limitations, results of `import_expression.exec` will have no effect on the caller's globals or locals
+ without an explicit `globals` argument.
+* Unlike real operators, spaces before and after the import expression operator (such as `x ! .y`) are not supported.
+
+## [License](https://github.com/iomintz/import-expression-parser/blob/main/LICENSE)
+
+Copyright © 2018–2019 Io Mintz <<io@mintz.cc>>. All Rights Reserved. \
+Licensed under the MIT License. See the LICENSE file for details.
+
+
+
+
+%package help
+Summary: Development documents and examples for import-expression
+Provides: python3-import-expression-doc
+%description help
+# Import Expression Parser (for lack of a better name)
+
+[![Build Status](https://img.shields.io/travis/iomintz/import-expression-parser/main.svg?label=tests)](https://travis-ci.org/iomintz/import-expression-parser)
+[![Coverage Status](https://coveralls.io/repos/github/iomintz/import-expression-parser/badge.svg?branch=main)](https://coveralls.io/github/iomintz/import-expression-parser?branch=main)
+
+Import Expression Parser converts code like this:
+
+```py
+urllib.parse!.quote('hello there')
+```
+
+Into this equivalent code:
+```py
+importlib.import_module('urllib.parse').quote('hello there')
+```
+
+## Usage
+
+```py
+>>> import import_expression
+>>> import_expression.eval('collections!.Counter("bccdddeeee")')
+Counter({'e': 4, 'd': 3, 'c': 2, 'b': 1})
+```
+
+The other public functions are `exec`, `compile`, `parse`, `find_imports`, and `update_globals`.
+See their docstrings for details.
+
+By default, the filename for `SyntaxError`s is `<string>`.
+To change this, pass in a filename via the `filename` kwarg.
+
+### Reusing compiled code objects
+
+import_expression.eval/exec/compile should not be passed strings in a tight loop. \
+Doing so will recompile the string every time. Instead, you should pre-compile the string to a code object
+and pass that to import_expression.eval / import_expression.exec.
+For example, instead of this:
+
+```py
+for line in sys.stdin:
+ print(import_expression.eval('foo!.bar(l)', dict(l=line))
+```
+
+Prefer this:
+
+```py
+code = import_expression.compile('foo!.bar(l)', mode='eval')
+for line in sys.stdin:
+ print(import_expression.eval(code, dict(l=line)))
+```
+
+### Custom encoding
+
+```py
+# encoding: import_expression
+print(typing!.TYPE_CHECKING)
+```
+
+This file, when run, will print True/False. For maximum laziness you can also do `#coding:ie`.
+
+### REPL usage
+
+Run `import-expression` for an import expression enabled REPL. \
+Run `import-expression -a` for a REPL that supports both import expressions and top level `await` (3.8+).
+
+See `import-expression --help` for more details.
+
+### Running a file
+
+Run `import-expression <filename.py>`.
+
+### File rewriter
+
+Run `import-expression-rewrite <file.py>` to rewrite a file containing import expressions to standard Python. \
+Add the `-i` flag to rewrite in-place.
+
+## Limitations / Known Issues
+
+* Due to the hell that is f-string parsing, and because `!` is already an operator inside f-strings,
+ import expressions inside f-strings will likely never be supported.
+* Due to python limitations, results of `import_expression.exec` will have no effect on the caller's globals or locals
+ without an explicit `globals` argument.
+* Unlike real operators, spaces before and after the import expression operator (such as `x ! .y`) are not supported.
+
+## [License](https://github.com/iomintz/import-expression-parser/blob/main/LICENSE)
+
+Copyright © 2018–2019 Io Mintz <<io@mintz.cc>>. All Rights Reserved. \
+Licensed under the MIT License. See the LICENSE file for details.
+
+
+
+
+%prep
+%autosetup -n import-expression-1.1.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-import-expression -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..5830d93
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+c6fa0195b38c427fc7a624b2ccd99e04 import_expression-1.1.4.tar.gz