hy: 0.19.0 -> 1.0a1 and improvements
This commit is contained in:
parent
c06cb69ca0
commit
30a15dbc5e
31
doc/languages-frameworks/hy.section.md
Normal file
31
doc/languages-frameworks/hy.section.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Hy {#sec-language-hy}
|
||||
|
||||
## Installation {#ssec-hy-installation}
|
||||
|
||||
### Installation without packages {#installation-without-packages}
|
||||
|
||||
You can install `hy` via nix-env or by adding it to `configuration.nix` by reffering to it as a `hy` attribute. This kind of installation adds `hy` to your environment and it succesfully works with `python3`.
|
||||
|
||||
::: {.caution}
|
||||
Packages that are installed with your python derivation, are not accesible by `hy` this way.
|
||||
:::
|
||||
|
||||
### Installation with packages {#installation-with-packages}
|
||||
|
||||
Creating `hy` derivation with custom `python` packages is really simple and similar to the way that python does it. Attribute `hy` provides function `withPackages` that creates custom `hy` derivation with specified packages.
|
||||
|
||||
For example if you want to create shell with `matplotlib` and `numpy`, you can do it like so:
|
||||
|
||||
```ShellSession
|
||||
$ nix-shell -p "hy.withPackages (ps: with ps; [ numpy matplotlib ])"
|
||||
```
|
||||
|
||||
Or if you want to extend your `configuration.nix`:
|
||||
```nix
|
||||
{ # ...
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
(hy.withPackages (py-packages: with py-packages; [ numpy matplotlib ]))
|
||||
];
|
||||
}
|
||||
```
|
@ -16,6 +16,7 @@
|
||||
<xi:include href="gnome.section.xml" />
|
||||
<xi:include href="go.section.xml" />
|
||||
<xi:include href="haskell.section.xml" />
|
||||
<xi:include href="hy.section.xml" />
|
||||
<xi:include href="idris.section.xml" />
|
||||
<xi:include href="ios.section.xml" />
|
||||
<xi:include href="java.section.xml" />
|
||||
|
40
pkgs/development/interpreters/hy/builder.nix
Normal file
40
pkgs/development/interpreters/hy/builder.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, hyDefinedPythonPackages /* Packages like with python.withPackages */
|
||||
, ...
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "hy";
|
||||
version = "1.0a1";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-lCrbvbkeutSNmvvn/eHpTnJwPb5aEH7hWTXYSE+AJmU=";
|
||||
};
|
||||
|
||||
checkInputs = with python3Packages; [ flake8 pytest ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
appdirs
|
||||
astor
|
||||
clint
|
||||
colorama
|
||||
fastentrypoints
|
||||
funcparserlib
|
||||
rply
|
||||
pygments
|
||||
] ++ (hyDefinedPythonPackages python3Packages);
|
||||
|
||||
# Hy does not include tests in the source distribution from PyPI, so only test executable.
|
||||
checkPhase = ''
|
||||
$out/bin/hy --help > /dev/null
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A LISP dialect embedded in Python";
|
||||
homepage = "https://hylang.org/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ nixy mazurel ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -1,37 +1,15 @@
|
||||
{ lib, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "hy";
|
||||
version = "0.19.0";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "05k05qmiiysiwdc05sxmanwhv1crfwbb3l8swxfisbzbvmv1snis";
|
||||
};
|
||||
|
||||
checkInputs = with python3Packages; [ flake8 pytest ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
appdirs
|
||||
astor
|
||||
clint
|
||||
colorama
|
||||
fastentrypoints
|
||||
funcparserlib
|
||||
rply
|
||||
pygments
|
||||
];
|
||||
|
||||
# Hy does not include tests in the source distribution from PyPI, so only test executable.
|
||||
checkPhase = ''
|
||||
$out/bin/hy --help > /dev/null
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A LISP dialect embedded in Python";
|
||||
homepage = "http://hylang.org/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ nixy ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
{ lib
|
||||
, callPackage
|
||||
, hyDefinedPythonPackages ? python-packages: [] /* Packages like with python.withPackages */
|
||||
}:
|
||||
let
|
||||
withPackages = (
|
||||
python-packages: callPackage ./builder.nix {
|
||||
hyDefinedPythonPackages = python-packages;
|
||||
}
|
||||
);
|
||||
in
|
||||
(withPackages hyDefinedPythonPackages) // {
|
||||
# Export withPackages function for hy customization
|
||||
inherit withPackages;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user