unpythonic 0.15.1__tar.gz → 0.15.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unpythonic-0.15.3/AUTHORS.md +22 -0
- unpythonic-0.15.3/PKG-INFO +887 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/README.md +24 -34
- {unpythonic-0.15.1 → unpythonic-0.15.3}/setup.py +3 -3
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/__init__.py +2 -2
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/arity.py +6 -6
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/conditions.py +8 -13
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/env.py +9 -2
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/excutil.py +11 -18
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/let.py +5 -22
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/mathseq.py +7 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/autocurry.py +5 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/autoref.py +1 -1
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/lambdatools.py +1 -1
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/lazify.py +5 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/letdo.py +73 -60
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/letdoutil.py +82 -44
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/scopeanalyzer.py +96 -27
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/tailtools.py +103 -15
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/util.py +1 -1
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/timeutil.py +3 -1
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/typecheck.py +8 -12
- unpythonic-0.15.3/unpythonic.egg-info/PKG-INFO +887 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic.egg-info/SOURCES.txt +1 -1
- unpythonic-0.15.1/PKG-INFO +0 -895
- unpythonic-0.15.1/unpythonic/syntax/astcompat.py +0 -69
- unpythonic-0.15.1/unpythonic.egg-info/PKG-INFO +0 -895
- {unpythonic-0.15.1 → unpythonic-0.15.3}/LICENSE.md +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/setup.cfg +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/amb.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/assignonce.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/collections.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/dispatch.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/dynassign.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/ec.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/fix.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/fold.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/fploop.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/fun.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/funutil.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/fup.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/gmemo.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/gtco.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/it.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/lazyutil.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/lispylet.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/llist.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/misc.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/__init__.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/client.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/common.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/msg.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/ptyproxy.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/server.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/net/util.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/numutil.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/regutil.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/seq.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/singleton.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/slicing.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/symbol.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/__init__.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/dbg.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/forall.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/ifexprs.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/letsyntax.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/nameutil.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/nb.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/prefix.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/simplelet.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/syntax/testingtools.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/tco.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic/test/fixtures.py +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic.egg-info/dependency_links.txt +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic.egg-info/not-zip-safe +0 -0
- {unpythonic-0.15.1 → unpythonic-0.15.3}/unpythonic.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
**Direct contributors**:
|
|
2
|
+
|
|
3
|
+
- Juha Jeronen (@Technologicat) - original author
|
|
4
|
+
- @aisha-w - documentation improvements
|
|
5
|
+
|
|
6
|
+
**Design inspiration from the internet**:
|
|
7
|
+
|
|
8
|
+
Dynamic assignment based on [StackOverflow answer by Jason Orendorff (2010)](https://stackoverflow.com/questions/2001138/how-to-create-dynamical-scoped-variables-in-python), used under CC-BY-SA. The threading support is original to our version.
|
|
9
|
+
|
|
10
|
+
Core idea of ``lispylet`` based on [StackOverflow answer by divs1210 (2017)](https://stackoverflow.com/a/44737147), used under the MIT license.
|
|
11
|
+
|
|
12
|
+
The trampoline implementation of ``unpythonic.tco`` takes its remarkably clean and simple approach from ``recur.tco`` in [fn.py](https://github.com/fnpy/fn.py). Our main improvements are a cleaner syntax for the client code, and the addition of the FP looping constructs. Another important source of inspiration was [tco](https://github.com/baruchel/tco) by Thomas Baruchel, for thinking about the possibilities of TCO in Python.
|
|
13
|
+
|
|
14
|
+
Core idea of ``view`` based on [StackOverflow answer by Mathieu Caroff (2018)](https://stackoverflow.com/a/53253136), used under the MIT license. Our additions include support for sequences with changing length, write support, iteration based on ``__iter__``, in-place reverse, and the abstract base classes.
|
|
15
|
+
|
|
16
|
+
Recursion cycle breaker ``fix`` based on original idea and implementation by [Matthew Might](http://matt.might.net/articles/parsing-with-derivatives/) and [Per Vognsen](https://gist.github.com/pervognsen/8dafe21038f3b513693e) (the latter linked from the [Python implementation](https://gist.github.com/pervognsen/815b208b86066f6d7a00) of the Brzozowski-derivative based language recognizer). Matthew Might's original Racket code is under [The CRAPL](http://matt.might.net/articles/crapl/); the license for Per Vognsen's Python implementation is not specified, but the file is publicly linked from Matthew Might's blog post. Our version is a redesign with kwargs support, thread safety, and TCO support.
|
|
17
|
+
|
|
18
|
+
Conditions system (`restarts`, `handlers`) based on studying the implementation of [python-cl-conditions](https://github.com/svetlyak40wt/python-cl-conditions/) by Alexander Artemenko (@svetlyak40wt), which is released under the 2-clause BSD license.
|
|
19
|
+
|
|
20
|
+
`PTYSocketProxy` based on [StackOverflow answer by gowenfawr](https://stackoverflow.com/questions/48781155/how-to-connect-inet-socket-to-pty-device-in-python).
|
|
21
|
+
|
|
22
|
+
Asynchronous exception injector (`async_raise`) is *"one of the dirtiest hacks ever seen"*, [by Federico Ficarelli for Python 3.4](https://gist.github.com/nazavode/84d1371e023bccd2301e)), and originally by [LIU Wei for Python 2.x](https://gist.github.com/liuw/2407154).
|