hy: 0.19.0 -> 1.0a1 and improvements

This commit is contained in:
Mazurel 2021-06-17 22:30:33 +02:00
parent c06cb69ca0
commit 30a15dbc5e
4 changed files with 86 additions and 36 deletions

View 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 ]))
];
}
```

View file

@ -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" />

View 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;
};
}

View file

@ -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;
}