parent
c06cb69ca0
commit
30a15dbc5e
@ -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 ])) |
||||
]; |
||||
} |
||||
``` |
@ -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