Commit Graph

2058 Commits

Author SHA1 Message Date
Kodi Arfer 5f00921dea Fix #1243: `read` raises EOFError on false inputs (#1244)
* Fix #1243: `read` raises EOFError on false inputs

* Fix crash when trying to `eval` false values
2017-03-06 10:51:25 -06:00
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