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="gnome.section.xml" />
|
||||||
<xi:include href="go.section.xml" />
|
<xi:include href="go.section.xml" />
|
||||||
<xi:include href="haskell.section.xml" />
|
<xi:include href="haskell.section.xml" />
|
||||||
|
<xi:include href="hy.section.xml" />
|
||||||
<xi:include href="idris.section.xml" />
|
<xi:include href="idris.section.xml" />
|
||||||
<xi:include href="ios.section.xml" />
|
<xi:include href="ios.section.xml" />
|
||||||
<xi:include href="java.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 }:
|
{ lib
|
||||||
|
, callPackage
|
||||||
python3Packages.buildPythonApplication rec {
|
, hyDefinedPythonPackages ? python-packages: [] /* Packages like with python.withPackages */
|
||||||
pname = "hy";
|
}:
|
||||||
version = "0.19.0";
|
let
|
||||||
|
withPackages = (
|
||||||
src = python3Packages.fetchPypi {
|
python-packages: callPackage ./builder.nix {
|
||||||
inherit pname version;
|
hyDefinedPythonPackages = python-packages;
|
||||||
sha256 = "05k05qmiiysiwdc05sxmanwhv1crfwbb3l8swxfisbzbvmv1snis";
|
}
|
||||||
};
|
);
|
||||||
|
in
|
||||||
checkInputs = with python3Packages; [ flake8 pytest ];
|
(withPackages hyDefinedPythonPackages) // {
|
||||||
|
# Export withPackages function for hy customization
|
||||||
propagatedBuildInputs = with python3Packages; [
|
inherit withPackages;
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue