diff options
author | Jon Seager <jon@sgrs.uk> | 2024-03-19 14:54:09 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-19 14:54:09 +0000 |
commit | 8e90afb61f99b1e2f3ccf1418ae88ed03cc528a1 (patch) | |
tree | 7e19f9bf7e6fd20614faae4a5e7e81db3239554e /pkgs | |
parent | 64eb8fcf9b5c1c9f3f2e18c303c2268fcdbc3c11 (diff) | |
parent | b4015067b28bf72e8ad7e7a27a335272ab015c99 (diff) |
Merge pull request #291245 from t4ccer/t4/opshin/init
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/by-name/op/opshin/package.nix | 37 | ||||
-rw-r--r-- | pkgs/development/python-modules/frozenlist2/default.nix | 32 | ||||
-rw-r--r-- | pkgs/development/python-modules/graphlib-backport/default.nix | 40 | ||||
-rw-r--r-- | pkgs/development/python-modules/pluthon/default.nix | 39 | ||||
-rw-r--r-- | pkgs/development/python-modules/pycardano/default.nix | 7 | ||||
-rw-r--r-- | pkgs/development/python-modules/python-secp256k1-cardano/default.nix | 41 | ||||
-rw-r--r-- | pkgs/development/python-modules/uplc/default.nix | 55 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 10 |
8 files changed, 261 insertions, 0 deletions
diff --git a/pkgs/by-name/op/opshin/package.nix b/pkgs/by-name/op/opshin/package.nix new file mode 100644 index 0000000000000..12fd3671cfee6 --- /dev/null +++ b/pkgs/by-name/op/opshin/package.nix @@ -0,0 +1,37 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "opshin"; + version = "0.20.0"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "OpShin"; + repo = "opshin"; + rev = version; + hash = "sha256-fJlPeVAuEf80FVxdXnaKASLmjMEgz6ysXenUY72+sos="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + setuptools + poetry-core + uplc + pluthon + pycardano + frozenlist2 + astunparse + ordered-set + ]; + + meta = with lib; { + description = "A simple pythonic programming language for Smart Contracts on Cardano"; + homepage = "https://opshin.dev"; + license = licenses.mit; + maintainers = with maintainers; [ t4ccer ]; + mainProgram = "opshin"; + }; +} diff --git a/pkgs/development/python-modules/frozenlist2/default.nix b/pkgs/development/python-modules/frozenlist2/default.nix new file mode 100644 index 0000000000000..2cbac731c577e --- /dev/null +++ b/pkgs/development/python-modules/frozenlist2/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, setuptools +}: + +buildPythonPackage rec { + pname = "frozenlist2"; + version = "1.0.0"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "rohanpm"; + repo = "frozenlist2"; + rev = "v${version}"; + hash = "sha256-fF0oFZ2q1wRH7IKBlCjm3Za4xtEMSHyEaGL09rHgtTY="; + }; + + propagatedBuildInputs = [ + setuptools + ]; + + pythonImportsCheck = [ "frozenlist2" ]; + + meta = with lib; { + description = "An immutable list for Python"; + homepage = "https://github.com/rohanpm/frozenlist2"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ t4ccer ]; + }; +} diff --git a/pkgs/development/python-modules/graphlib-backport/default.nix b/pkgs/development/python-modules/graphlib-backport/default.nix new file mode 100644 index 0000000000000..54d166a88ba2a --- /dev/null +++ b/pkgs/development/python-modules/graphlib-backport/default.nix @@ -0,0 +1,40 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, setuptools +, poetry-core +}: + +buildPythonPackage rec { + pname = "graphlib-backport"; + version = "1.1.0"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "mariushelf"; + repo = "graphlib_backport"; + rev = version; + hash = "sha256-ssJLtBQH8sSnccgcAKLKfYpPyw5U0RIm1F66/Er81lo="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'poetry>=1.0' 'poetry-core' \ + --replace 'poetry.masonry.api' 'poetry.core.masonry.api' + ''; + + propagatedBuildInputs = [ + setuptools + poetry-core + ]; + + pythonImportsCheck = [ "graphlib" ]; + + meta = with lib; { + description = "Backport of the Python 3.9 graphlib module for Python 3.6+"; + homepage = "https://github.com/mariushelf/graphlib_backport"; + license = licenses.psfl; + maintainers = with maintainers; [ t4ccer ]; + }; +} diff --git a/pkgs/development/python-modules/pluthon/default.nix b/pkgs/development/python-modules/pluthon/default.nix new file mode 100644 index 0000000000000..51f73a7381c61 --- /dev/null +++ b/pkgs/development/python-modules/pluthon/default.nix @@ -0,0 +1,39 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, setuptools +, pythonOlder +# Python deps +, uplc +, graphlib-backport +, ordered-set +}: + +buildPythonPackage rec { + pname = "pluthon"; + version = "0.4.6"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "OpShin"; + repo = "pluthon"; + rev = version; + hash = "sha256-ZmBkbglSbBfVhA4yP0tJdwpJiFpJ7vX0A321ldQF0lA="; + }; + + propagatedBuildInputs = [ + setuptools + uplc + ordered-set + ] ++ lib.optionals (pythonOlder "3.9") graphlib-backport; + + pythonImportsCheck = [ "pluthon" ]; + + meta = with lib; { + description = "Pluto-like programming language for Cardano Smart Contracts in Python"; + homepage = "https://github.com/OpShin/pluthon"; + license = licenses.mit; + maintainers = with maintainers; [ t4ccer ]; + }; +} diff --git a/pkgs/development/python-modules/pycardano/default.nix b/pkgs/development/python-modules/pycardano/default.nix index 118e4ed66b5e6..75bef6723d5df 100644 --- a/pkgs/development/python-modules/pycardano/default.nix +++ b/pkgs/development/python-modules/pycardano/default.nix @@ -1,6 +1,7 @@ { lib , buildPythonPackage , fetchFromGitHub +, pythonRelaxDepsHook # Python deps , blockfrost-python , cachetools @@ -41,6 +42,10 @@ in buildPythonPackage rec { hash = "sha256-LP/W8IC2del476fGFq10VMWwMrbAoCCcZOngA8unBM0="; }; + nativeBuildInputs = [ + pythonRelaxDepsHook + ]; + propagatedBuildInputs = [ blockfrost-python cachetools @@ -58,6 +63,8 @@ in buildPythonPackage rec { websocket-client ]; + pythonRelaxDeps = [ "typeguard" ]; + pythonImportsCheck = [ "pycardano" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/python-secp256k1-cardano/default.nix b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix new file mode 100644 index 0000000000000..d5becf5d86264 --- /dev/null +++ b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix @@ -0,0 +1,41 @@ +{ lib +, fetchFromGitHub +, python3 +, pkg-config +}: + +python3.pkgs.buildPythonPackage { + pname = "python-secp256k1-cardano"; + version = "0.2.3"; + + format = "setuptools"; + + src = fetchFromGitHub { + owner = "OpShin"; + repo = "python-secp256k1"; + rev = "5a8f761a4b9a1594653cc4deebadc3398b07533c"; # No tags in repo + hash = "sha256-6bE4/G2gW2F8h5FWtI3TZ6FtijsB/slvFT/SIVv7VIY="; + }; + + nativeBuildInputs = [ pkg-config ]; + + propagatedBuildInputs = with python3.pkgs; [ cffi secp256k1 ]; + + nativeCheckInputs = [ python3.pkgs.pytestCheckHook ]; + + # Tests expect .so files and are failing + doCheck = false; + + preConfigure = '' + cp -r ${python3.pkgs.secp256k1.src} libsecp256k1 + export INCLUDE_DIR=${python3.pkgs.secp256k1}/include + export LIB_DIR=${python3.pkgs.secp256k1}/lib + ''; + + meta = { + homepage = "https://github.com/OpShin/python-secp256k1"; + description = "A fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version"; + license = with lib.licenses; [ mit ]; + maintainers = with lib.maintainers; [ t4ccer ]; + }; +} diff --git a/pkgs/development/python-modules/uplc/default.nix b/pkgs/development/python-modules/uplc/default.nix new file mode 100644 index 0000000000000..a3aa8d10e7adc --- /dev/null +++ b/pkgs/development/python-modules/uplc/default.nix @@ -0,0 +1,55 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, pythonRelaxDepsHook +# Python deps +, frozenlist2 +, python-secp256k1-cardano +, setuptools +, poetry-core +, frozendict +, cbor2 +, rply +, pycardano +}: + +buildPythonPackage rec { + pname = "uplc"; + version = "0.6.9"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "OpShin"; + repo = "uplc"; + rev = version; + hash = "sha256-djJMNXijMVzMVzw8NZSe3YFRGyAPqdvr0P374Za5XkU="; + }; + + nativeBuildInputs = [ + pythonRelaxDepsHook + ]; + + propagatedBuildInputs = [ + setuptools + poetry-core + frozendict + cbor2 + frozenlist2 + rply + pycardano + python-secp256k1-cardano + ]; + + pythonRelaxDeps = [ "pycardano" "rply" ]; + + pythonImportsCheck = [ "uplc" ]; + + meta = with lib; { + description = "Python implementation of untyped plutus language core"; + homepage = "https://opshin.dev"; + license = licenses.mit; + maintainers = with maintainers; [ t4ccer ]; + mainProgram = "opshin"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 28cb5bf1700a5..1a37a8282e82a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4446,6 +4446,8 @@ self: super: with self; { frozenlist = callPackage ../development/python-modules/frozenlist { }; + frozenlist2 = callPackage ../development/python-modules/frozenlist2 { }; + fs = callPackage ../development/python-modules/fs { }; fs-s3fs = callPackage ../development/python-modules/fs-s3fs { }; @@ -4995,6 +4997,8 @@ self: super: with self; { graphene-django = callPackage ../development/python-modules/graphene-django { }; + graphlib-backport = callPackage ../development/python-modules/graphlib-backport { }; + graphqlclient= callPackage ../development/python-modules/graphqlclient { }; graphql-core = callPackage ../development/python-modules/graphql-core { }; @@ -8752,6 +8756,8 @@ self: super: with self; { python-nvd3 = callPackage ../development/python-modules/python-nvd3 { }; + python-secp256k1-cardano = callPackage ../development/python-modules/python-secp256k1-cardano { }; + python-tds = callPackage ../development/python-modules/python-tds { }; python-yate = callPackage ../development/python-modules/python-yate { }; @@ -9940,6 +9946,8 @@ self: super: with self; { plumbum = callPackage ../development/python-modules/plumbum { }; + pluthon = callPackage ../development/python-modules/pluthon { }; + plux = callPackage ../development/python-modules/plux { }; ply = callPackage ../development/python-modules/ply { }; @@ -16128,6 +16136,8 @@ self: super: with self; { update-dotdee = callPackage ../development/python-modules/update-dotdee { }; + uplc = callPackage ../development/python-modules/uplc { }; + upnpy = callPackage ../development/python-modules/upnpy { }; uproot = callPackage ../development/python-modules/uproot { }; |