unpythonic 0.15.5__tar.gz → 1.0.0__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.
Files changed (71) hide show
  1. {unpythonic-0.15.5 → unpythonic-1.0.0}/PKG-INFO +57 -1
  2. {unpythonic-0.15.5 → unpythonic-1.0.0}/README.md +56 -0
  3. {unpythonic-0.15.5 → unpythonic-1.0.0}/pyproject.toml +1 -1
  4. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/__init__.py +1 -1
  5. {unpythonic-0.15.5 → unpythonic-1.0.0}/LICENSE.md +0 -0
  6. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/amb.py +0 -0
  7. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/arity.py +0 -0
  8. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/assignonce.py +0 -0
  9. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/collections.py +0 -0
  10. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/conditions.py +0 -0
  11. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dialects/__init__.py +0 -0
  12. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dialects/lispython.py +0 -0
  13. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dialects/listhell.py +0 -0
  14. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dialects/pytkell.py +0 -0
  15. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dispatch.py +0 -0
  16. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/dynassign.py +0 -0
  17. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/ec.py +0 -0
  18. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/env.py +0 -0
  19. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/excutil.py +0 -0
  20. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/fix.py +0 -0
  21. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/fold.py +0 -0
  22. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/fploop.py +0 -0
  23. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/fun.py +0 -0
  24. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/funutil.py +0 -0
  25. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/fup.py +0 -0
  26. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/gmemo.py +0 -0
  27. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/gtco.py +0 -0
  28. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/it.py +0 -0
  29. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/lazyutil.py +0 -0
  30. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/let.py +0 -0
  31. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/lispylet.py +0 -0
  32. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/llist.py +0 -0
  33. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/mathseq.py +0 -0
  34. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/misc.py +0 -0
  35. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/__init__.py +0 -0
  36. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/client.py +0 -0
  37. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/common.py +0 -0
  38. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/msg.py +0 -0
  39. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/ptyproxy.py +0 -0
  40. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/server.py +0 -0
  41. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/net/util.py +0 -0
  42. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/numutil.py +0 -0
  43. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/regutil.py +0 -0
  44. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/seq.py +0 -0
  45. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/singleton.py +0 -0
  46. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/slicing.py +0 -0
  47. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/symbol.py +0 -0
  48. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/00_stuff/letdo.py +0 -0
  49. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/__init__.py +0 -0
  50. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/autocurry.py +0 -0
  51. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/autoref.py +0 -0
  52. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/dbg.py +0 -0
  53. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/forall.py +0 -0
  54. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/ifexprs.py +0 -0
  55. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/lambdatools.py +0 -0
  56. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/lazify.py +0 -0
  57. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/letdo.py +0 -0
  58. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/letdoutil.py +0 -0
  59. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/letsyntax.py +0 -0
  60. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/nameutil.py +0 -0
  61. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/nb.py +0 -0
  62. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/prefix.py +0 -0
  63. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/scopeanalyzer.py +0 -0
  64. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/simplelet.py +0 -0
  65. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/tailtools.py +0 -0
  66. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/testingtools.py +0 -0
  67. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/syntax/util.py +0 -0
  68. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/tco.py +0 -0
  69. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/test/fixtures.py +0 -0
  70. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/timeutil.py +0 -0
  71. {unpythonic-0.15.5 → unpythonic-1.0.0}/unpythonic/typecheck.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unpythonic
3
- Version: 0.15.5
3
+ Version: 1.0.0
4
4
  Summary: Supercharge your Python with parts of Lisp and Haskell.
5
5
  Keywords: functional-programming,language-extension,syntactic-macros,tail-call-optimization,tco,continuations,currying,lazy-evaluation,dynamic-variable,macros,lisp,scheme,racket,haskell
6
6
  Author-Email: Juha Jeronen <juha.m.jeronen@gmail.com>
@@ -35,6 +35,8 @@ In the spirit of [toolz](https://github.com/pytoolz/toolz), we provide missing f
35
35
  ![version on PyPI](https://img.shields.io/pypi/v/unpythonic) ![PyPI package format](https://img.shields.io/pypi/format/unpythonic) ![dependency status](https://img.shields.io/librariesio/github/Technologicat/unpythonic)
36
36
  ![license: BSD](https://img.shields.io/pypi/l/unpythonic) ![open issues](https://img.shields.io/github/issues/Technologicat/unpythonic) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](http://makeapullrequest.com/)
37
37
 
38
+ We use [semantic versioning](https://semver.org/).
39
+
38
40
  *Some hypertext features of this README, such as local links to detailed documentation, and expandable example highlights, are not supported when viewed on PyPI; [view on GitHub](https://github.com/Technologicat/unpythonic) to have those work properly.*
39
41
 
40
42
 
@@ -857,6 +859,60 @@ If `--no-compile` is NOT used, the precompiled bytecode cache may cause errors s
857
859
 
858
860
  This is a common issue when using macro expanders in Python.
859
861
 
862
+ ### Development mode (for developing `unpythonic` itself)
863
+
864
+ Starting with v0.15.5, `unpythonic` uses [PDM](https://pdm-project.org/en/latest/) to manage its dependencies. This allows easy installation of a development copy into an isolated venv (virtual environment), allowing you to break things without breaking anything else on your system (including apps and libraries that use an installed copy of `unpythonic`).
865
+
866
+ #### Install PDM in your Python environment
867
+
868
+ To develop `unpythonic`, if your Python environment does not have PDM, you will need to install it first:
869
+
870
+ ```bash
871
+ python -m pip install pdm
872
+ ```
873
+
874
+ Don't worry; it won't break `pip`, `poetry`, or other similar tools.
875
+
876
+ We will also need a Python for PDM venvs. This Python is independent of the Python that PDM itself runs on. It is the version of Python you would like to use for developing `unpythonic`.
877
+
878
+ For example, we can make Python 3.10 available with the command:
879
+
880
+ ```bash
881
+ pdm python install 3.10
882
+ ```
883
+
884
+ Specifying just a version number defaults to CPython (the usual Python implementation). If you want PyPy instead, you can use e.g. `pypy@3.10`.
885
+
886
+ #### Install the isolated venv
887
+
888
+ Now, we will auto-create the development venv, and install `unpythonic`'s dependencies into it. In a terminal that sees your Python environment, navigate to the `unpythonic` folder, and issue the command:
889
+
890
+ ```bash
891
+ pdm install
892
+ ```
893
+
894
+ This creates the development venv into the `.venv` hidden subfolder of the `unpythonic` folder.
895
+
896
+ If you are a seasoned pythonista, note that there is no `requirements.txt`; the dependency list lives in `pyproject.toml`.
897
+
898
+ #### Upgrade dependencies (later)
899
+
900
+ To upgrade dependencies to latest available versions compatible with the specifications in `pyproject.toml`:
901
+
902
+ ```bash
903
+ pdm update
904
+ ```
905
+
906
+ #### Develop
907
+
908
+ To activate the development venv, in a terminal that sees your Python environment, navigate to the `unpythonic` folder, and issue the command:
909
+
910
+ ```bash
911
+ $(pdm venv activate)
912
+ ```
913
+
914
+ Note the Bash exec syntax `$(...)`; the command `pdm venv activate` just prints the actual internal activation command.
915
+
860
916
  ### Uninstall
861
917
 
862
918
  ```bash
@@ -6,6 +6,8 @@ In the spirit of [toolz](https://github.com/pytoolz/toolz), we provide missing f
6
6
  ![version on PyPI](https://img.shields.io/pypi/v/unpythonic) ![PyPI package format](https://img.shields.io/pypi/format/unpythonic) ![dependency status](https://img.shields.io/librariesio/github/Technologicat/unpythonic)
7
7
  ![license: BSD](https://img.shields.io/pypi/l/unpythonic) ![open issues](https://img.shields.io/github/issues/Technologicat/unpythonic) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](http://makeapullrequest.com/)
8
8
 
9
+ We use [semantic versioning](https://semver.org/).
10
+
9
11
  *Some hypertext features of this README, such as local links to detailed documentation, and expandable example highlights, are not supported when viewed on PyPI; [view on GitHub](https://github.com/Technologicat/unpythonic) to have those work properly.*
10
12
 
11
13
 
@@ -828,6 +830,60 @@ If `--no-compile` is NOT used, the precompiled bytecode cache may cause errors s
828
830
 
829
831
  This is a common issue when using macro expanders in Python.
830
832
 
833
+ ### Development mode (for developing `unpythonic` itself)
834
+
835
+ Starting with v0.15.5, `unpythonic` uses [PDM](https://pdm-project.org/en/latest/) to manage its dependencies. This allows easy installation of a development copy into an isolated venv (virtual environment), allowing you to break things without breaking anything else on your system (including apps and libraries that use an installed copy of `unpythonic`).
836
+
837
+ #### Install PDM in your Python environment
838
+
839
+ To develop `unpythonic`, if your Python environment does not have PDM, you will need to install it first:
840
+
841
+ ```bash
842
+ python -m pip install pdm
843
+ ```
844
+
845
+ Don't worry; it won't break `pip`, `poetry`, or other similar tools.
846
+
847
+ We will also need a Python for PDM venvs. This Python is independent of the Python that PDM itself runs on. It is the version of Python you would like to use for developing `unpythonic`.
848
+
849
+ For example, we can make Python 3.10 available with the command:
850
+
851
+ ```bash
852
+ pdm python install 3.10
853
+ ```
854
+
855
+ Specifying just a version number defaults to CPython (the usual Python implementation). If you want PyPy instead, you can use e.g. `pypy@3.10`.
856
+
857
+ #### Install the isolated venv
858
+
859
+ Now, we will auto-create the development venv, and install `unpythonic`'s dependencies into it. In a terminal that sees your Python environment, navigate to the `unpythonic` folder, and issue the command:
860
+
861
+ ```bash
862
+ pdm install
863
+ ```
864
+
865
+ This creates the development venv into the `.venv` hidden subfolder of the `unpythonic` folder.
866
+
867
+ If you are a seasoned pythonista, note that there is no `requirements.txt`; the dependency list lives in `pyproject.toml`.
868
+
869
+ #### Upgrade dependencies (later)
870
+
871
+ To upgrade dependencies to latest available versions compatible with the specifications in `pyproject.toml`:
872
+
873
+ ```bash
874
+ pdm update
875
+ ```
876
+
877
+ #### Develop
878
+
879
+ To activate the development venv, in a terminal that sees your Python environment, navigate to the `unpythonic` folder, and issue the command:
880
+
881
+ ```bash
882
+ $(pdm venv activate)
883
+ ```
884
+
885
+ Note the Bash exec syntax `$(...)`; the command `pdm venv activate` just prints the actual internal activation command.
886
+
831
887
  ### Uninstall
832
888
 
833
889
  ```bash
@@ -45,7 +45,7 @@ classifiers = [
45
45
  "Topic :: Software Development :: Libraries",
46
46
  "Topic :: Software Development :: Libraries :: Python Modules",
47
47
  ]
48
- version = "0.15.5"
48
+ version = "1.0.0"
49
49
 
50
50
  [project.license]
51
51
  text = "BSD"
@@ -7,7 +7,7 @@ If you have ``mcpyrate`` installed, see also ``unpythonic.syntax``
7
7
  for a trip down the rabbit hole.
8
8
  """
9
9
 
10
- __version__ = '0.15.5'
10
+ __version__ = '1.0.0'
11
11
 
12
12
  from .amb import * # noqa: F401, F403
13
13
  from .arity import * # noqa: F401, F403
File without changes
File without changes
File without changes