Commit Graph

2207 Commits

Author SHA1 Message Date
Kodi Arfer
8b6a45e43a Remove car and cdr in favor of first and rest (#1241)
* Remove uses of `car` and `cdr` in /hy

* Remove uses of `car` and `cdr` in quote tests

* Remove `car` and `cdr` in favor of `first` and `rest`

I beefed up the documentation and tests for `first` and `rest` while I was at it.

I defined `car` and `cdr` in native_tests.cons so the tests read a bit more naturally.
2017-03-06 10:34:40 -06:00
Kodi Arfer
8ecb17d1fd Fix bug: quoting a bytestring raises ImportError (#1245) 2017-03-04 19:04:28 -06:00
Kodi Arfer
6620cc4e6f Merge pull request #1235 from Kodiologist/test-reorg
Minor test reorganization
2017-03-02 18:45:17 -08:00
Kodi Arfer
484daafa53 Move hy.core.reserved to hy.extra.reserved (#1231)
It was an odd one out by being in hy.core but needing to be called by a qualified name. It's at home in hy.extra.
2017-03-02 16:49:32 -06:00
Kodi Arfer
ebfa636b50 Fix #1237: iterator-handling bug in partition
Also, `partition` with n < 0 now raises an error.
2017-02-26 20:37:35 +02:00
Tuukka Turto
8b84114869 Document get in nested structure (#1236) 2017-02-24 14:22:27 -08:00
Kodi Arfer
d649147b0c Minor test reorganization
This removes two singleton directories.
2017-02-24 12:47:35 -08:00
Kodi Arfer
e4a7b317e1 Make fn work like lambda and remove lambda (#1228)
* with-decorator: Allow a `setv` form as the form to be decorated

This feature is of dubious value by itself, but it's necessary to allow `defn` to create a lambda instead of a `def`.

* Make `fn` work the same as `lambda`

That is, allow it to generate a `lambda` instead of a `def` statement if the function body is just an expression.

I've removed two uses of with_decorator in hy.compiler because they'd require adding another case to HyASTCompiler.compile_decorate_expression and they have no ultimate effect, anyway.

In a few tests, I've added a meaningless statement in `fn` bodies to force generation of a `def`.

I've removed `test_fn_compiler_empty_function` rather than rewrite it because it seems like a pain to maintain and not very useful.

* Remove `lambda`, now that `fn` does the same thing
2017-02-22 17:36:52 -06:00
Kodi Arfer
45b7a4ac9d Add bytestring literals 2017-02-19 09:04:45 +02:00
Kodi Arfer
92d5d6b42c Merge pull request #1224 from Kodiologist/refactor-models
Refactor hy.models
2017-02-17 07:42:40 -08:00
Kodi Arfer
0336ff3c68 Don't put redundant names in _stdlib (#1221)
This prevents pointless imports of hy.core, like importing `map` in Python 3.
2017-02-16 21:14:06 -07:00
Kodi Arfer
62e5d8e3e3 In hy.models, factor out strip_digit_separators 2017-02-16 19:43:16 -08:00
Kodi Arfer
bebcbbeba6 Change KEYWORD_PREFIX to HyKeyword.PREFIX 2017-02-16 19:43:16 -08:00
Kodi Arfer
ace125ee9b Consolidate hy.models.* and tests/models/* into one file apiece
They were a lot of similar, tiny files.
2017-02-16 19:43:00 -08:00
Kodi Arfer
f3edeb99ae Allow commas and underscores in numeric literals
You can use them as thousands separators.

This change differs from PEP 515 in that not only does it allow commas in addition to underscores, but it's much more liberal about placement. Any number of underscores or commas can be placed anywhere, even at the start.
2017-02-15 09:03:24 +02:00
Kodi Arfer
1d6de2792e Merge branch 'let-it-be' 2017-02-13 09:19:37 -08:00
Kodi Arfer
23a7363cce Fix a test for Python 2 2017-02-13 09:12:21 -08:00
Kodi Arfer
9f4b630e14 Fix Python 2 issue in take-nth
It was trying to `return` a value in a generator, which Python 2 forbids.
2017-02-13 09:12:21 -08:00
Kodi Arfer
3ec919278d Remove let from documentation 2017-02-13 09:12:21 -08:00
Kodi Arfer
2a44928eb7 Remove let
Yes, bizarrely, this does require editing the implementation of `defn` a little. Without the import, HyList isn't in scope. Defining `let` made it visible due to black magic regarding automatic import.
2017-02-13 09:12:21 -08:00
Kodi Arfer
31f3a55a26 Remove tests of let 2017-02-13 09:12:13 -08:00
Charles de Lacombe
83cdaf0a71 Docs: Hy <-> Python interop fix #1061 (#1218)
* Docs: Hy <-> Python interop fix #1061

I separated the existing text in two sections, with some additional
explanations and a link to Hy's `import`.

* added interop page

* simplified interop section in tutorial

* remove the TODO from interop section in tutorial

Because yay

* Corrections from @Kodiologist

I kept the part about mangling, but added a warning about its incompleteness. I
think it can be useful for somebody who just wants to use a Python module in his
code. Maybe it can be removed when the actual documentation for mangling is
written.

* Added myself to AUTHORS.

I'll do my best to be worthy of it. Thanks for this awesome project!
2017-02-10 17:11:21 -08:00
Jakub Wilk
99d31d153c Use HTTPS for github.com, docs.python.org and notes.pault.ag URLs (#1219)
* Use HTTPS for github.com

* Use HTTPS for docs.python.org

* Use HTTPS for notes.pault.ag
2017-02-07 13:25:40 -06:00
Kodi Arfer
b1df5d1428 Remove extra uses of let in native_tests.language
Tests of `let` itself remain.
2017-02-04 09:18:22 -08:00
Kodi Arfer
d72abb39f1 Remove uses of let from various tests 2017-02-04 09:07:27 -08:00
Kodi Arfer
99638ba2df Remove uses of let from /hy 2017-02-03 17:06:26 -08:00
Kodi Arfer
36507b0678 Merge pull request #1194 from swhalen/shadow-ops-and
Use `and` in hy.core.shadow.comp_op
2017-02-03 16:34:33 -08:00
Kodi Arfer
d517378eba Update NEWS 2017-02-03 15:48:57 -08:00
Kodi Arfer
1abf293793 Test the use of and in shadowed chained comparisons 2017-02-03 15:43:00 -08:00
Simon Whalen
b89d142e95 Use and in hy.core.shadow.comp_op
Makes shadow operator behavior match normal (Python) operator behavior
when said operators are used in chained comparisons.

Resolves #1191
2017-02-03 15:22:19 -08:00
Kodi Arfer
7b52530adf CONTRIBUTING.rst: Add NEWS items for your PRs 2017-02-03 22:25:38 +02:00
Kodi Arfer
9ca7f49c88 Make xor return single true inputs
The documentation should now be correct (#1214).
2017-02-03 22:25:38 +02:00
Paul Tagliamonte
7a4a2ca668 Merge pull request #1209 from Kodiologist/fix-1205
Fix 1205
2017-01-24 13:40:42 -05:00
Kodi Arfer
fe0fb6fba1 Use try instead of if in setup.py 2017-01-24 08:31:38 -08:00
Kodi Arfer
6e7e94dd8e Tweak __version__ handling in setup.py 2017-01-20 13:34:15 -08:00
Paul Tagliamonte
1fc3507115 Merge pull request #1204 from Kodiologist/eval-str
Docs: add an example of evaluating a string
2017-01-19 12:31:01 -05:00
Kodi Arfer
2dd1432b07 Docs: add an example of evaluating a string 2017-01-19 09:26:12 -08:00
Tuukka Turto
dda456ddd9 Release 0.12.0 preparation (#1140)
* Release 0.12.0 preparation

* Update news

* Update news

* Update news

* Update news to contain version info change

* Add require change into news

* Update in respect of true, false and nil

* add multimethod change

* add lazy sequences

* add hy.core.reserved

* add #1160 - hy2py can use standard input

* added defmacro!

* add comp, constantly and complement

* add juxt

* contrib clean up

* Allow keyword args in method calls before the obj
2017-01-17 15:43:02 -06:00
Tuukka Turto
fe8209bf03 Include hy.extra in packaging (#1201)
closes #1200
2017-01-17 12:46:58 -06:00
Kodi Arfer
5df8f38d75 Merge branch 'itertools-docs' 2017-01-04 15:14:04 -08:00
Kodi Arfer
c8171bc0c5 Itertools docs edits 2017-01-04 15:11:54 -08:00
gilch
b9106de1ab list all itertools 2017-01-04 13:04:41 -07:00
Kodi Arfer
ed930edefe Allow keyword args in method calls before the obj (#1167)
Unlike Python, Hy allows the programmer to intermingle positional and keyword arguments. This change removes an exception to that rule for method calls, in which the method callee always had to be the first thing after the method. Thus, `(.split :sep "o" "foo")` now compiles to `"foo".split(sep="o")` instead of `HyKeyword("sep").split("o", "foo")`.
2017-01-03 00:24:55 -07:00
Jakub Wilk
7aaf5f5330 Fix invalid escape sequences
Fixes:

    hy/cmdline.py:175: DeprecationWarning: invalid escape sequence \_
    tests/lex/test_lex.py:267: DeprecationWarning: invalid escape sequence \s
    tests/compilers/test_compiler.py:45: DeprecationWarning: invalid escape sequence \*

when run against Python 3.6 with warnings enabled.
2017-01-01 00:20:04 +03:00
Kodi Arfer
99b0bd0424 Remove @rwtolbert from core team
Closes #1197.
2016-12-31 11:05:53 -08:00
Kodi Arfer
9449584c7f Merge branch 'contrib-cleanup' 2016-12-30 08:06:59 -08:00
Kodi Arfer
91b26d1fdd Remove contrib.meth
This seems to be specific to Flask, a web framework.
2016-12-29 08:35:54 -08:00
Kodi Arfer
407a79591a Remove contrib.flow
It's not tested, and sure enough, a glance at the code suggests that `case` and `switch` will evaluate their first argument once for every clause, which is unlikely to be desirable. I say remove it, but if anybody wants to fix and test and re-add `case` (and change it to a square-bracket syntax like `cond`), be my guest.
2016-12-29 08:35:54 -08:00
Kodi Arfer
38d11bd455 Translate MultiDispatch from Python to Hy
Now we can put it into contrib.multi instead of its own module.
2016-12-29 08:35:54 -08:00
Kodi Arfer
85b4160637 Remove contrib.curry
It's undocumented and of dubious value.
2016-12-29 08:35:54 -08:00