If some record can change it's a good idea to use a sum type, e.g. you start out with your new program like this:
data Wibble = WibbleV0 { port :: Int, name :: String }A year later you have a new feature that requires more info. Now you
| { | |
| "acKind": "ImageManifest", | |
| "acVersion": "0.7.0", | |
| "name": "my-app", | |
| "labels": [ | |
| {"name": "os", "value": "linux"}, | |
| {"name": "arch", "value": "amd64"} | |
| ], | |
| "app": { | |
| "exec": [ |
| defined("flask", "test-module"). | |
| scope("module", "NONE"). | |
| scope("render", "test-module"). | |
| scope("render", "render-sub"). | |
| get_d(Name, CurrentScope) :- defined(Name, CurrentScope). | |
| get_d(Name, PS) :- get_d(Name, PS), scope(CurrentScope, PS). | |
| get_d("flask", A)? |
| /nix/store/01fcvccrfxallx8nvl37hm2wn4s8m5d2-binutils-2.23.1.drv | |
| /nix/store/01fcw5v5kqil2bqz0n6rqrj8ajdjg26h-ncurses-5.9.drv | |
| /nix/store/027jx787j79skn98avxmfg4n17i4m0d4-distutils.cfg.drv | |
| /nix/store/02rwxn991y0r5qjx3is7r5aj7i24lrb8-bash43-015.drv | |
| /nix/store/06n2pfr1h9b9xs3gcyjbcccv0k94329m-llvm-3.5.0.drv | |
| /nix/store/094mng1j45bxnr4hz8awinhq4q0qxhaf-bash43-022.drv | |
| /nix/store/0ipg6zpc6p7s2cqgmv8c1hfzw2m0gfm5-bash43-004.drv | |
| /nix/store/0lc1bacgrp6k5yn3py9w7zfilf1s48jp-gpm-1.20.7.drv | |
| /nix/store/0p1zbmsc0gjdx5d9389zh9ypknrnbrj1-bash43-032.drv | |
| /nix/store/0vwbsqixj92pppgg5jai2lqikk3wjk5w-patchelf-0.8.drv |
| include "globals.mzn"; | |
| set of 1..5: a = 1..5; % Nicola, Ed, David, Nick, Nigel | |
| set of 1..5: b = 1..5; % Guinea, Squirrel, Pitbull, Badger, Fish | |
| set of 1..5: c = 1..5; % Moccachino, FlatWhite, Chai, Double Espresso, Decaf | |
| set of 1..5: d = 1..5; % Car, Bike, Train, Plane, Walk | |
| set of 1..5: e = 1..5; % Tartan, Paisly, Gingham, Striped, Polka | |
| array[a] of var a: A; | |
| array[b] of var b: B; |
| { stdenv, fetchurl, buildPythonPackage, pythonPackages, zeromq3, pyqt4 ? null | |
| , notebookSupport ? true # ipython notebook | |
| , qtconsoleSupport ? true # ipython qtconsole | |
| , pylabSupport ? true # ipython --pylab (backend: agg - no gui, just file) | |
| , pylabQtSupport ? true # ipython --pylab=qt (backend: Qt4Agg - plot to window) | |
| }: | |
| # ipython qtconsole works with both pyside and pyqt4. But ipython --pylab=qt | |
| # only works with pyqt4 (at least this is true for ipython 0.13.1). So just use | |
| # pyqt4 for both. |
| def get_records(): | |
| df = pandas.read_json('1.json') | |
| df = pandas.io.json.json_normalize(df['accidents']) | |
| for _, row in df.iterrows(): | |
| for c in row['casualties']: | |
| for i in row['involved']: | |
| row['caualty_severity'] = c['severity'] | |
| row['caualty_gender'] = c['gender'] | |
| row['caualty_class'] = c['class'] | |
| row['caualty_vehicle'] = c.get('vehicle', 'unknonwn') |
| with (import <nixpkgs> {}).pkgs; | |
| let | |
| importDeps = stdenv.mkDerivation { | |
| name = "importDeps"; | |
| src = fetchurl { | |
| url = "file:///home/tom/testbed/nix-import-stuff/ext.zip"; | |
| sha256 = "0ivhsn2pp1sgzsywnd2x673ff5q62v9715kkw5vyf63rfh7fw9h4"; | |
| }; | |
| phases = "unpackPhase installPhase"; |
| module Main where | |
| import Python | |
| import Test.QuickCheck | |
| import Test.QuickCheck.Monadic | |
| square :: Int -> IO Int | |
| square = defVV "export = lambda x: x * x" |
| with (import <nixpkgs> {}).pkgs; | |
| let monad-control = pkgs.haskellngPackages.callPackage ./monad-control-0.3.nix {}; | |
| pkg = haskellngPackages.callPackage | |
| ({ mkDerivation, base, monad-control, stdenv, yesod }: | |
| mkDerivation { | |
| pname = "yesod-nix"; | |
| version = "0.1.0.0"; | |
| src = ./.; | |
| isLibrary = false; | |
| isExecutable = true; |