diff --git a/dependencies/edalize.nix b/dependencies/edalize.nix deleted file mode 100644 index b9bf07e6..00000000 --- a/dependencies/edalize.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, - jinja2, setuptools_scm, simplesat -}: -buildPythonPackage rec { - pname = "edalize"; - version = "0.3.3"; - src = fetchPypi { - inherit pname version; - sha256 = "1734aprwzm0z2l60xapqrfxxw747n9h9fflv3n0x4iaradf75abj"; - }; - SETUPTOOLS_SCM_PRETEND_VERSION = "${version}"; - nativeBuildInputs = [ setuptools_scm ]; - propagatedBuildInputs = [ jinja2 simplesat ]; - doCheck = false; -} diff --git a/dependencies/flake.lock b/dependencies/flake.lock index a8f99522..5e0824ec 100644 --- a/dependencies/flake.lock +++ b/dependencies/flake.lock @@ -1,59 +1,23 @@ { "nodes": { - "lowrisc_edalize_src": { - "flake": false, - "locked": { - "lastModified": 1649340101, - "narHash": "sha256-iIf7bUBE2SeS/TByUNL9wI1LswlHTmgHYGJltWXNUWE=", - "owner": "lowRISC", - "repo": "edalize", - "rev": "5ae2c3e1ca306e27d81ce5fcc769f62cb7ac42d0", - "type": "github" - }, - "original": { - "owner": "lowRISC", - "ref": "ot-0.2", - "repo": "edalize", - "type": "github" - } - }, - "lowrisc_fusesoc_src": { - "flake": false, - "locked": { - "lastModified": 1646915773, - "narHash": "sha256-HFrx6vjthNbhrIeV4vNW3YmmqBwqb6lX8lu0dcmQnQM=", - "owner": "lowRISC", - "repo": "fusesoc", - "rev": "c64ca392382b0c432c893d5ce4a93b77af213fdf", - "type": "github" - }, - "original": { - "owner": "lowRISC", - "ref": "ot-0.2", - "repo": "fusesoc", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1698846319, - "narHash": "sha256-4jyW/dqFBVpWFnhl0nvP6EN4lP7/ZqPxYRjl6var0Oc=", + "lastModified": 1703068421, + "narHash": "sha256-WSw5Faqlw75McIflnl5v7qVD/B3S2sLh+968bpOGrWA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "34bdaaf1f0b7fb6d9091472edc968ff10a8c2857", + "rev": "d65bceaee0fb1e64363f7871bc43dc1c6ecad99f", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { - "lowrisc_edalize_src": "lowrisc_edalize_src", - "lowrisc_fusesoc_src": "lowrisc_fusesoc_src", "nixpkgs": "nixpkgs" } } diff --git a/dependencies/flake.nix b/dependencies/flake.nix index 512d17e0..8a2672c1 100644 --- a/dependencies/flake.nix +++ b/dependencies/flake.nix @@ -2,103 +2,85 @@ description = "ibex simple_system dependencies"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; - lowrisc_fusesoc_src = { url = "github:lowRISC/fusesoc?ref=ot-0.2"; flake = false; }; - lowrisc_edalize_src = { url = "github:lowRISC/edalize?ref=ot-0.2"; flake = false; }; + nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; }; - outputs = {self, nixpkgs, - lowrisc_fusesoc_src, lowrisc_edalize_src, - }: - let - system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config = { allowUnfree = true; }; - }; + outputs = { + self, + nixpkgs, + }: let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config = {allowUnfree = true;}; + }; - lowRISC_python_overrides = pfinal: pprev: { - fusesoc = pprev.fusesoc.overridePythonAttrs (oldAttrs: { - version = "0.3.3.dev"; - src = lowrisc_fusesoc_src; - }); - edalize = pprev.edalize.overridePythonAttrs (oldAttrs: { - version = "0.3.3.dev"; - src = lowrisc_edalize_src; - }); - }; + lowRISC_spike_override = final: prev: { + riscv-isa-sim = prev.riscv-isa-sim.overrideAttrs (oldAttrs: rec { + version = "ibex-cosim-v0.3"; + src = pkgs.fetchFromGitHub { + owner = "lowrisc"; + repo = oldAttrs.pname; + rev = version; + sha256 = "sha256-pKuOpzybOI8UqWV1TSFq4hqTHf7Bft/3WL19fRpwmfU="; + }; + }); + }; - lowRISC_spike_override = final: prev: { - riscv-isa-sim = prev.riscv-isa-sim.overrideAttrs (oldAttrs: rec { - version = "ibex-cosim-v0.3"; - src = pkgs.fetchFromGitHub { - owner = "lowrisc"; - repo = oldAttrs.pname; - rev = version; - sha256 = "sha256-pKuOpzybOI8UqWV1TSFq4hqTHf7Bft/3WL19fRpwmfU="; - }; - }); - }; + # Using requireFile prevents rehashing each time. + # This saves much seconds during rebuilds. + vivado_bundled_installer_src = pkgs.requireFile rec { + name = "vivado_bundled.tar.gz"; + sha256 = "1yxx6crvawhzvary9js0m8bzm35vv6pzfqdkv095r84lb13fyp7b"; + # Print the following message if the name / hash are not + # found in the store. + message = '' + requireFile : + file/dir not found in /nix/store + file = ${name} + hash = ${sha256} - # Using requireFile prevents rehashing each time. - # This saves much seconds during rebuilds. - vivado_bundled_installer_src = pkgs.requireFile rec { - name = "vivado_bundled.tar.gz"; - sha256 = "1yxx6crvawhzvary9js0m8bzm35vv6pzfqdkv095r84lb13fyp7b"; - # Print the following message if the name / hash are not - # found in the store. - message = '' - requireFile : - file/dir not found in /nix/store - file = ${name} - hash = ${sha256} + This nix expression requires that ${name} is already part of the store. + - Login to xilinx.com + - Download Unified Installer from https://www.xilinx.com/support/download.html, + - Run installer, specify a 'Download Image (Install Seperately)' + - Gzip the bundled installed image directory + - Rename the file to ${name} + - Add it to the nix store with + nix-prefetch-url --type sha256 file:/path/to/${name} + - Change the sha256 key above to $HASH + ''; + }; - This nix expression requires that ${name} is already part of the store. - - Login to xilinx.com - - Download Unified Installer from https://www.xilinx.com/support/download.html, - - Run installer, specify a 'Download Image (Install Seperately)' - - Gzip the bundled installed image directory - - Rename the file to ${name} - - Add it to the nix store with - nix-prefetch-url --type sha256 file:/path/to/${name} - - Change the sha256 key above to $HASH + vivado = pkgs.callPackage (import ./vivado.nix) { + # We need to prepare the pre-downloaded installer to + # execute within a nix build. Make use of the included java deps, + # but we still need to do a little patching to make it work. + vivado-src = pkgs.stdenv.mkDerivation rec { + pname = "vivado_src"; + version = "2022.2"; + src = vivado_bundled_installer_src; + postPatch = '' + patchShebangs . + patchelf \ + --set-interpreter $(cat ${pkgs.stdenv.cc}/nix-support/dynamic-linker) \ + tps/lnx64/jre*/bin/java + ''; + dontBuild = true; + dontFixup = true; + installPhase = '' + mkdir -p $out + cp -R * $out ''; }; - - vivado = pkgs.callPackage (import ./vivado.nix) { - # We need to prepare the pre-downloaded installer to - # execute within a nix build. Make use of the included java deps, - # but we still need to do a little patching to make it work. - vivado-src = pkgs.stdenv.mkDerivation rec { - pname = "vivado_src"; - version = "2022.2"; - src = vivado_bundled_installer_src; - postPatch = '' - patchShebangs . - patchelf \ - --set-interpreter $(cat ${pkgs.stdenv.cc}/nix-support/dynamic-linker) \ - tps/lnx64/jre*/bin/java - ''; - dontBuild = true; dontFixup = true; - installPhase = '' - mkdir -p $out - cp -R * $out - ''; - }; - }; - - in - { - overlay_pkgs = pkgs.lib.composeManyExtensions [ - (import ./overlay.nix) - lowRISC_spike_override - (final: prev: { - inherit vivado; - }) - ]; - overlay_python = pkgs.lib.composeManyExtensions [ - (import ./python-overlay.nix) - lowRISC_python_overrides - ]; - }; + }; + in { + overlay_pkgs = pkgs.lib.composeManyExtensions [ + (import ./overlay.nix) + lowRISC_spike_override + (final: prev: { + inherit vivado; + }) + ]; + }; } diff --git a/dependencies/fusesoc.nix b/dependencies/fusesoc.nix deleted file mode 100644 index 287d3a0d..00000000 --- a/dependencies/fusesoc.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, - setuptools_scm, pyparsing, pyyaml, simplesat, ipyxact, edalize -}: -buildPythonPackage rec { - pname = "fusesoc"; - version = "1.12.0"; - src = fetchPypi { - inherit pname version; - sha256 = "1065arwk1hylf4lqmgqb77fw9izgh7jaib5qnl2dqwdic11c2w44"; - }; - SETUPTOOLS_SCM_PRETEND_VERSION = "${version}"; # Hack - nativeBuildInputs = [ setuptools_scm ]; - propagatedBuildInputs = [ pyparsing pyyaml simplesat ipyxact edalize ]; - doCheck = false; -} diff --git a/dependencies/ipyxact.nix b/dependencies/ipyxact.nix deleted file mode 100644 index 301a20aa..00000000 --- a/dependencies/ipyxact.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, - pyyaml }: -buildPythonPackage rec { - pname = "ipyxact"; - version = "0.3.1"; - src = fetchPypi { - inherit pname version; - sha256 = "09rv8zn6gqwhdnwgx246mz9biln0q71hsxjf6sb9ilhan75fsn0z"; - }; - propagatedBuildInputs = [ pyyaml ]; - doCheck = false; -} diff --git a/dependencies/okonomiyaki.nix b/dependencies/okonomiyaki.nix deleted file mode 100644 index b09a8d7f..00000000 --- a/dependencies/okonomiyaki.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, - attrs, jsonschema, six, zipfile2, distro }: -buildPythonPackage rec { - pname = "okonomiyaki"; - version = "1.3.2"; - src = fetchPypi { - inherit pname version; - sha256 = "1dw9di7s92z201lwq7aqy5h9h53af73ffx6pnl5iz3lnfi0zf85p"; - }; - propagatedBuildInputs = [ attrs jsonschema six zipfile2 distro ]; - doCheck = false; -} diff --git a/dependencies/overlay.nix b/dependencies/overlay.nix index b0cc1ddf..aedd9b13 100644 --- a/dependencies/overlay.nix +++ b/dependencies/overlay.nix @@ -1,4 +1,3 @@ final: prev: { - riscv-gcc-toolchain-lowrisc = prev.callPackage ./riscv-gcc-toolchain-lowrisc.nix {}; riscv-isa-sim = prev.callPackage ./riscv-isa-sim.nix {}; } diff --git a/dependencies/python-overlay.nix b/dependencies/python-overlay.nix deleted file mode 100644 index b734710f..00000000 --- a/dependencies/python-overlay.nix +++ /dev/null @@ -1,8 +0,0 @@ -pfinal: pprev: { - ipyxact = pfinal.callPackage ./ipyxact.nix {}; - zipfile2 = pfinal.callPackage ./zipfile2.nix {}; - simplesat = pfinal.callPackage ./simplesat.nix {}; - okonomiyaki = pfinal.callPackage ./okonomiyaki.nix {}; - fusesoc = pfinal.callPackage ./fusesoc.nix {}; - edalize = pfinal.callPackage ./edalize.nix {}; -} diff --git a/dependencies/riscv-gcc-toolchain-lowrisc.nix b/dependencies/riscv-gcc-toolchain-lowrisc.nix deleted file mode 100644 index ba27a8d8..00000000 --- a/dependencies/riscv-gcc-toolchain-lowrisc.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ pkgs, lib, stdenv, - fetchzip, zlib, ncurses5, -}: - -# Used for reference... -# https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/gcc-arm-embedded/10/default.nix - -stdenv.mkDerivation rec { - name = "riscv-gcc-toolchain"; - version = "20220210-1"; - src = fetchzip { - url = "https://github.com/lowRISC/lowrisc-toolchains/releases/download/${version}/lowrisc-toolchain-gcc-rv32imc-${version}.tar.xz"; - sha256 = "1m708xfdzf3jzclm2zw51my3nryvlsfwqkgps3xxa0xnhq4ly1bl"; - }; - - dontConfigure = true; - dontBuild = true; - dontPatchELF = true; # We will do this manually in preFixup - dontStrip = true; - - installPhase = '' - mkdir -p $out - cp -R * $out - ''; - preFixup = '' - find $out -type f ! -name ".o" | while read f; do - patchelf "$f" > /dev/null 2>&1 || continue - patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true - patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 ]} "$f" || true - done - ''; -} diff --git a/dependencies/riscv-isa-sim.nix b/dependencies/riscv-isa-sim.nix index 81570536..36b0ea18 100644 --- a/dependencies/riscv-isa-sim.nix +++ b/dependencies/riscv-isa-sim.nix @@ -1,7 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, - dtc +{ + lib, + stdenv, + fetchFromGitHub, + dtc, }: - stdenv.mkDerivation rec { name = "spike"; pname = "riscv-isa-sim"; @@ -16,17 +18,17 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # buildInputs = [ ]; - nativeBuildInputs = [ dtc ]; - configureFlags = [ "--enable-commitlog" "--enable-misaligned" ]; + nativeBuildInputs = [dtc]; + configureFlags = ["--enable-commitlog" "--enable-misaligned"]; doCheck = false; dontInstall = false; meta = with lib; { description = "Riscv golden-reference simulator Spike"; - homepage = "https://github.com/riscv-software-src/riscv-isa-sim"; - license = with licenses; []; - platforms = platforms.unix; + homepage = "https://github.com/riscv-software-src/riscv-isa-sim"; + license = with licenses; []; + platforms = platforms.unix; maintainers = with maintainers; []; }; } diff --git a/dependencies/riscv_gcc.nix b/dependencies/riscv_gcc.nix index 0549ea3e..09f241ee 100644 --- a/dependencies/riscv_gcc.nix +++ b/dependencies/riscv_gcc.nix @@ -1,19 +1,17 @@ -{ # Chosen toolchain subarchitecture, e.g. 'rv32imc' - riscv-arch - +{ + # Chosen toolchain subarchitecture, e.g. 'rv32imc' + riscv-arch, # Package set -, pkgs + pkgs, }: - # -------------------------- # RISC-V GCC Toolchain Setup - let riscv-toolchain-ver = "8.2.0"; riscv-src = pkgs.fetchFromGitHub { - owner = "lowRISC"; - repo = "lowrisc-toolchains"; - rev = "2cac2b9797d96a5c46d86d463c71e0a66926f473"; + owner = "lowRISC"; + repo = "lowrisc-toolchains"; + rev = "2cac2b9797d96a5c46d86d463c71e0a66926f473"; sha256 = "sha256-DNEkdJ5G8wpN2nQbD+nzvAQixWWGCG5RbJrXg5IRteg="; }; # @@ -21,17 +19,17 @@ let # toolchain derivation based on the above source code. make-riscv-toolchain = arch: pkgs.stdenv.mkDerivation rec { - name = "riscv-${arch}-toolchain-${version}"; + name = "riscv-${arch}-toolchain-${version}"; version = "${riscv-toolchain-ver}-${builtins.substring 0 7 src.rev}"; - src = riscv-src; + src = riscv-src; - configureFlags = [ "--with-arch=${arch}" ]; - installPhase = ":"; # 'make' installs on its own + configureFlags = ["--with-arch=${arch}"]; + installPhase = ":"; # 'make' installs on its own # installPhase = '' # mkdir -p $out # cp -r * $out # ''; - hardeningDisable = [ "all" ]; + hardeningDisable = ["all"]; enableParallelBuilding = true; # Stripping/fixups break the resulting libgcc.a archives, somehow. @@ -39,8 +37,8 @@ let dontStrip = true; dontFixup = true; - nativeBuildInputs = with pkgs; [ curl gawk texinfo bison flex gperf ]; - buildInputs = with pkgs; [ libmpc mpfr gmp expat ]; + nativeBuildInputs = with pkgs; [curl gawk texinfo bison flex gperf]; + buildInputs = with pkgs; [libmpc mpfr gmp expat]; }; - -in make-riscv-toolchain riscv-arch +in + make-riscv-toolchain riscv-arch diff --git a/dependencies/simplesat.nix b/dependencies/simplesat.nix deleted file mode 100644 index f6f141ce..00000000 --- a/dependencies/simplesat.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, - okonomiyaki, attrs, six, enum34 -}: -buildPythonPackage rec { - pname = "simplesat"; - version = "0.8.2"; - src = fetchPypi { - inherit pname version; - sha256 = "0n6qm2gzwji19ykp3i6wm6vjw7dnn92h2flm42708fxh6lkz6hqr"; - }; - propagatedBuildInputs = [ okonomiyaki attrs six enum34 ]; - doCheck = false; -} diff --git a/dependencies/vivado.nix b/dependencies/vivado.nix index 4825b622..2750e2d3 100644 --- a/dependencies/vivado.nix +++ b/dependencies/vivado.nix @@ -1,25 +1,29 @@ -{ stdenv, lib, breakpointHook -, fetchurl, patchelf, makeWrapper -, vivado-src -, coreutils -, procps -, zlib -, ncurses5 -, libxcrypt -, libuuid -, libSM -, libICE -, libX11 -, libXrender -, libxcb -, libXext -, libXtst -, libXi -, glib -, gtk2 -, freetype +{ + stdenv, + lib, + breakpointHook, + fetchurl, + patchelf, + makeWrapper, + vivado-src, + coreutils, + procps, + zlib, + ncurses5, + libxcrypt, + libuuid, + libSM, + libICE, + libX11, + libXrender, + libxcb, + libXext, + libXtst, + libXi, + glib, + gtk2, + freetype, }: - stdenv.mkDerivation rec { pname = "vivado"; version = "2022.2"; @@ -44,9 +48,21 @@ stdenv.mkDerivation rec { libPath = lib.makeLibraryPath [ stdenv.cc.cc - ncurses5 zlib libxcrypt - libuuid libSM libICE libX11 libXrender libxcb libXext libXtst libXi - glib gtk2 freetype + ncurses5 + zlib + libxcrypt + libuuid + libSM + libICE + libX11 + libXrender + libxcb + libXext + libXtst + libXi + glib + gtk2 + freetype ]; installPhase = '' @@ -84,7 +100,6 @@ stdenv.mkDerivation rec { done ''; - preFixup = '' echo "Patch installed scripts" patchShebangs $out/opt/Vivado/${version}/bin || true @@ -123,4 +138,3 @@ stdenv.mkDerivation rec { license = licenses.unfree; }; } - diff --git a/dependencies/zipfile2.nix b/dependencies/zipfile2.nix deleted file mode 100644 index bf9cebca..00000000 --- a/dependencies/zipfile2.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi }: -buildPythonPackage rec { - pname = "zipfile2"; - version = "0.0.12"; - src = fetchPypi { - inherit pname version; - sha256 = "0256m134qs045j1c8mmgii8ipkwhww9sjbc6xyawhykid34zfxkk"; - }; - doCheck = false; -} diff --git a/flake.lock b/flake.lock index af65e790..64e2cd89 100644 --- a/flake.lock +++ b/flake.lock @@ -2,15 +2,13 @@ "nodes": { "deps": { "inputs": { - "lowrisc_edalize_src": "lowrisc_edalize_src", - "lowrisc_fusesoc_src": "lowrisc_fusesoc_src", "nixpkgs": [ "nixpkgs" ] }, "locked": { "lastModified": 1, - "narHash": "sha256-hQMeLxWbS4jbkv9FnuZj2hidCw5mm/+44gjVfN8KzTM=", + "narHash": "sha256-5zyMPKmcAVEkmxwCAbNwTTKE7VJ7AfXjyuF5O916uVA=", "path": "./dependencies", "type": "path" }, @@ -20,12 +18,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -34,61 +35,159 @@ "type": "github" } }, - "lowrisc_edalize_src": { - "flake": false, + "lowrisc-nix": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "poetry2nix": "poetry2nix" + }, "locked": { - "lastModified": 1649340101, - "narHash": "sha256-iIf7bUBE2SeS/TByUNL9wI1LswlHTmgHYGJltWXNUWE=", + "lastModified": 1704383370, + "narHash": "sha256-r1g68fd//ylpOodTU1eTq3AY9AIlXl2x6SMKFNQb/YQ=", "owner": "lowRISC", - "repo": "edalize", - "rev": "5ae2c3e1ca306e27d81ce5fcc769f62cb7ac42d0", + "repo": "lowrisc-nix", + "rev": "09e6009e25a2d1b75c1b2612cad083275b876b3d", "type": "github" }, "original": { "owner": "lowRISC", - "ref": "ot-0.2", - "repo": "edalize", + "repo": "lowrisc-nix", "type": "github" } }, - "lowrisc_fusesoc_src": { - "flake": false, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "lowrisc-nix", + "poetry2nix", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1646915773, - "narHash": "sha256-HFrx6vjthNbhrIeV4vNW3YmmqBwqb6lX8lu0dcmQnQM=", - "owner": "lowRISC", - "repo": "fusesoc", - "rev": "c64ca392382b0c432c893d5ce4a93b77af213fdf", + "lastModified": 1698974481, + "narHash": "sha256-yPncV9Ohdz1zPZxYHQf47S8S0VrnhV7nNhCawY46hDA=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "4bb5e752616262457bc7ca5882192a564c0472d2", "type": "github" }, "original": { - "owner": "lowRISC", - "ref": "ot-0.2", - "repo": "fusesoc", + "owner": "nix-community", + "repo": "nix-github-actions", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1698846319, - "narHash": "sha256-4jyW/dqFBVpWFnhl0nvP6EN4lP7/ZqPxYRjl6var0Oc=", - "owner": "nixos", + "lastModified": 1703992652, + "narHash": "sha256-C0o8AUyu8xYgJ36kOxJfXIroy9if/G6aJbNOpA5W0+M=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "34bdaaf1f0b7fb6d9091472edc968ff10a8c2857", + "rev": "32f63574c85fbc80e4ba1fbb932cde9619bad25e", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-23.05", + "owner": "NixOS", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "lowrisc-nix", + "flake-utils" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "lowrisc-nix", + "nixpkgs" + ], + "systems": "systems_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1703546497, + "narHash": "sha256-CN/7HaEmHz+akXKejkRVhsxAm6HPGOmYBWMtgMkuROA=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "528d500ea826383cc126a9be1e633fc92b19ce5d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "root": { "inputs": { "deps": "deps", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-utils": [ + "lowrisc-nix", + "flake-utils" + ], + "lowrisc-nix": "lowrisc-nix", + "nixpkgs": [ + "lowrisc-nix", + "nixpkgs" + ], + "poetry2nix": [ + "lowrisc-nix", + "poetry2nix" + ] + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "lowrisc-nix", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1699786194, + "narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 726327b2..746bf7e0 100644 --- a/flake.nix +++ b/flake.nix @@ -2,157 +2,144 @@ description = "Environment for synthesizing and simulating the ibex-demo-system."; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; - flake-utils.url = "github:numtide/flake-utils"; + lowrisc-nix.url = "github:lowRISC/lowrisc-nix"; + + nixpkgs.follows = "lowrisc-nix/nixpkgs"; + flake-utils.follows = "lowrisc-nix/flake-utils"; + poetry2nix.follows = "lowrisc-nix/poetry2nix"; + deps = { url = "path:./dependencies"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = all@{ self, nixpkgs, flake-utils, deps, ... }: - - (flake-utils.lib.eachDefaultSystem (system: - let - pkgs = import nixpkgs { - inherit system; - config = { allowUnfree = true; }; - overlays = - [ # Add extra packages we might need - # Currently this contains the lowrisc riscv-toolchain, and spike - deps.overlay_pkgs - # Add all the python packages we need that aren't in nixpkgs - # (See the ./dependencies folder for more info) - (final: prev: { - python3 = prev.python3.override { - packageOverrides = deps.overlay_python; - }; - }) - # Add some missing dependencies to nixpkgs#verilator - (final: prev: { - verilator = prev.verilator.overrideAttrs ( oldAttrs : { - propagatedBuildInputs = [ final.zlib final.libelf ]; - }); - }) - ]; + outputs = inputs @ { + self, + lowrisc-nix, + nixpkgs, + flake-utils, + deps, + ... + }: let + all_system_outputs = flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { + inherit system; + config = {allowUnfree = true;}; + overlays = [ + # Add extra packages we might need + # Currently this contains spike + deps.overlay_pkgs + ]; + }; + + pythonEnv = let + poetry2nix = inputs.poetry2nix.lib.mkPoetry2Nix {inherit pkgs;}; + poetryOverrides = lowrisc-nix.lib.poetryOverrides {inherit pkgs;}; + in + poetry2nix.mkPoetryEnv { + projectDir = ./.; + overrides = [ + poetryOverrides + poetry2nix.defaultPoetryOverrides + ]; }; - - - # Currently we don't build the riscv-toolchain from src, we use a github release - # (See ./dependencies/riscv-gcc-toolchain-lowrisc.nix) - - # riscv-toolchain (built from src) # BROKEN - # riscv-gcc-toolchain-lowrisc-src = pkgs.callPackage \ - # ./dependencies/riscv_gcc.nix { - # riscv-arch = "rv32imc"; - # }; - - pythonEnv = pkgs.python3.withPackages(ps: - with ps; [ pip fusesoc edalize pyyaml Mako ] - ); - - # This is the final list of dependencies we need to build the project. - project_deps = [ + in { + devShells.default = pkgs.mkShellNoCC { + name = "labenv"; + buildInputs = with pkgs; [ + # Needed in DPI code + libelf + # Needed when running verilator with FST support + zlib + ]; + nativeBuildInputs = with pkgs; [ pythonEnv - ] ++ (with pkgs; [ + cmake openocd screen verilator - riscv-gcc-toolchain-lowrisc + + # Currently we don't build the riscv-toolchain from src, we use a github release + # See https://github.com/lowRISC/lowrisc-nix/blob/main/pkgs/lowrisc-toolchain-gcc-rv32imcb.nix + + # riscv-toolchain (built from src) # BROKEN + # riscv-gcc-toolchain-lowrisc-src = pkgs.callPackage \ + # ./dependencies/riscv_gcc.nix { + # riscv-arch = "rv32imc"; + # }; + lowrisc-nix.packages.${system}.lowrisc-toolchain-gcc-rv32imcb + gtkwave srecord openfpgaloader # vivado - ]); - - in { - packages.dockertest = pkgs.dockerTools.buildImage { - name = "hello-docker"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ pkgs.coreutils - pkgs.sl ]; - }; - config = { - Cmd = [ "${pkgs.sl}/bin/sl" ]; - }; - }; - devShells.default = pkgs.mkShell { - name = "labenv"; - buildInputs = project_deps; - shellHook = '' - # FIXME This works on Ubuntu, may not on other distros. FIXME - export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive - - # HACK fixup some paths to use our sandboxed python environment - # Currently, fusesoc tries to invoke the program 'python3' from the - # PATH, which when running under a nix python environment, resolves - # to the raw python binary, not wrapped and not including the - # environment's packages. Hence, the first time an import is evaluated - # we will error out. - sed -i -- \ - 's|interpreter:.*|interpreter: ${pythonEnv}/bin/python3|g' \ - vendor/lowrisc_ibex/vendor/lowrisc_ip/dv/tools/ralgen/ralgen.core - sed -i -- \ - 's|interpreter:.*|interpreter: ${pythonEnv}/bin/python3|g' \ - vendor/lowrisc_ibex/vendor/lowrisc_ip/ip/prim/primgen.core + # Poetry tool not required, add for convience in case update is needed + poetry + + # By default mkShell adds non-interactive bash to PATH + bashInteractive + ]; + shellHook = '' + # FIXME This works on Ubuntu, may not on other distros. FIXME + export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive + + if [ -z "$DIRENV_IN_ENVRC" ]; then export PS1='labenv(HiPEAC) (ibex-demo-system) \$ ' echo echo cat ./data/lowrisc.art - echo "---------------------------------------------------" - echo "Welcome to the 'ibex-demo-system' nix environment!" - echo "---------------------------------------------------" - - helpstr=$(cat <<'EOF' - - Build ibex software : - mkdir sw/c/build && pushd sw/c/build && cmake ../ && make && popd - Build ibex simulation verilator model : - fusesoc --cores-root=. run --target=sim --tool=verilator --setup --build lowrisc:ibex:demo_system - Run ibex simulator verilator model : - ./build/lowrisc_ibex_demo_system_0/sim-verilator/Vibex_demo_system -t \ - --meminit=ram,sw/c/build/demo/hello_world/demo - Build ibex-demo-system FPGA bitstream for Arty-A7 : - fusesoc --cores-root=. run --target=synth --setup --build lowrisc:ibex:demo_system - Program Arty-A7 FPGA with bitstream : - openFPGALoader -b arty_a7_35t build/lowrisc_ibex_demo_system_0/synth-vivado/lowrisc_ibex_demo_system_0.bit - Load ibex software to the programmed FPGA : - ./util/load_demo_system.sh run ./sw/c/build/demo/lcd_st7735/lcd_st7735 - Start an OpenOCD instance, connected to the Arty-A7 ibex - openocd -f util/arty-a7-openocd-cfg.tcl - Connect gdb to a running program on the FPGA (In a different terminal to the OpenOCD instance): - riscv32-unknown-elf-gdb -ex "target extended-remote localhost:3333" ./sw/c/build/demo/hello_world/demo - - To leave the environment: - exit - - EOF - ) - helpme(){ echo "$helpstr"; } - helpme - + fi + + echo "---------------------------------------------------" + echo "Welcome to the 'ibex-demo-system' nix environment!" + echo "---------------------------------------------------" + + helpme(){ cat <<'EOF' + + Build ibex software : + mkdir sw/c/build && pushd sw/c/build && cmake ../ && make && popd + Build ibex simulation verilator model : + fusesoc --cores-root=. run --target=sim --tool=verilator --setup --build lowrisc:ibex:demo_system + Run ibex simulator verilator model : + ./build/lowrisc_ibex_demo_system_0/sim-verilator/Vibex_demo_system -t \ + --meminit=ram,sw/c/build/demo/hello_world/demo + Build ibex-demo-system FPGA bitstream for Arty-A7 : + fusesoc --cores-root=. run --target=synth --setup --build lowrisc:ibex:demo_system + Program Arty-A7 FPGA with bitstream : + openFPGALoader -b arty_a7_35t build/lowrisc_ibex_demo_system_0/synth-vivado/lowrisc_ibex_demo_system_0.bit + Load ibex software to the programmed FPGA : + ./util/load_demo_system.sh run ./sw/c/build/demo/lcd_st7735/lcd_st7735 + Start an OpenOCD instance, connected to the Arty-A7 ibex + openocd -f util/arty-a7-openocd-cfg.tcl + Connect gdb to a running program on the FPGA (In a different terminal to the OpenOCD instance): + riscv32-unknown-elf-gdb -ex "target extended-remote localhost:3333" ./sw/c/build/demo/hello_world/demo + + EOF + + if [ -z "$DIRENV_IN_ENVRC" ]; then + cat <<'EOF' + To leave the environment: + exit + + EOF + fi + } + + helpme + + if [ -z "$DIRENV_IN_ENVRC" ]; then echo echo "Run 'helpme' in your shell to see this message again." echo - ''; - }; - }) - ) // { - - overlay = final: prev: { }; - overlays = { exampleOverlay = self.overlay; }; - - # Utilized by `nix run .#` - # apps.x86_64-linux.hello = { - # type = "app"; - # program = c-hello.packages.x86_64-linux.hello; - # }; - - # Utilized by `nix run . -- ` - # defaultApp.x86_64-linux = self.apps.x86_64-linux.hello; - }; + fi + ''; + }; + formatter = pkgs.alejandra; + }); + in + all_system_outputs; } diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..8841a7e1 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,516 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "anytree" +version = "2.8.0" +description = "Powerful and Lightweight Python Tree Data Structure.." +optional = false +python-versions = "*" +files = [ + {file = "anytree-2.8.0-py2.py3-none-any.whl", hash = "sha256:14c55ac77492b11532395049a03b773d14c7e30b22aa012e337b1e983de31521"}, + {file = "anytree-2.8.0.tar.gz", hash = "sha256:3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +dev = ["check-manifest"] +test = ["coverage"] + +[[package]] +name = "attrs" +version = "23.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "edalize" +version = "0.4.0" +description = "Library for interfacing EDA tools such as simulators, linters or synthesis tools, using a common interface" +optional = false +python-versions = ">=3.6, <4" +files = [] +develop = false + +[package.dependencies] +Jinja2 = ">=3" + +[package.extras] +reporting = ["pandas", "pyparsing"] + +[package.source] +type = "git" +url = "https://github.com/lowRISC/edalize.git" +reference = "v0.4.0" +resolved_reference = "2a70c4421db186b4ec91c770addc89ec83f3818b" + +[[package]] +name = "fusesoc" +version = "0.4" +description = "FuseSoC is a package manager and a set of build tools for HDL (Hardware Description Language) code." +optional = false +python-versions = ">=3.6, <4" +files = [] +develop = false + +[package.dependencies] +edalize = ">=0.2.3" +pyparsing = "*" +pyyaml = "*" +simplesat = ">=0.8.0" + +[package.source] +type = "git" +url = "https://github.com/lowRISC/fusesoc.git" +reference = "ot-0.4" +resolved_reference = "e20b92898f6d14574cca8d636a841845b0817585" + +[[package]] +name = "hjson" +version = "3.1.0" +description = "Hjson, a user interface for JSON." +optional = false +python-versions = "*" +files = [ + {file = "hjson-3.1.0-py3-none-any.whl", hash = "sha256:65713cdcf13214fb554eb8b4ef803419733f4f5e551047c9b711098ab7186b89"}, + {file = "hjson-3.1.0.tar.gz", hash = "sha256:55af475a27cf83a7969c808399d7bccdec8fb836a07ddbd574587593b9cdcf75"}, +] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonschema" +version = "4.20.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, + {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rpds-py = ">=0.7.1" + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "mako" +version = "1.1.6" +description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "Mako-1.1.6-py2.py3-none-any.whl", hash = "sha256:afaf8e515d075b22fad7d7b8b30e4a1c90624ff2f3733a06ec125f5a5f043a57"}, + {file = "Mako-1.1.6.tar.gz", hash = "sha256:4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2"}, +] + +[package.dependencies] +MarkupSafe = ">=0.9.2" + +[package.extras] +babel = ["Babel"] +lingua = ["lingua"] + +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "okonomiyaki" +version = "1.4.0" +description = "Self-contained library to deal with metadata in Enthought-specific egg and runtime archives" +optional = false +python-versions = ">=2.7" +files = [ + {file = "okonomiyaki-1.4.0-py2.py3-none-any.whl", hash = "sha256:174af185f866fc42fdb58b2d6c7107d870f795e3f404b9c6278f8e62f87f0f83"}, + {file = "okonomiyaki-1.4.0.tar.gz", hash = "sha256:508008004a12e09f565d8b4e4145bd7500787fdd6810d898fdc8e5c61a3f41e5"}, +] + +[package.dependencies] +attrs = ">=16.1.0" +distro = {version = "*", markers = "sys_platform == \"linux\" or sys_platform == \"linux2\""} +jsonschema = ">=2.5.1" +six = ">=1.9.0" +zipfile2 = ">=0.0.12" + +[package.extras] +test = ["distro", "haas", "hypothesis", "mock", "packaging (>=20.0)", "testfixtures"] + +[[package]] +name = "packaging" +version = "23.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] + +[[package]] +name = "pyparsing" +version = "3.1.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] + +[[package]] +name = "referencing" +version = "0.32.0" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.32.0-py3-none-any.whl", hash = "sha256:bdcd3efb936f82ff86f993093f6da7435c7de69a3b3a5a06678a6050184bee99"}, + {file = "referencing-0.32.0.tar.gz", hash = "sha256:689e64fe121843dcfd57b71933318ef1f91188ffb45367332700a86ac8fd6161"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "rpds-py" +version = "0.13.2" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.13.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1ceebd0ae4f3e9b2b6b553b51971921853ae4eebf3f54086be0565d59291e53d"}, + {file = "rpds_py-0.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:46e1ed994a0920f350a4547a38471217eb86f57377e9314fbaaa329b71b7dfe3"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee353bb51f648924926ed05e0122b6a0b1ae709396a80eb583449d5d477fcdf7"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:530190eb0cd778363bbb7596612ded0bb9fef662daa98e9d92a0419ab27ae914"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d311e44dd16d2434d5506d57ef4d7036544fc3c25c14b6992ef41f541b10fb"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e72f750048b32d39e87fc85c225c50b2a6715034848dbb196bf3348aa761fa1"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db09b98c7540df69d4b47218da3fbd7cb466db0fb932e971c321f1c76f155266"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2ac26f50736324beb0282c819668328d53fc38543fa61eeea2c32ea8ea6eab8d"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:12ecf89bd54734c3c2c79898ae2021dca42750c7bcfb67f8fb3315453738ac8f"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a44c8440183b43167fd1a0819e8356692bf5db1ad14ce140dbd40a1485f2dea"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcef4f2d3dc603150421de85c916da19471f24d838c3c62a4f04c1eb511642c1"}, + {file = "rpds_py-0.13.2-cp310-none-win32.whl", hash = "sha256:ee6faebb265e28920a6f23a7d4c362414b3f4bb30607141d718b991669e49ddc"}, + {file = "rpds_py-0.13.2-cp310-none-win_amd64.whl", hash = "sha256:ac96d67b37f28e4b6ecf507c3405f52a40658c0a806dffde624a8fcb0314d5fd"}, + {file = "rpds_py-0.13.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:b5f6328e8e2ae8238fc767703ab7b95785521c42bb2b8790984e3477d7fa71ad"}, + {file = "rpds_py-0.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:729408136ef8d45a28ee9a7411917c9e3459cf266c7e23c2f7d4bb8ef9e0da42"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65cfed9c807c27dee76407e8bb29e6f4e391e436774bcc769a037ff25ad8646e"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aefbdc934115d2f9278f153952003ac52cd2650e7313750390b334518c589568"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48db29bd47814671afdd76c7652aefacc25cf96aad6daefa82d738ee87461e2"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c55d7f2d817183d43220738270efd3ce4e7a7b7cbdaefa6d551ed3d6ed89190"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aadae3042f8e6db3376d9e91f194c606c9a45273c170621d46128f35aef7cd0"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5feae2f9aa7270e2c071f488fab256d768e88e01b958f123a690f1cc3061a09c"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51967a67ea0d7b9b5cd86036878e2d82c0b6183616961c26d825b8c994d4f2c8"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d0c10d803549427f427085ed7aebc39832f6e818a011dcd8785e9c6a1ba9b3e"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:603d5868f7419081d616dab7ac3cfa285296735e7350f7b1e4f548f6f953ee7d"}, + {file = "rpds_py-0.13.2-cp311-none-win32.whl", hash = "sha256:b8996ffb60c69f677245f5abdbcc623e9442bcc91ed81b6cd6187129ad1fa3e7"}, + {file = "rpds_py-0.13.2-cp311-none-win_amd64.whl", hash = "sha256:5379e49d7e80dca9811b36894493d1c1ecb4c57de05c36f5d0dd09982af20211"}, + {file = "rpds_py-0.13.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8a776a29b77fe0cc28fedfd87277b0d0f7aa930174b7e504d764e0b43a05f381"}, + {file = "rpds_py-0.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2a1472956c5bcc49fb0252b965239bffe801acc9394f8b7c1014ae9258e4572b"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f252dfb4852a527987a9156cbcae3022a30f86c9d26f4f17b8c967d7580d65d2"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0d320e70b6b2300ff6029e234e79fe44e9dbbfc7b98597ba28e054bd6606a57"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ade2ccb937060c299ab0dfb2dea3d2ddf7e098ed63ee3d651ebfc2c8d1e8632a"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9d121be0217787a7d59a5c6195b0842d3f701007333426e5154bf72346aa658"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fa6bd071ec6d90f6e7baa66ae25820d57a8ab1b0a3c6d3edf1834d4b26fafa2"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c918621ee0a3d1fe61c313f2489464f2ae3d13633e60f520a8002a5e910982ee"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:25b28b3d33ec0a78e944aaaed7e5e2a94ac811bcd68b557ca48a0c30f87497d2"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:31e220a040b89a01505128c2f8a59ee74732f666439a03e65ccbf3824cdddae7"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:15253fff410873ebf3cfba1cc686a37711efcd9b8cb30ea21bb14a973e393f60"}, + {file = "rpds_py-0.13.2-cp312-none-win32.whl", hash = "sha256:b981a370f8f41c4024c170b42fbe9e691ae2dbc19d1d99151a69e2c84a0d194d"}, + {file = "rpds_py-0.13.2-cp312-none-win_amd64.whl", hash = "sha256:4c4e314d36d4f31236a545696a480aa04ea170a0b021e9a59ab1ed94d4c3ef27"}, + {file = "rpds_py-0.13.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:80e5acb81cb49fd9f2d5c08f8b74ffff14ee73b10ca88297ab4619e946bcb1e1"}, + {file = "rpds_py-0.13.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:efe093acc43e869348f6f2224df7f452eab63a2c60a6c6cd6b50fd35c4e075ba"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c2a61c0e4811012b0ba9f6cdcb4437865df5d29eab5d6018ba13cee1c3064a0"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:751758d9dd04d548ec679224cc00e3591f5ebf1ff159ed0d4aba6a0746352452"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ba8858933f0c1a979781272a5f65646fca8c18c93c99c6ddb5513ad96fa54b1"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfdfbe6a36bc3059fff845d64c42f2644cf875c65f5005db54f90cdfdf1df815"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa0379c1935c44053c98826bc99ac95f3a5355675a297ac9ce0dfad0ce2d50ca"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5593855b5b2b73dd8413c3fdfa5d95b99d657658f947ba2c4318591e745d083"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2a7bef6977043673750a88da064fd513f89505111014b4e00fbdd13329cd4e9a"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:3ab96754d23372009638a402a1ed12a27711598dd49d8316a22597141962fe66"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e06cfea0ece444571d24c18ed465bc93afb8c8d8d74422eb7026662f3d3f779b"}, + {file = "rpds_py-0.13.2-cp38-none-win32.whl", hash = "sha256:5493569f861fb7b05af6d048d00d773c6162415ae521b7010197c98810a14cab"}, + {file = "rpds_py-0.13.2-cp38-none-win_amd64.whl", hash = "sha256:b07501b720cf060c5856f7b5626e75b8e353b5f98b9b354a21eb4bfa47e421b1"}, + {file = "rpds_py-0.13.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:881df98f0a8404d32b6de0fd33e91c1b90ed1516a80d4d6dc69d414b8850474c"}, + {file = "rpds_py-0.13.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d79c159adea0f1f4617f54aa156568ac69968f9ef4d1e5fefffc0a180830308e"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38d4f822ee2f338febcc85aaa2547eb5ba31ba6ff68d10b8ec988929d23bb6b4"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5d75d6d220d55cdced2f32cc22f599475dbe881229aeddba6c79c2e9df35a2b3"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d97e9ae94fb96df1ee3cb09ca376c34e8a122f36927230f4c8a97f469994bff"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67a429520e97621a763cf9b3ba27574779c4e96e49a27ff8a1aa99ee70beb28a"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:188435794405c7f0573311747c85a96b63c954a5f2111b1df8018979eca0f2f0"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:38f9bf2ad754b4a45b8210a6c732fe876b8a14e14d5992a8c4b7c1ef78740f53"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a6ba2cb7d676e9415b9e9ac7e2aae401dc1b1e666943d1f7bc66223d3d73467b"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:eaffbd8814bb1b5dc3ea156a4c5928081ba50419f9175f4fc95269e040eff8f0"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4c1058cdae6237d97af272b326e5f78ee7ee3bbffa6b24b09db4d828810468"}, + {file = "rpds_py-0.13.2-cp39-none-win32.whl", hash = "sha256:b5267feb19070bef34b8dea27e2b504ebd9d31748e3ecacb3a4101da6fcb255c"}, + {file = "rpds_py-0.13.2-cp39-none-win_amd64.whl", hash = "sha256:ddf23960cb42b69bce13045d5bc66f18c7d53774c66c13f24cf1b9c144ba3141"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:97163a1ab265a1073a6372eca9f4eeb9f8c6327457a0b22ddfc4a17dcd613e74"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:25ea41635d22b2eb6326f58e608550e55d01df51b8a580ea7e75396bafbb28e9"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d59d4d451ba77f08cb4cd9268dec07be5bc65f73666302dbb5061989b17198"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7c564c58cf8f248fe859a4f0fe501b050663f3d7fbc342172f259124fb59933"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61dbc1e01dc0c5875da2f7ae36d6e918dc1b8d2ce04e871793976594aad8a57a"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdb82eb60d31b0c033a8e8ee9f3fc7dfbaa042211131c29da29aea8531b4f18f"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d204957169f0b3511fb95395a9da7d4490fb361763a9f8b32b345a7fe119cb45"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c45008ca79bad237cbc03c72bc5205e8c6f66403773929b1b50f7d84ef9e4d07"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:79bf58c08f0756adba691d480b5a20e4ad23f33e1ae121584cf3a21717c36dfa"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e86593bf8637659e6a6ed58854b6c87ec4e9e45ee8a4adfd936831cef55c2d21"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:d329896c40d9e1e5c7715c98529e4a188a1f2df51212fd65102b32465612b5dc"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a5375c5fff13f209527cd886dc75394f040c7d1ecad0a2cb0627f13ebe78a12"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:06d218e4464d31301e943b65b2c6919318ea6f69703a351961e1baaf60347276"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1f41d32a2ddc5a94df4b829b395916a4b7f103350fa76ba6de625fcb9e773ac"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6bc568b05e02cd612be53900c88aaa55012e744930ba2eeb56279db4c6676eb3"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d94d78418203904730585efa71002286ac4c8ac0689d0eb61e3c465f9e608ff"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bed0252c85e21cf73d2d033643c945b460d6a02fc4a7d644e3b2d6f5f2956c64"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:244e173bb6d8f3b2f0c4d7370a1aa341f35da3e57ffd1798e5b2917b91731fd3"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f55cd9cf1564b7b03f238e4c017ca4794c05b01a783e9291065cb2858d86ce4"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f03a1b3a4c03e3e0161642ac5367f08479ab29972ea0ffcd4fa18f729cd2be0a"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:f5f4424cb87a20b016bfdc157ff48757b89d2cc426256961643d443c6c277007"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c82bbf7e03748417c3a88c1b0b291288ce3e4887a795a3addaa7a1cfd9e7153e"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c0095b8aa3e432e32d372e9a7737e65b58d5ed23b9620fea7cb81f17672f1fa1"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4c2d26aa03d877c9730bf005621c92da263523a1e99247590abbbe252ccb7824"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96f2975fb14f39c5fe75203f33dd3010fe37d1c4e33177feef1107b5ced750e3"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4dcc5ee1d0275cb78d443fdebd0241e58772a354a6d518b1d7af1580bbd2c4e8"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61d42d2b08430854485135504f672c14d4fc644dd243a9c17e7c4e0faf5ed07e"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d3a61e928feddc458a55110f42f626a2a20bea942ccedb6fb4cee70b4830ed41"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7de12b69d95072394998c622cfd7e8cea8f560db5fca6a62a148f902a1029f8b"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:87a90f5545fd61f6964e65eebde4dc3fa8660bb7d87adb01d4cf17e0a2b484ad"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:9c95a1a290f9acf7a8f2ebbdd183e99215d491beea52d61aa2a7a7d2c618ddc6"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:35f53c76a712e323c779ca39b9a81b13f219a8e3bc15f106ed1e1462d56fcfe9"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:96fb0899bb2ab353f42e5374c8f0789f54e0a94ef2f02b9ac7149c56622eaf31"}, + {file = "rpds_py-0.13.2.tar.gz", hash = "sha256:f8eae66a1304de7368932b42d801c67969fd090ddb1a7a24f27b435ed4bed68f"}, +] + +[[package]] +name = "simplesat" +version = "0.8.2" +description = "Simple SAT solvers for use in Enstaller" +optional = false +python-versions = "*" +files = [ + {file = "simplesat-0.8.2-py2.py3-none-any.whl", hash = "sha256:76dd637db54c998badb988baafbc2bd4cc6689364580588487bc2634a6ab55fd"}, + {file = "simplesat-0.8.2.tar.gz", hash = "sha256:1943f32735b03b048e20953a0145b2b61d2eb7a9dcc471a74f214afe9fa8d858"}, +] + +[package.dependencies] +attrs = ">=17.4.0" +okonomiyaki = ">=0.16.6" +six = ">=1.10.0" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "wheel" +version = "0.41.2" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "wheel-0.41.2-py3-none-any.whl", hash = "sha256:75909db2664838d015e3d9139004ee16711748a52c8f336b52882266540215d8"}, + {file = "wheel-0.41.2.tar.gz", hash = "sha256:0c5ac5ff2afb79ac23ab82bab027a0be7b5dbcf2e54dc50efe4bf507de1f7985"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + +[[package]] +name = "zipfile2" +version = "0.0.12" +description = "An improved ZipFile class." +optional = false +python-versions = "*" +files = [ + {file = "zipfile2-0.0.12-py2.py3-none-any.whl", hash = "sha256:b9adf577d825461480e485027116c035f666b72ac3911af71aa93da6e0579eb8"}, + {file = "zipfile2-0.0.12.tar.gz", hash = "sha256:7376f7c968717ac895ef862da913e790cf1b518caf56c4822c04684c46a8a608"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "dc0e1c493a5b8368049447b5b8b9af8f82bc4eead1a6ea0fd5bfb1c6319175f4" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..98738246 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[tool.poetry] +name = "opentitan" +version = "0.1.0" +description = "Open-source hardware root-of-trust" +authors = [] +license = "Apache 2.0" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.10" +packaging = "23.1" +anytree = "2.8.0" +hjson = "3.1.0" +mako = "1.1.6" +pyyaml = "6.0" +wheel = "0.41.2" +edalize = { git = "https://github.com/lowRISC/edalize.git", tag = "v0.4.0"} +fusesoc = { git = "https://github.com/lowRISC/fusesoc.git", tag = "ot-0.4" } + +# Update this when poetry2nix adds hash of later version +rpds-py = "0.13.2" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"