├── src ├── base.css ├── .DS_Store ├── favicon.ico ├── images │ ├── .DS_Store │ ├── icons.sketch │ ├── expand-grey.svg │ ├── play.svg │ ├── expand.svg │ ├── play-grey.svg │ ├── examples.svg │ ├── options.svg │ ├── options-grey.svg │ ├── logo-dark.svg │ └── logo.svg ├── shared │ ├── styles │ │ ├── VegaLiteChart.css │ │ └── VegaLiteChart.scss │ └── components │ │ └── VegaLiteChart.tsx ├── about │ ├── styles │ │ ├── About.css │ │ └── About.scss │ └── components │ │ └── About.tsx ├── index.tsx ├── App.css ├── App.scss ├── index.html ├── index.css ├── index.scss ├── draco-editor │ ├── styles │ │ ├── Status.css │ │ ├── Status.scss │ │ ├── Resizer.css │ │ ├── Resizer.scss │ │ ├── Editor.css │ │ ├── Editor.scss │ │ ├── Recommendations.scss │ │ └── Recommendations.css │ ├── components │ │ ├── Status.tsx │ │ ├── Recommendations.tsx │ │ └── Editor.tsx │ ├── examples.ts │ └── asp.ts ├── base.scss ├── Navbar.tsx ├── App.tsx ├── Navbar.css ├── Navbar.scss └── data │ ├── barley.json │ └── cars.json ├── .gitignore ├── typings ├── basename.d.ts ├── images.d.ts └── react-animate-on-change.d.ts ├── Readme.md ├── webpack.prod.js ├── webpack.dev.js ├── tsconfig.json ├── webpack.common.js └── package.json /src/base.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .awcache 2 | dist 3 | node_modules -------------------------------------------------------------------------------- /typings/basename.d.ts: -------------------------------------------------------------------------------- 1 | declare const BASENAME: string; 2 | -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uwdata/draco-editor/master/src/.DS_Store -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uwdata/draco-editor/master/src/favicon.ico -------------------------------------------------------------------------------- /src/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uwdata/draco-editor/master/src/images/.DS_Store -------------------------------------------------------------------------------- /src/images/icons.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uwdata/draco-editor/master/src/images/icons.sketch -------------------------------------------------------------------------------- /typings/images.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.svg" { 2 | const content: any; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/styles/VegaLiteChart.css: -------------------------------------------------------------------------------- 1 | .VegaLiteChart .vega-actions a { 2 | pointer-events: all; 3 | font-size: .9em; 4 | color: #C3C3C3; } 5 | -------------------------------------------------------------------------------- /typings/react-animate-on-change.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-animate-on-change' { 2 | const AnimateOnChange: any; 3 | export default AnimateOnChange; 4 | } 5 | -------------------------------------------------------------------------------- /src/shared/styles/VegaLiteChart.scss: -------------------------------------------------------------------------------- 1 | @import 'base.scss'; 2 | 3 | .VegaLiteChart { 4 | 5 | .vega-actions a { 6 | pointer-events: all; 7 | font-size: .9em; 8 | color: $light-grey; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/about/styles/About.css: -------------------------------------------------------------------------------- 1 | .About { 2 | width: 600px; 3 | margin: 32px auto 32px auto; } 4 | .About .logo { 5 | display: block; 6 | margin: auto; 7 | padding: 16px 0 16px 0; } 8 | .About p { 9 | text-align: center; } 10 | -------------------------------------------------------------------------------- /src/about/styles/About.scss: -------------------------------------------------------------------------------- 1 | .About { 2 | width: 600px; 3 | margin: 32px auto 32px auto; 4 | 5 | .logo { 6 | display: block; 7 | margin: auto; 8 | padding: 16px 0 16px 0; 9 | } 10 | 11 | p { 12 | text-align: center; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import * as ReactDOM from 'react-dom'; 3 | 4 | import App from './App'; 5 | import './index.css'; 6 | 7 | declare var Module: any; 8 | 9 | ReactDOM.render( 10 | , 11 | document.getElementById('root') as HTMLElement 12 | ); 13 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | display: flex; 3 | flex-direction: column; 4 | height: 100%; 5 | width: 100%; 6 | margin: 0; 7 | padding: 0; } 8 | .App .content { 9 | height: calc(100vh - 48px); 10 | width: 100%; 11 | position: relative; 12 | padding: 0; 13 | margin: 0; } 14 | -------------------------------------------------------------------------------- /src/App.scss: -------------------------------------------------------------------------------- 1 | .App { 2 | display: flex; 3 | flex-direction: column; 4 | height: 100%; 5 | width: 100%; 6 | margin: 0; 7 | padding: 0; 8 | 9 | .content { 10 | height: calc(100vh - 48px); 11 | width: 100%; 12 | position: relative; 13 | padding: 0; 14 | margin: 0; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # Draco Editor 2 | 3 | Run the editor in your browser at https://uwdata.github.io/draco-editor/. Learn more about Draco at https://uwdata.github.io/draco/. 4 | 5 | Draco Editor uses https://github.com/uwdata/draco-vis 6 | 7 | ## Running locally 8 | 9 | Install dependencies with `yarn`. Run the editor with `yarn start`. 10 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Draco Editor 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Lato:300,400,700"); 2 | @import url("https://fonts.googleapis.com/css?family=Roboto+Mono"); 3 | html, body { 4 | margin: 0; 5 | padding: 0; 6 | font-family: 'Lato', sans-serif; } 7 | 8 | #root { 9 | height: 100vh; 10 | width: 100vw; 11 | position: relative; 12 | padding: 0; 13 | margin: 0; } 14 | 15 | button { 16 | border: none; 17 | font-size: inherit; 18 | font-family: inherit; 19 | background: none; } 20 | 21 | button:focus { 22 | outline: 0; } 23 | -------------------------------------------------------------------------------- /webpack.prod.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const merge = require('webpack-merge'); 3 | const common = require('./webpack.common.js'); 4 | const webpack = require('webpack'); 5 | 6 | module.exports = merge(common, { 7 | mode: 'production', 8 | output: { 9 | filename: "bundle.js", 10 | path: path.resolve(__dirname, "dist"), 11 | publicPath: '/draco-editor/' 12 | }, 13 | 14 | plugins: [ 15 | // base route 16 | new webpack.DefinePlugin({ 17 | BASENAME: JSON.stringify("/") 18 | }), 19 | ], 20 | }); 21 | -------------------------------------------------------------------------------- /src/index.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Lato:300,400,700'); 2 | @import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); 3 | 4 | html, body { 5 | margin: 0; 6 | padding: 0; 7 | font-family: 'Lato', sans-serif; 8 | } 9 | 10 | #root { 11 | height: 100vh; 12 | width: 100vw; 13 | position: relative; 14 | padding: 0; 15 | margin: 0; 16 | } 17 | 18 | button { 19 | border: none; 20 | font-size: inherit; 21 | font-family: inherit; 22 | background: none; 23 | } 24 | 25 | button:focus { 26 | outline:0; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Status.css: -------------------------------------------------------------------------------- 1 | .Status { 2 | font-size: 12px; 3 | border-top: 1px solid #ddd; 4 | height: 26px; 5 | flex-shrink: 0; 6 | line-height: 26px; 7 | padding-left: 12px; 8 | text-overflow: ellipsis; 9 | overflow: hidden; } 10 | .Status.active { 11 | animation-name: pulse-status-bar; 12 | animation-duration: 1s; 13 | animation-iteration-count: infinite; } 14 | 15 | @keyframes pulse-status-bar { 16 | 0% { 17 | background-color: white; } 18 | 50% { 19 | background-color: #557fe0; } 20 | 100% { 21 | background-color: white; } } 22 | -------------------------------------------------------------------------------- /webpack.dev.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const merge = require('webpack-merge'); 3 | const common = require('./webpack.common.js'); 4 | const webpack = require('webpack'); 5 | 6 | module.exports = merge(common, { 7 | mode: 'development', 8 | output: { 9 | filename: "bundle.js", 10 | path: path.resolve(__dirname, "dist"), 11 | publicPath: '/' 12 | }, 13 | devtool: 'source-map', 14 | devServer: { 15 | historyApiFallback: true, 16 | }, 17 | 18 | plugins: [ 19 | // base route 20 | new webpack.DefinePlugin({ 21 | BASENAME: JSON.stringify("/") 22 | }), 23 | ], 24 | }); 25 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Status.scss: -------------------------------------------------------------------------------- 1 | .Status { 2 | font-size: 12px; 3 | border-top: 1px solid #ddd; 4 | height: 26px; 5 | flex-shrink: 0; 6 | line-height: 26px; 7 | padding-left: 12px; 8 | text-overflow: ellipsis; 9 | overflow: hidden; 10 | 11 | &.active { 12 | animation-name: pulse-status-bar; 13 | animation-duration: 1s; 14 | animation-iteration-count: infinite; 15 | } 16 | } 17 | 18 | @keyframes pulse-status-bar { 19 | 0% { 20 | background-color: white; 21 | } 22 | 50% { 23 | background-color: #557fe0; 24 | } 25 | 100% { 26 | background-color: white; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "module": "es2015", 5 | "target": "es6", 6 | "moduleResolution": "node", 7 | "sourceMap": true, 8 | "noImplicitAny": true, 9 | "declaration": false, 10 | "strictNullChecks": false, 11 | "jsx": "react", 12 | "allowSyntheticDefaultImports": true, 13 | "esModuleInterop": true 14 | }, 15 | "files": [ 16 | "src/index.tsx" 17 | ], 18 | "include": [ 19 | "typings/*.d.ts" 20 | ], 21 | "awesomeTypescriptLoaderOptions": { 22 | "useCache": true, 23 | "forceIsolatedModules": true 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/base.scss: -------------------------------------------------------------------------------- 1 | $dark-blue: #1A1C40; 2 | $med-blue: #17266b; 3 | $light-blue: #6d92e0; 4 | $light-grey: #C3C3C3; 5 | $med-grey: rgb(165, 165, 165); 6 | $highlight-grey: #f7f7f7; 7 | 8 | $standard-ease: cubic-bezier(0.4, 0.0, 0.2, 1); 9 | $decelerate-ease: cubic-bezier(0.0, 0.0, 0.2, 1); 10 | $accelerate-ease: cubic-bezier(0.4, 0.0, 1, 1); 11 | 12 | $small-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); 13 | $small-hover-box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); 14 | $medium-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); 15 | $large-box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); 16 | -------------------------------------------------------------------------------- /src/about/components/About.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import '../styles/About.css'; 4 | 5 | import logo from '../../images/logo-dark.svg'; 6 | 7 | export default class About extends React.Component { 8 | render() { 9 | return ( 10 |
11 | 12 |

13 | Draco is a an extensible knowledge base of visualization design that you can use to find effective visualization designs. 14 |

15 |

16 | Learn more about Draco at on GitHub. 17 |

18 |
19 | ) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/images/expand-grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | expand-grey 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/images/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | play 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/draco-editor/components/Status.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import classNames from "classnames"; 3 | 4 | import "../styles/Status.css"; 5 | 6 | interface Props { 7 | status: string; 8 | } 9 | 10 | export default class Status extends React.PureComponent { 11 | public constructor(props: Props) { 12 | super(props); 13 | 14 | // add error handler to the window 15 | window.onerror = (event) => { 16 | this.setState({ 17 | status: 'Exception thrown, see JavaScript console' 18 | }) 19 | } 20 | } 21 | public render() { 22 | const classes = classNames({ 23 | "Status": true, 24 | "active": !!this.props.status 25 | }); 26 | 27 | return
{this.props.status}
; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Resizer.css: -------------------------------------------------------------------------------- 1 | .Resizer { 2 | background: #000; 3 | opacity: .2; 4 | z-index: 1; 5 | -moz-box-sizing: border-box; 6 | -webkit-box-sizing: border-box; 7 | box-sizing: border-box; 8 | -moz-background-clip: padding; 9 | -webkit-background-clip: padding; 10 | background-clip: padding-box; } 11 | 12 | .Resizer.horizontal { 13 | height: 11px; 14 | margin: -5px 0; 15 | border-top: 5px solid rgba(255, 255, 255, 0); 16 | border-bottom: 5px solid rgba(255, 255, 255, 0); 17 | cursor: row-resize; 18 | width: 100%; } 19 | 20 | .Resizer.vertical { 21 | width: 11px; 22 | margin: 0 -5px; 23 | border-left: 5px solid rgba(255, 255, 255, 0); 24 | border-right: 5px solid rgba(255, 255, 255, 0); 25 | cursor: col-resize; } 26 | 27 | .Resizer.disabled { 28 | cursor: default; } 29 | -------------------------------------------------------------------------------- /src/images/expand.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | expand 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/images/play-grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | play-grey 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Resizer.scss: -------------------------------------------------------------------------------- 1 | @import 'base.scss'; 2 | 3 | .Resizer { 4 | background: #000; 5 | opacity: .2; 6 | z-index: 1; 7 | -moz-box-sizing: border-box; 8 | -webkit-box-sizing: border-box; 9 | box-sizing: border-box; 10 | -moz-background-clip: padding; 11 | -webkit-background-clip: padding; 12 | background-clip: padding-box; 13 | } 14 | 15 | .Resizer:hover { 16 | } 17 | 18 | .Resizer.horizontal { 19 | height: 11px; 20 | margin: -5px 0; 21 | border-top: 5px solid rgba(255, 255, 255, 0); 22 | border-bottom: 5px solid rgba(255, 255, 255, 0); 23 | cursor: row-resize; 24 | width: 100%; 25 | } 26 | 27 | .Resizer.horizontal:hover { 28 | 29 | } 30 | 31 | .Resizer.vertical { 32 | width: 11px; 33 | margin: 0 -5px; 34 | border-left: 5px solid rgba(255, 255, 255, 0); 35 | border-right: 5px solid rgba(255, 255, 255, 0); 36 | cursor: col-resize; 37 | } 38 | 39 | .Resizer.vertical:hover { 40 | 41 | } 42 | .Resizer.disabled { 43 | cursor: default; 44 | } 45 | -------------------------------------------------------------------------------- /src/images/examples.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | examples 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/images/options.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | options2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/images/options-grey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | options-grey 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/draco-editor/examples.ts: -------------------------------------------------------------------------------- 1 | export const SCATTER: string = `% ====== Data definitions ====== 2 | data("cars.json"). 3 | num_rows(142). 4 | 5 | fieldtype(horsepower,number). 6 | cardinality(horsepower,94). 7 | 8 | fieldtype(acceleration,number). 9 | cardinality(acceleration,96). 10 | 11 | % ====== Query constraints ====== 12 | encoding(e0). 13 | :- not field(e0,acceleration). 14 | 15 | encoding(e1). 16 | :- not field(e1,horsepower). 17 | `; 18 | 19 | export const HISTOGRAM: string = `% ====== Data definitions ====== 20 | data("cars.json"). 21 | num_rows(142). 22 | 23 | fieldtype(horsepower,number). 24 | cardinality(horsepower,94). 25 | 26 | % ====== Query constraints ====== 27 | encoding(e0). 28 | :- not field(e0,horsepower). 29 | :- not bin(e0,_). 30 | `; 31 | 32 | export const STRIP: string = `% ====== Data definitions ====== 33 | data("cars.json"). 34 | num_rows(142). 35 | 36 | fieldtype(horsepower,number). 37 | cardinality(horsepower,94). 38 | 39 | % ====== Query constraints ====== 40 | encoding(e0). 41 | :- not type(e0,quantitative). 42 | :- not field(e0,horsepower). 43 | `; 44 | 45 | export interface Example { 46 | name: string, 47 | program: string 48 | } 49 | 50 | const EXAMPLES: Array = [ 51 | { name: 'scatter', program: SCATTER }, 52 | { name: 'histogram', program: HISTOGRAM}, 53 | { name: 'strip', program: STRIP} 54 | ]; 55 | export default EXAMPLES; 56 | -------------------------------------------------------------------------------- /src/Navbar.tsx: -------------------------------------------------------------------------------- 1 | import classNames from 'classnames'; 2 | import * as React from 'react'; 3 | import { NavLink } from "react-router-dom"; 4 | 5 | import './Navbar.css'; 6 | 7 | 8 | const LEFT_TABS = ['editor']; 9 | const RIGHT_TABS = ['about']; 10 | const HOME_ROUTE = ''; 11 | 12 | 13 | class Navbar extends React.Component { 14 | public render() { 15 | const leftTabs = LEFT_TABS.map((name) => { 16 | return ( 17 | 21 | {name} 22 | 23 | ); 24 | }); 25 | 26 | const rightTabs = RIGHT_TABS.map((name) => { 27 | return ( 28 | 32 | {name} 33 | 34 | ); 35 | }); 36 | 37 | const navbarClasses = classNames({ 38 | 'Navbar': true, 39 | 'bordered': this.props.location.pathname === '/editor' 40 | }); 41 | 42 | return ( 43 |
44 |
45 |
46 | {leftTabs} 47 |
48 |
49 | Draco 50 |
51 |
52 | {rightTabs} 53 |
54 |
55 |
56 | ); 57 | } 58 | } 59 | 60 | export default Navbar; 61 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { HashRouter as Router, Route, Link, Redirect } from 'react-router-dom'; 3 | import Draco from 'draco-vis'; 4 | import './App.css'; 5 | import Navbar from './Navbar'; 6 | import Editor from './draco-editor/components/Editor'; 7 | import About from './about/components/About'; 8 | 9 | interface State { 10 | status: string 11 | }; 12 | 13 | class App extends React.Component { 14 | draco: Draco; 15 | 16 | constructor(props: any) { 17 | super(props); 18 | 19 | this.state = { 20 | status: "" 21 | } 22 | 23 | this.draco = new Draco("static", (status: string) => { 24 | console.log(status); 25 | this.setState({ status }); 26 | }); 27 | 28 | this.updateStatus = this.updateStatus.bind(this); 29 | } 30 | 31 | public render() { 32 | return ( 33 | 34 |
35 |
36 | 37 | } /> 38 | { 39 | return 41 | }} /> 42 | 43 |
44 |
45 |
46 | ); 47 | } 48 | 49 | private updateStatus(status: string) { 50 | this.setState({ status }); 51 | } 52 | } 53 | 54 | export default App; 55 | -------------------------------------------------------------------------------- /webpack.common.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const HtmlWebPackPlugin = require("html-webpack-plugin"); 3 | const MonacoWebpackPlugin = require("monaco-editor-webpack-plugin"); 4 | const CopyWebpackPlugin = require("copy-webpack-plugin"); 5 | const { CheckerPlugin } = require("awesome-typescript-loader"); 6 | 7 | module.exports = { 8 | entry: "./src/index.tsx", 9 | resolve: { 10 | // Add '.ts' and '.tsx' as resolvable extensions. 11 | extensions: [".ts", ".tsx", ".js", ".json"] 12 | }, 13 | node: { 14 | fs: "empty" 15 | }, 16 | module: { 17 | rules: [ 18 | // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. 19 | { test: /\.tsx?$/, use: "awesome-typescript-loader" }, 20 | // css loading 21 | { 22 | test: /\.css$/, 23 | use: ["style-loader", "css-loader"] 24 | }, 25 | { 26 | test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.svg$/], 27 | loader: require.resolve('url-loader'), 28 | options: { 29 | limit: 10000, 30 | name: 'static/media/[name].[hash:8].[ext]', 31 | }, 32 | }, 33 | ] 34 | }, 35 | 36 | plugins: [ 37 | new HtmlWebPackPlugin({ 38 | template: "./src/index.html", 39 | filename: "./index.html", 40 | favicon: "src/favicon.ico" 41 | }), 42 | new MonacoWebpackPlugin({ 43 | languages: [] 44 | }), 45 | new CopyWebpackPlugin([ 46 | { from: "./node_modules/wasm-clingo/clingo.wasm", to: "static/clingo.wasm" } 47 | ]), 48 | new CheckerPlugin() 49 | ] 50 | }; 51 | -------------------------------------------------------------------------------- /src/Navbar.css: -------------------------------------------------------------------------------- 1 | .Navbar { 2 | position: relative; 3 | display: inline-block; 4 | width: 100%; 5 | height: 48px; 6 | box-sizing: border-box; } 7 | .Navbar:before { 8 | content: ''; 9 | position: absolute; 10 | height: 0; 11 | bottom: 0; 12 | right: 0; 13 | box-sizing: border-box; 14 | border-bottom: 1px solid #C3C3C3; 15 | width: 0; 16 | transition: width 750ms cubic-bezier(0.4, 0, 0.2, 1); } 17 | .Navbar.bordered:before { 18 | box-sizing: border-box; 19 | width: 100%; 20 | transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1); } 21 | .Navbar .items { 22 | display: flex; 23 | flex-direction: row; 24 | padding: 8px 32px 8px 32px; 25 | margin: 0; 26 | align-items: baseline; 27 | user-select: none; 28 | flex: 0 0 auto; 29 | box-sizing: border-box; } 30 | .Navbar .title { 31 | text-align: center; 32 | font-size: 24px; 33 | padding: 0 16px 0 16px; 34 | cursor: default; 35 | flex: 1 0 0; 36 | color: #1A1C40; } 37 | .Navbar .tabs { 38 | display: flex; 39 | flex: 1 0 0; 40 | font-size: 20px; } 41 | .Navbar .tabs .tab { 42 | font-size: 16px; 43 | padding: 0 6px 4px 8px; 44 | text-decoration: none; 45 | cursor: pointer; 46 | color: #1A1C40; 47 | border-bottom: 2px solid transparent; } 48 | .Navbar .tabs .tab:hover { 49 | color: #17266b; 50 | box-sizing: border-box; 51 | border-bottom: 2px solid #17266b; } 52 | .Navbar .tabs .tab.selected { 53 | box-sizing: border-box; 54 | border-bottom: 2px solid #17266b; } 55 | .Navbar .tabs.left { 56 | flex-direction: row; } 57 | .Navbar .tabs.left .tab { 58 | margin: 0 16px 0 0; 59 | text-align: left; } 60 | .Navbar .tabs.right { 61 | flex-direction: row-reverse; } 62 | .Navbar .tabs.right .tab { 63 | margin: 0 0 0 16px; 64 | text-align: right; } 65 | .Navbar .draco-logo { 66 | width: 24px; 67 | height: 24px; } 68 | -------------------------------------------------------------------------------- /src/Navbar.scss: -------------------------------------------------------------------------------- 1 | @import 'base.scss'; 2 | 3 | .Navbar { 4 | position: relative; 5 | display: inline-block; 6 | width: 100%; 7 | height: 48px; 8 | box-sizing: border-box; 9 | 10 | &:before { 11 | content: ''; 12 | position: absolute; 13 | height: 0; 14 | bottom: 0; 15 | right: 0; 16 | box-sizing: border-box; 17 | border-bottom: 1px solid $light-grey; 18 | 19 | width: 0; 20 | transition: width 750ms $standard-ease; 21 | } 22 | 23 | &.bordered:before { 24 | box-sizing: border-box; 25 | width: 100%; 26 | transition: width 500ms $standard-ease; 27 | } 28 | 29 | .items { 30 | display: flex; 31 | flex-direction: row; 32 | padding: 8px 32px 8px 32px; 33 | margin: 0; 34 | align-items: baseline; 35 | user-select: none; 36 | flex: 0 0 auto; 37 | box-sizing: border-box; 38 | } 39 | 40 | .title { 41 | text-align: center; 42 | font-size: 24px; 43 | padding: 0 16px 0 16px; 44 | cursor: default; 45 | flex: 1 0 0; 46 | color: $dark-blue; 47 | } 48 | 49 | .tabs { 50 | display: flex; 51 | flex: 1 0 0; 52 | font-size: 20px; 53 | 54 | .tab { 55 | font-size: 16px; 56 | padding: 0 6px 4px 8px; 57 | text-decoration: none; 58 | cursor: pointer; 59 | color: $dark-blue; 60 | border-bottom: 2px solid transparent; 61 | } 62 | 63 | .tab:hover { 64 | color: $med-blue; 65 | box-sizing: border-box; 66 | border-bottom: 2px solid $med-blue; 67 | } 68 | 69 | .tab.selected { 70 | box-sizing: border-box; 71 | border-bottom: 2px solid $med-blue; 72 | } 73 | } 74 | 75 | .tabs.left { 76 | flex-direction: row; 77 | 78 | .tab { 79 | margin: 0 16px 0 0; 80 | text-align: left; 81 | } 82 | } 83 | 84 | .tabs.right { 85 | flex-direction: row-reverse; 86 | 87 | .tab { 88 | margin: 0 0 0 16px; 89 | text-align: right; 90 | } 91 | } 92 | 93 | .draco-logo { 94 | width: 24px; 95 | height: 24px; 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/shared/components/VegaLiteChart.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import vegaEmbed, { vega, EmbedOptions, Result } from 'vega-embed'; 3 | import { View } from 'vega-lib'; 4 | import { TopLevelSpec } from 'vega-lite'; 5 | 6 | import '../styles/VegaLiteChart.css'; 7 | 8 | const cars = require('../../data/cars.json'); 9 | const barley = require('../../data/barley.json') 10 | 11 | export const datasets = { 12 | 'cars.json': cars, 13 | 'barley.json': barley 14 | }; 15 | 16 | interface Props { 17 | vlSpec: TopLevelSpec; 18 | renderer: "canvas" | "svg"; 19 | actions?: boolean; 20 | } 21 | 22 | interface State { 23 | 24 | } 25 | 26 | /** 27 | * A Visualization component accepts a `vlSpec` as a prop 28 | * and renders the resulting svg. 29 | */ 30 | export default class VegaLiteChart extends React.Component { 31 | componentDidMount() { 32 | this.updateView(this.props.vlSpec); 33 | } 34 | 35 | componentWillReceiveProps(nextProps: Props) { 36 | if (nextProps.vlSpec !== this.props.vlSpec) { 37 | this.updateView(nextProps.vlSpec); 38 | } 39 | } 40 | 41 | render() { 42 | return ( 43 |
44 |
45 | ); 46 | } 47 | 48 | /** 49 | * Updates this to use the given vlSpec. 50 | * 51 | * @param {Object} vlSpec The Vega-Lite spec to use. 52 | */ 53 | updateView(vlSpec: TopLevelSpec) { 54 | if (!vlSpec) { 55 | console.warn('no spec passed to viz view'); 56 | return; 57 | } 58 | 59 | const loader = vega.loader(); 60 | 61 | const original_http = loader.http; 62 | loader.http = (url, options) => { 63 | console.debug('Request for', url); 64 | 65 | if (url in datasets) { 66 | // @ts-ignore 67 | return datasets[url]; 68 | } 69 | return original_http.bind(loader)(url, options); 70 | }; 71 | 72 | const element = this.refs.vis as HTMLElement; 73 | 74 | const opt: EmbedOptions = { 75 | renderer: this.props.renderer, 76 | loader: loader, 77 | mode: 'vega-lite', 78 | defaultStyle: true, 79 | actions: typeof this.props.actions === 'undefined' ? true : this.props.actions 80 | }; 81 | 82 | // @ts-ignore 83 | vegaEmbed(element, vlSpec, opt); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/", 5 | "watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive", 6 | "start-js": "webpack-dev-server --mode development --config webpack.dev.js --open", 7 | "build-js": "webpack --mode production --config webpack.prod.js", 8 | "start": "npm-run-all -p watch-css start-js", 9 | "build": "npm-run-all build-css build-js", 10 | "predeploy": "npm run build", 11 | "deploy": "gh-pages -d dist" 12 | }, 13 | "dependencies": { 14 | "classnames": "^2.2.6", 15 | "d3": "^5.7.0", 16 | "d3-selection": "^1.3.2", 17 | "draco-vis": "^0.0.12", 18 | "history": "^4.7.2", 19 | "monaco-editor": "^0.14.3", 20 | "monaco-editor-webpack-plugin": "^1.5.4", 21 | "react": "^16.5.2", 22 | "react-animate-on-change": "^2.1.1", 23 | "react-dom": "^16.5.2", 24 | "react-json-view": "^1.19.1", 25 | "react-monaco-editor": "^0.18.0", 26 | "react-router-dom": "^4.3.1", 27 | "react-split-pane": "^0.1.84", 28 | "vega-embed": "^3.20.0" 29 | }, 30 | "devDependencies": { 31 | "@types/classnames": "^2.2.6", 32 | "@types/d3": "^5.0.0", 33 | "@types/d3-selection": "^1.3.2", 34 | "@types/history": "^4.7.0", 35 | "@types/inline-style-prefixer": "^3.0.1", 36 | "@types/node": "^10.11.3", 37 | "@types/react": "^16.4.14", 38 | "@types/react-dom": "^16.0.8", 39 | "@types/react-router-dom": "^4.3.1", 40 | "awesome-typescript-loader": "^5.2.1", 41 | "babel-core": "^6.26.3", 42 | "babel-loader": "^8.0.4", 43 | "babel-preset-env": "^1.7.0", 44 | "babel-preset-react": "^6.24.1", 45 | "copy-webpack-plugin": "^4.5.2", 46 | "css-loader": "^1.0.0", 47 | "gh-pages": "^2.0.0", 48 | "html-webpack-plugin": "^3.2.0", 49 | "node-sass-chokidar": "^1.3.3", 50 | "npm-run-all": "^4.1.3", 51 | "source-map": "^0.7.3", 52 | "source-map-loader": "^0.2.4", 53 | "style-loader": "^0.23.0", 54 | "typescript": "^3.1.1", 55 | "url-loader": "^1.1.1", 56 | "webpack": "^4.20.2", 57 | "webpack-cli": "^3.1.2", 58 | "webpack-dev-server": "^3.1.9", 59 | "webpack-merge": "^4.1.4" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/draco-editor/asp.ts: -------------------------------------------------------------------------------- 1 | export const ASP_FORMAT = { 2 | brackets: [ 3 | ["{", "}", "delimiter.curly"], 4 | ["[", "]", "delimiter.square"], 5 | ["(", ")", "delimiter.parenthesis"] 6 | ], 7 | 8 | keywords: ["not"], 9 | 10 | operators: [ 11 | ":", 12 | "..", 13 | ":~", 14 | ":-", 15 | "|", 16 | ";", 17 | ",", 18 | "=", 19 | "!=", 20 | "<", 21 | "<=", 22 | ">", 23 | ">=", 24 | "+", 25 | "-", 26 | "/", 27 | "*", 28 | "@" 29 | ], 30 | 31 | // operators 32 | symbols: /([\.]{2})|([=> 2 | 3 | 4 | favicon-dark@2x 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | favicon 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/draco-editor/components/Recommendations.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import ReactJson from 'react-json-view'; 3 | import { TopLevelSpec } from 'vega-lite'; 4 | import SplitPane from 'react-split-pane'; 5 | import VegaLiteChart from '../../shared/components/VegaLiteChart'; 6 | import classNames from 'classnames'; 7 | import AnimateOnChange from 'react-animate-on-change'; 8 | 9 | import '../styles/Recommendations.css'; 10 | import expandButton from '../../images/expand.svg'; 11 | 12 | export type VizView = 'focus' | 'grid'; 13 | 14 | interface Props { 15 | results: any; 16 | focusIndex: number; 17 | setFocusIndex: (focusIndex: number) => void; 18 | runId: number; // to identify unique runs 19 | view: VizView; // focus for focus + context, grid for grid view. 20 | setView: (view: VizView) => void; 21 | } 22 | 23 | interface State { 24 | focusIndex: number; 25 | runId: number; 26 | updateFocus: boolean; 27 | showInfoPane: boolean; 28 | } 29 | 30 | const COLLAPSED_INFO_PANE_SIZE = 24; 31 | const DEFAULT_INFO_PANE_SIZE = 344; 32 | 33 | export default class Recommendations extends React.Component { 34 | previousInfoPaneSize: number; // -1 for none 35 | 36 | constructor(props: Props) { 37 | super(props); 38 | 39 | this.state = { 40 | focusIndex: props.focusIndex, 41 | runId: -1, 42 | updateFocus: true, 43 | showInfoPane: false, 44 | } 45 | 46 | this.previousInfoPaneSize = -1; 47 | } 48 | 49 | static getDerivedStateFromProps(props: Props, state: State) { 50 | return { 51 | focusIndex: props.focusIndex, 52 | runId: props.runId, 53 | updateFocus: props.focusIndex !== state.focusIndex || 54 | props.runId !== state.runId 55 | } 56 | } 57 | 58 | render() { 59 | if (!this.props.results) { 60 | return null; 61 | } 62 | 63 | const focusSpec = this.props.results.specs[this.props.focusIndex] as TopLevelSpec; 64 | const contextCharts = this.props.results.specs.map((spec: TopLevelSpec, index: number) => { 65 | const classes = classNames({ 66 | 'context-chart': true, 67 | 'selected': index === this.props.focusIndex 68 | }) 69 | 70 | return ( 71 |
{ 72 | this.props.setFocusIndex(index); 73 | }}> 74 | 75 |
76 |
77 | {`${index === 0 ? 'cost: ' : ''}${this.props.results.models[index].costs[0]}`} 78 |
79 |
80 | ); 81 | }); 82 | 83 | const model = this.props.results.models[this.props.focusIndex]; 84 | 85 | const info = { 86 | spec: focusSpec, 87 | cost: model.costs[0], 88 | violations: model.facts.filter((d: string) => d.startsWith('violation')), 89 | }; 90 | 91 | return ( 92 |
93 | { this.previousInfoPaneSize = size}} 102 | minSize={24} maxSize={-400}> 103 |
104 |
105 | 111 | 117 |
118 |
122 | 126 | 127 | 128 | 129 |
130 |
134 |
135 | {contextCharts} 136 |
137 |
138 |
139 |
140 | 146 |
147 |
148 | 153 |
154 |
155 |
156 |
157 |
158 | ); 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Recommendations.scss: -------------------------------------------------------------------------------- 1 | @import 'base.scss'; 2 | 3 | .Recommendations { 4 | display: flex; 5 | flex-direction: column; 6 | width: 100%; 7 | height: 100%; 8 | position: relative; 9 | 10 | $unfocused-color: rgb(245, 244, 249); 11 | 12 | $view-switch-speed: 500ms; 13 | 14 | // hack to get the visualization pane to not overflow 15 | .Pane.vertical.Pane1 { 16 | overflow: hidden; 17 | } 18 | 19 | .Pane.vertical.Pane2 { 20 | overflow: hidden; 21 | // transition: width 220ms $standard-ease; 22 | } 23 | 24 | .visualizations { 25 | .tabs { 26 | position: absolute; 27 | top: 0; 28 | left: 0; 29 | z-index: 1; 30 | width: 100%; 31 | height: 44px; 32 | background-color: #fff; 33 | display: flex; 34 | flex-direction: row; 35 | 36 | .tab { 37 | flex-grow: 1; 38 | cursor: pointer; 39 | position: relative; 40 | display: flex; 41 | align-items: center; 42 | justify-content: center; 43 | 44 | &.selected { 45 | .text { 46 | border-bottom: 2px solid $dark-blue; 47 | } 48 | } 49 | 50 | .text { 51 | font-size: 14px; 52 | padding: 4px 4px 4px 4px; 53 | border-bottom: 2px solid transparent; 54 | } 55 | 56 | &:hover { 57 | .text { 58 | border-bottom: 2px solid $dark-blue; 59 | } 60 | } 61 | } 62 | } 63 | 64 | position: relative; 65 | height: calc(100%); 66 | width: 100%; 67 | display: flex; 68 | flex-direction: column; 69 | 70 | .focus { 71 | position: absolute; 72 | top: 44px; // tabs; 73 | left: 0; 74 | height: calc(100% - 196px - 44px); // minus height of context and tabs 75 | display: flex; 76 | width: 100%; 77 | justify-content: center; 78 | align-items: center; 79 | flex-shrink: 0; 80 | margin: 0; 81 | overflow: auto; 82 | 83 | visibility: visible; 84 | transition: transform $view-switch-speed $standard-ease, 85 | visibility $view-switch-speed $standard-ease; 86 | 87 | .chart { 88 | padding: 24px 16px 16px 16px; 89 | border-radius: 8px; 90 | 91 | &.update { 92 | animation: bump 500ms $standard-ease; 93 | } 94 | 95 | @keyframes bump { 96 | 0% { 97 | background-color: #fff; 98 | } 99 | 50% { 100 | background-color: $unfocused-color; 101 | } 102 | 100% { 103 | background-color: #fff; 104 | } 105 | } 106 | 107 | .VegaLiteChart { 108 | z-index: 0; 109 | 110 | .vega-actions-wrapper { 111 | z-index: 0; // we don't want a z-index here 112 | } 113 | } 114 | } 115 | 116 | &.hidden { 117 | transform: translateY(-100%); 118 | visibility: hidden; 119 | 120 | .VegaLiteChart { 121 | z-index: 0; 122 | } 123 | } 124 | } 125 | 126 | .context { 127 | width: 100%; 128 | overflow-x: scroll; 129 | overflow-y: hidden; 130 | position: absolute; 131 | z-index: 1; 132 | height: 196px; 133 | top: calc(100% - 196px); 134 | background-color: $unfocused-color; 135 | box-sizing: border-box; 136 | 137 | transition: top $view-switch-speed $standard-ease, 138 | background-color $view-switch-speed $standard-ease; 139 | 140 | &.full { 141 | top: 44px; // leave room for tabs 142 | height: calc(100% - 44px); 143 | background-color: #fff; 144 | overflow-y: auto; 145 | 146 | .carousel { 147 | flex-wrap: wrap; 148 | width: 100%; 149 | align-content: flex-start; 150 | align-items: flex-start; 151 | 152 | transition: flex-wrap 0ms, width 0ms; 153 | 154 | .context-chart { 155 | border-radius: 8px; 156 | border: 1px solid transparent; 157 | margin: 11px 15px 11px 15px; // we minus 1px for the border 158 | padding: 12px 0 12px 0; // should add up to the padding in non-full 159 | flex-grow: 0; 160 | 161 | &.selected { 162 | border: 1px solid $med-blue; 163 | 164 | &:hover { 165 | border: 1px solid $med-blue; // don't change border on hover 166 | } 167 | } 168 | 169 | &:hover { 170 | border: 1px dashed $light-blue; 171 | background-color: #fff; // override previous hover 172 | } 173 | 174 | .cost { 175 | bottom: 8px; 176 | } 177 | } 178 | } 179 | } 180 | 181 | .carousel { 182 | height: 100%; 183 | padding: 0; 184 | margin: 0; 185 | display: flex; 186 | flex-direction: row; 187 | align-items: center; 188 | width: auto; 189 | flex-wrap: nowrap; 190 | transition: flex-wrap $view-switch-speed, width $view-switch-speed; 191 | 192 | .context-chart { 193 | position: relative; 194 | display: flex; 195 | align-items: center; 196 | height: calc(196px - 48px); // subtract padding on top / bottom and border 197 | width: calc(196px - 48px); // subtract padding on left / right 198 | justify-content: center; 199 | padding: 24px 16px 24px 16px; // should add up to the margin + padding in `full` 200 | cursor: pointer; 201 | flex-grow: 0; 202 | flex-shrink: 0; 203 | 204 | &.scroll { 205 | flex-grow: 0; 206 | } 207 | 208 | &:hover { 209 | background-color: rgb(250, 250, 252); 210 | } 211 | 212 | &.selected { 213 | background-color: #fff; 214 | } 215 | 216 | .VegaLiteChart { 217 | padding: 0; 218 | z-index: 2; 219 | 220 | canvas { 221 | width: auto !important; 222 | max-width: 128px !important; 223 | height: auto !important; 224 | max-height: 128px !important; 225 | } 226 | } 227 | 228 | .cost { 229 | position: absolute; 230 | bottom: 18px; 231 | font-size: 11px; 232 | font-weight: 300; 233 | font-family: 'Roboto Mono', monospace; 234 | color: $med-grey; 235 | } 236 | } 237 | } 238 | } 239 | } 240 | 241 | .info { 242 | height: 100%; 243 | overflow: auto; 244 | display: flex; 245 | flex-direction: row; 246 | 247 | .expand-button { 248 | height: 100%; 249 | width: 24px; 250 | display: flex; 251 | cursor: pointer; 252 | justify-content: center; 253 | 254 | &:hover { 255 | background-color: $highlight-grey; 256 | } 257 | 258 | .expand-icon { 259 | width: 16px; 260 | height: 16px; 261 | 262 | &.collapse { 263 | transform: rotate(180deg); 264 | } 265 | } 266 | } 267 | 268 | 269 | .raw-container { 270 | height: 100%; 271 | width: 100%; 272 | overflow: auto; 273 | 274 | .raw { 275 | padding: 16px 16px 0 0; 276 | opacity: 0.9; 277 | font-size: 0.8em; 278 | } 279 | } 280 | } 281 | } 282 | -------------------------------------------------------------------------------- /src/draco-editor/styles/Recommendations.css: -------------------------------------------------------------------------------- 1 | .Recommendations { 2 | display: flex; 3 | flex-direction: column; 4 | width: 100%; 5 | height: 100%; 6 | position: relative; } 7 | .Recommendations .Pane.vertical.Pane1 { 8 | overflow: hidden; } 9 | .Recommendations .Pane.vertical.Pane2 { 10 | overflow: hidden; } 11 | .Recommendations .visualizations { 12 | position: relative; 13 | height: calc(100%); 14 | width: 100%; 15 | display: flex; 16 | flex-direction: column; } 17 | .Recommendations .visualizations .tabs { 18 | position: absolute; 19 | top: 0; 20 | left: 0; 21 | z-index: 1; 22 | width: 100%; 23 | height: 44px; 24 | background-color: #fff; 25 | display: flex; 26 | flex-direction: row; } 27 | .Recommendations .visualizations .tabs .tab { 28 | flex-grow: 1; 29 | cursor: pointer; 30 | position: relative; 31 | display: flex; 32 | align-items: center; 33 | justify-content: center; } 34 | .Recommendations .visualizations .tabs .tab.selected .text { 35 | border-bottom: 2px solid #1A1C40; } 36 | .Recommendations .visualizations .tabs .tab .text { 37 | font-size: 14px; 38 | padding: 4px 4px 4px 4px; 39 | border-bottom: 2px solid transparent; } 40 | .Recommendations .visualizations .tabs .tab:hover .text { 41 | border-bottom: 2px solid #1A1C40; } 42 | .Recommendations .visualizations .focus { 43 | position: absolute; 44 | top: 44px; 45 | left: 0; 46 | height: calc(100% - 196px - 44px); 47 | display: flex; 48 | width: 100%; 49 | justify-content: center; 50 | align-items: center; 51 | flex-shrink: 0; 52 | margin: 0; 53 | overflow: auto; 54 | visibility: visible; 55 | transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1), visibility 500ms cubic-bezier(0.4, 0, 0.2, 1); } 56 | .Recommendations .visualizations .focus .chart { 57 | padding: 24px 16px 16px 16px; 58 | border-radius: 8px; } 59 | .Recommendations .visualizations .focus .chart.update { 60 | animation: bump 500ms cubic-bezier(0.4, 0, 0.2, 1); } 61 | 62 | @keyframes bump { 63 | 0% { 64 | background-color: #fff; } 65 | 50% { 66 | background-color: #f5f4f9; } 67 | 100% { 68 | background-color: #fff; } } 69 | .Recommendations .visualizations .focus .chart .VegaLiteChart { 70 | z-index: 0; } 71 | .Recommendations .visualizations .focus .chart .VegaLiteChart .vega-actions-wrapper { 72 | z-index: 0; } 73 | .Recommendations .visualizations .focus.hidden { 74 | transform: translateY(-100%); 75 | visibility: hidden; } 76 | .Recommendations .visualizations .focus.hidden .VegaLiteChart { 77 | z-index: 0; } 78 | .Recommendations .visualizations .context { 79 | width: 100%; 80 | overflow-x: scroll; 81 | overflow-y: hidden; 82 | position: absolute; 83 | z-index: 1; 84 | height: 196px; 85 | top: calc(100% - 196px); 86 | background-color: #f5f4f9; 87 | box-sizing: border-box; 88 | transition: top 500ms cubic-bezier(0.4, 0, 0.2, 1), background-color 500ms cubic-bezier(0.4, 0, 0.2, 1); } 89 | .Recommendations .visualizations .context.full { 90 | top: 44px; 91 | height: calc(100% - 44px); 92 | background-color: #fff; 93 | overflow-y: auto; } 94 | .Recommendations .visualizations .context.full .carousel { 95 | flex-wrap: wrap; 96 | width: 100%; 97 | align-content: flex-start; 98 | align-items: flex-start; 99 | transition: flex-wrap 0ms, width 0ms; } 100 | .Recommendations .visualizations .context.full .carousel .context-chart { 101 | border-radius: 8px; 102 | border: 1px solid transparent; 103 | margin: 11px 15px 11px 15px; 104 | padding: 12px 0 12px 0; 105 | flex-grow: 0; } 106 | .Recommendations .visualizations .context.full .carousel .context-chart.selected { 107 | border: 1px solid #17266b; } 108 | .Recommendations .visualizations .context.full .carousel .context-chart.selected:hover { 109 | border: 1px solid #17266b; } 110 | .Recommendations .visualizations .context.full .carousel .context-chart:hover { 111 | border: 1px dashed #6d92e0; 112 | background-color: #fff; } 113 | .Recommendations .visualizations .context.full .carousel .context-chart .cost { 114 | bottom: 8px; } 115 | .Recommendations .visualizations .context .carousel { 116 | height: 100%; 117 | padding: 0; 118 | margin: 0; 119 | display: flex; 120 | flex-direction: row; 121 | align-items: center; 122 | width: auto; 123 | flex-wrap: nowrap; 124 | transition: flex-wrap 500ms, width 500ms; } 125 | .Recommendations .visualizations .context .carousel .context-chart { 126 | position: relative; 127 | display: flex; 128 | align-items: center; 129 | height: calc(196px - 48px); 130 | width: calc(196px - 48px); 131 | justify-content: center; 132 | padding: 24px 16px 24px 16px; 133 | cursor: pointer; 134 | flex-grow: 0; 135 | flex-shrink: 0; } 136 | .Recommendations .visualizations .context .carousel .context-chart.scroll { 137 | flex-grow: 0; } 138 | .Recommendations .visualizations .context .carousel .context-chart:hover { 139 | background-color: #fafafc; } 140 | .Recommendations .visualizations .context .carousel .context-chart.selected { 141 | background-color: #fff; } 142 | .Recommendations .visualizations .context .carousel .context-chart .VegaLiteChart { 143 | padding: 0; 144 | z-index: 2; } 145 | .Recommendations .visualizations .context .carousel .context-chart .VegaLiteChart canvas { 146 | width: auto !important; 147 | max-width: 128px !important; 148 | height: auto !important; 149 | max-height: 128px !important; } 150 | .Recommendations .visualizations .context .carousel .context-chart .cost { 151 | position: absolute; 152 | bottom: 18px; 153 | font-size: 11px; 154 | font-weight: 300; 155 | font-family: 'Roboto Mono', monospace; 156 | color: #a5a5a5; } 157 | .Recommendations .info { 158 | height: 100%; 159 | overflow: auto; 160 | display: flex; 161 | flex-direction: row; } 162 | .Recommendations .info .expand-button { 163 | height: 100%; 164 | width: 24px; 165 | display: flex; 166 | cursor: pointer; 167 | justify-content: center; } 168 | .Recommendations .info .expand-button:hover { 169 | background-color: #f7f7f7; } 170 | .Recommendations .info .expand-button .expand-icon { 171 | width: 16px; 172 | height: 16px; } 173 | .Recommendations .info .expand-button .expand-icon.collapse { 174 | transform: rotate(180deg); } 175 | .Recommendations .info .raw-container { 176 | height: 100%; 177 | width: 100%; 178 | overflow: auto; } 179 | .Recommendations .info .raw-container .raw { 180 | padding: 16px 16px 0 0; 181 | opacity: 0.9; 182 | font-size: 0.8em; } 183 | -------------------------------------------------------------------------------- /src/draco-editor/components/Editor.tsx: -------------------------------------------------------------------------------- 1 | import Draco from "draco-vis"; 2 | import * as React from "react"; 3 | import MonacoEditor from "react-monaco-editor"; 4 | import SplitPane from "react-split-pane"; 5 | import { ASP_FORMAT, ASP_THEME} from '../asp'; 6 | import "../styles/Editor.css"; 7 | import "../styles/Resizer.css"; 8 | import Status from "./status"; 9 | import classNames from 'classnames'; 10 | import Recommendations, { VizView } from './Recommendations'; 11 | 12 | import playIcon from '../../images/play.svg'; 13 | import playIconGrey from '../../images/play-grey.svg'; 14 | import optionsIcon from '../../images/options.svg'; 15 | import examplesIcon from '../../images/examples.svg'; 16 | 17 | import EXAMPLES, { SCATTER } from '../examples'; 18 | interface State { 19 | output: Object; 20 | showExamples: boolean; 21 | showOptions: boolean; 22 | focusIndex: number; 23 | runCount: number; 24 | view: VizView; 25 | models: number; 26 | } 27 | 28 | interface Props { 29 | draco: Draco; 30 | status: string; 31 | updateStatus: (status: string) => void 32 | } 33 | 34 | interface Monaco { 35 | editor: Object; 36 | } 37 | 38 | const DEFAULT_MODELS = 7; 39 | 40 | export default class Editor extends React.Component { 41 | code: string; 42 | 43 | public constructor(props: Props) { 44 | super(props); 45 | this.state = { 46 | output: null, 47 | showExamples: false, 48 | showOptions: false, 49 | focusIndex: 0, 50 | runCount: 0, 51 | view: 'focus', 52 | models: DEFAULT_MODELS, 53 | }; 54 | 55 | this.code = SCATTER; 56 | 57 | this.editorDidMount = this.editorDidMount.bind(this); 58 | this.handleEditorChange = this.handleEditorChange.bind(this); 59 | this.showExamples = this.showExamples.bind(this); 60 | this.showOptions = this.showOptions.bind(this); 61 | this.hideDropdowns = this.hideDropdowns.bind(this); 62 | this.setFocusIndex = this.setFocusIndex.bind(this); 63 | this.setView = this.setView.bind(this); 64 | this.run = this.run.bind(this); 65 | } 66 | 67 | public componentDidMount() { 68 | if (!this.props.draco.initialized) { 69 | this.props.draco.init().then(() => { 70 | this.run(); 71 | }); 72 | } else { 73 | this.run(); 74 | } 75 | } 76 | 77 | public editorDidMount(editor: any) { 78 | editor.focus(); 79 | } 80 | 81 | public editorWillMount(monaco: any) { 82 | monaco.languages.register({ id: "asp" }); 83 | monaco.languages.setMonarchTokensProvider("asp", ASP_FORMAT); 84 | monaco.editor.defineTheme("draco-light", ASP_THEME); 85 | } 86 | 87 | public render() { 88 | return ( 89 |
90 |
91 | 92 |
93 |
94 | 100 | 106 | 113 |
114 |
115 | 134 |
135 |
139 | {EXAMPLES.map((example) => { 140 | return ( 141 |
{ 142 | this.code = example.program; 143 | setTimeout(() => { 144 | if (this.props.draco.initialized) { 145 | this.run(); 146 | } 147 | }, 10); 148 | this.hideDropdowns(); 149 | }}> 150 | 151 | {example.name} 152 | 153 |
154 | ); 155 | })} 156 |
157 |
161 |
162 | 163 | models 164 | 165 | { 167 | const models = e.target.value; 168 | if (models >= 0 && models <= 100) { 169 | this.setState({ models }) 170 | } 171 | }}/> 172 |
173 |
174 |
175 | 181 |
182 |
183 | 184 |
185 | ); 186 | } 187 | 188 | private handleEditorChange(newValue: string, e: any) { 189 | this.code = newValue; 190 | } 191 | 192 | private run() { 193 | const monaco = this.refs.monaco as any; 194 | const model = monaco.editor.getModel(); 195 | const program = model.getValue(); 196 | const result = this.props.draco.solve(program, { 197 | models: this.state.models 198 | }); 199 | this.setState({ 200 | output: result, 201 | focusIndex: 0, 202 | runCount: this.state.runCount + 1 203 | }); 204 | } 205 | 206 | private showExamples() { 207 | this.setState({ 208 | showExamples: true, 209 | showOptions: false 210 | }); 211 | } 212 | 213 | private hideDropdowns() { 214 | if (this.state.showExamples) { 215 | this.setState({ 216 | showExamples: false, 217 | }); 218 | } 219 | 220 | if (this.state.showOptions) { 221 | this.setState({ 222 | showOptions: false 223 | }) 224 | } 225 | } 226 | 227 | private showOptions() { 228 | this.setState({ 229 | showExamples: false, 230 | showOptions: true, 231 | }); 232 | } 233 | 234 | private setFocusIndex(focusIndex: number) { 235 | this.setState({ focusIndex }); 236 | } 237 | 238 | private setView(view: VizView) { 239 | this.setState({ view }); 240 | } 241 | } 242 | -------------------------------------------------------------------------------- /src/data/barley.json: -------------------------------------------------------------------------------- 1 | [{"yield":27,"variety":"Manchuria","year":1931,"site":"University Farm"}, 2 | {"yield":48.86667,"variety":"Manchuria","year":1931,"site":"Waseca"}, 3 | {"yield":27.43334,"variety":"Manchuria","year":1931,"site":"Morris"}, 4 | {"yield":39.93333,"variety":"Manchuria","year":1931,"site":"Crookston"}, 5 | {"yield":32.96667,"variety":"Manchuria","year":1931,"site":"Grand Rapids"}, 6 | {"yield":28.96667,"variety":"Manchuria","year":1931,"site":"Duluth"}, 7 | {"yield":43.06666,"variety":"Glabron","year":1931,"site":"University Farm"}, 8 | {"yield":55.2,"variety":"Glabron","year":1931,"site":"Waseca"}, 9 | {"yield":28.76667,"variety":"Glabron","year":1931,"site":"Morris"}, 10 | {"yield":38.13333,"variety":"Glabron","year":1931,"site":"Crookston"}, 11 | {"yield":29.13333,"variety":"Glabron","year":1931,"site":"Grand Rapids"}, 12 | {"yield":29.66667,"variety":"Glabron","year":1931,"site":"Duluth"}, 13 | {"yield":35.13333,"variety":"Svansota","year":1931,"site":"University Farm"}, 14 | {"yield":47.33333,"variety":"Svansota","year":1931,"site":"Waseca"}, 15 | {"yield":25.76667,"variety":"Svansota","year":1931,"site":"Morris"}, 16 | {"yield":40.46667,"variety":"Svansota","year":1931,"site":"Crookston"}, 17 | {"yield":29.66667,"variety":"Svansota","year":1931,"site":"Grand Rapids"}, 18 | {"yield":25.7,"variety":"Svansota","year":1931,"site":"Duluth"}, 19 | {"yield":39.9,"variety":"Velvet","year":1931,"site":"University Farm"}, 20 | {"yield":50.23333,"variety":"Velvet","year":1931,"site":"Waseca"}, 21 | {"yield":26.13333,"variety":"Velvet","year":1931,"site":"Morris"}, 22 | {"yield":41.33333,"variety":"Velvet","year":1931,"site":"Crookston"}, 23 | {"yield":23.03333,"variety":"Velvet","year":1931,"site":"Grand Rapids"}, 24 | {"yield":26.3,"variety":"Velvet","year":1931,"site":"Duluth"}, 25 | {"yield":36.56666,"variety":"Trebi","year":1931,"site":"University Farm"}, 26 | {"yield":63.8333,"variety":"Trebi","year":1931,"site":"Waseca"}, 27 | {"yield":43.76667,"variety":"Trebi","year":1931,"site":"Morris"}, 28 | {"yield":46.93333,"variety":"Trebi","year":1931,"site":"Crookston"}, 29 | {"yield":29.76667,"variety":"Trebi","year":1931,"site":"Grand Rapids"}, 30 | {"yield":33.93333,"variety":"Trebi","year":1931,"site":"Duluth"}, 31 | {"yield":43.26667,"variety":"No. 457","year":1931,"site":"University Farm"}, 32 | {"yield":58.1,"variety":"No. 457","year":1931,"site":"Waseca"}, 33 | {"yield":28.7,"variety":"No. 457","year":1931,"site":"Morris"}, 34 | {"yield":45.66667,"variety":"No. 457","year":1931,"site":"Crookston"}, 35 | {"yield":32.16667,"variety":"No. 457","year":1931,"site":"Grand Rapids"}, 36 | {"yield":33.6,"variety":"No. 457","year":1931,"site":"Duluth"}, 37 | {"yield":36.6,"variety":"No. 462","year":1931,"site":"University Farm"}, 38 | {"yield":65.7667,"variety":"No. 462","year":1931,"site":"Waseca"}, 39 | {"yield":30.36667,"variety":"No. 462","year":1931,"site":"Morris"}, 40 | {"yield":48.56666,"variety":"No. 462","year":1931,"site":"Crookston"}, 41 | {"yield":24.93334,"variety":"No. 462","year":1931,"site":"Grand Rapids"}, 42 | {"yield":28.1,"variety":"No. 462","year":1931,"site":"Duluth"}, 43 | {"yield":32.76667,"variety":"Peatland","year":1931,"site":"University Farm"}, 44 | {"yield":48.56666,"variety":"Peatland","year":1931,"site":"Waseca"}, 45 | {"yield":29.86667,"variety":"Peatland","year":1931,"site":"Morris"}, 46 | {"yield":41.6,"variety":"Peatland","year":1931,"site":"Crookston"}, 47 | {"yield":34.7,"variety":"Peatland","year":1931,"site":"Grand Rapids"}, 48 | {"yield":32,"variety":"Peatland","year":1931,"site":"Duluth"}, 49 | {"yield":24.66667,"variety":"No. 475","year":1931,"site":"University Farm"}, 50 | {"yield":46.76667,"variety":"No. 475","year":1931,"site":"Waseca"}, 51 | {"yield":22.6,"variety":"No. 475","year":1931,"site":"Morris"}, 52 | {"yield":44.1,"variety":"No. 475","year":1931,"site":"Crookston"}, 53 | {"yield":19.7,"variety":"No. 475","year":1931,"site":"Grand Rapids"}, 54 | {"yield":33.06666,"variety":"No. 475","year":1931,"site":"Duluth"}, 55 | {"yield":39.3,"variety":"Wisconsin No. 38","year":1931,"site":"University Farm"}, 56 | {"yield":58.8,"variety":"Wisconsin No. 38","year":1931,"site":"Waseca"}, 57 | {"yield":29.46667,"variety":"Wisconsin No. 38","year":1931,"site":"Morris"}, 58 | {"yield":49.86667,"variety":"Wisconsin No. 38","year":1931,"site":"Crookston"}, 59 | {"yield":34.46667,"variety":"Wisconsin No. 38","year":1931,"site":"Grand Rapids"}, 60 | {"yield":31.6,"variety":"Wisconsin No. 38","year":1931,"site":"Duluth"}, 61 | {"yield":26.9,"variety":"Manchuria","year":1932,"site":"University Farm"}, 62 | {"yield":33.46667,"variety":"Manchuria","year":1932,"site":"Waseca"}, 63 | {"yield":34.36666,"variety":"Manchuria","year":1932,"site":"Morris"}, 64 | {"yield":32.96667,"variety":"Manchuria","year":1932,"site":"Crookston"}, 65 | {"yield":22.13333,"variety":"Manchuria","year":1932,"site":"Grand Rapids"}, 66 | {"yield":22.56667,"variety":"Manchuria","year":1932,"site":"Duluth"}, 67 | {"yield":36.8,"variety":"Glabron","year":1932,"site":"University Farm"}, 68 | {"yield":37.73333,"variety":"Glabron","year":1932,"site":"Waseca"}, 69 | {"yield":35.13333,"variety":"Glabron","year":1932,"site":"Morris"}, 70 | {"yield":26.16667,"variety":"Glabron","year":1932,"site":"Crookston"}, 71 | {"yield":14.43333,"variety":"Glabron","year":1932,"site":"Grand Rapids"}, 72 | {"yield":25.86667,"variety":"Glabron","year":1932,"site":"Duluth"}, 73 | {"yield":27.43334,"variety":"Svansota","year":1932,"site":"University Farm"}, 74 | {"yield":38.5,"variety":"Svansota","year":1932,"site":"Waseca"}, 75 | {"yield":35.03333,"variety":"Svansota","year":1932,"site":"Morris"}, 76 | {"yield":20.63333,"variety":"Svansota","year":1932,"site":"Crookston"}, 77 | {"yield":16.63333,"variety":"Svansota","year":1932,"site":"Grand Rapids"}, 78 | {"yield":22.23333,"variety":"Svansota","year":1932,"site":"Duluth"}, 79 | {"yield":26.8,"variety":"Velvet","year":1932,"site":"University Farm"}, 80 | {"yield":37.4,"variety":"Velvet","year":1932,"site":"Waseca"}, 81 | {"yield":38.83333,"variety":"Velvet","year":1932,"site":"Morris"}, 82 | {"yield":32.06666,"variety":"Velvet","year":1932,"site":"Crookston"}, 83 | {"yield":32.23333,"variety":"Velvet","year":1932,"site":"Grand Rapids"}, 84 | {"yield":22.46667,"variety":"Velvet","year":1932,"site":"Duluth"}, 85 | {"yield":29.06667,"variety":"Trebi","year":1932,"site":"University Farm"}, 86 | {"yield":49.2333,"variety":"Trebi","year":1932,"site":"Waseca"}, 87 | {"yield":46.63333,"variety":"Trebi","year":1932,"site":"Morris"}, 88 | {"yield":41.83333,"variety":"Trebi","year":1932,"site":"Crookston"}, 89 | {"yield":20.63333,"variety":"Trebi","year":1932,"site":"Grand Rapids"}, 90 | {"yield":30.6,"variety":"Trebi","year":1932,"site":"Duluth"}, 91 | {"yield":26.43334,"variety":"No. 457","year":1932,"site":"University Farm"}, 92 | {"yield":42.2,"variety":"No. 457","year":1932,"site":"Waseca"}, 93 | {"yield":43.53334,"variety":"No. 457","year":1932,"site":"Morris"}, 94 | {"yield":34.33333,"variety":"No. 457","year":1932,"site":"Crookston"}, 95 | {"yield":19.46667,"variety":"No. 457","year":1932,"site":"Grand Rapids"}, 96 | {"yield":22.7,"variety":"No. 457","year":1932,"site":"Duluth"}, 97 | {"yield":25.56667,"variety":"No. 462","year":1932,"site":"University Farm"}, 98 | {"yield":44.7,"variety":"No. 462","year":1932,"site":"Waseca"}, 99 | {"yield":47,"variety":"No. 462","year":1932,"site":"Morris"}, 100 | {"yield":30.53333,"variety":"No. 462","year":1932,"site":"Crookston"}, 101 | {"yield":19.9,"variety":"No. 462","year":1932,"site":"Grand Rapids"}, 102 | {"yield":22.5,"variety":"No. 462","year":1932,"site":"Duluth"}, 103 | {"yield":28.06667,"variety":"Peatland","year":1932,"site":"University Farm"}, 104 | {"yield":36.03333,"variety":"Peatland","year":1932,"site":"Waseca"}, 105 | {"yield":43.2,"variety":"Peatland","year":1932,"site":"Morris"}, 106 | {"yield":25.23333,"variety":"Peatland","year":1932,"site":"Crookston"}, 107 | {"yield":26.76667,"variety":"Peatland","year":1932,"site":"Grand Rapids"}, 108 | {"yield":31.36667,"variety":"Peatland","year":1932,"site":"Duluth"}, 109 | {"yield":30,"variety":"No. 475","year":1932,"site":"University Farm"}, 110 | {"yield":41.26667,"variety":"No. 475","year":1932,"site":"Waseca"}, 111 | {"yield":44.23333,"variety":"No. 475","year":1932,"site":"Morris"}, 112 | {"yield":32.13333,"variety":"No. 475","year":1932,"site":"Crookston"}, 113 | {"yield":15.23333,"variety":"No. 475","year":1932,"site":"Grand Rapids"}, 114 | {"yield":27.36667,"variety":"No. 475","year":1932,"site":"Duluth"}, 115 | {"yield":38,"variety":"Wisconsin No. 38","year":1932,"site":"University Farm"}, 116 | {"yield":58.16667,"variety":"Wisconsin No. 38","year":1932,"site":"Waseca"}, 117 | {"yield":47.16667,"variety":"Wisconsin No. 38","year":1932,"site":"Morris"}, 118 | {"yield":35.9,"variety":"Wisconsin No. 38","year":1932,"site":"Crookston"}, 119 | {"yield":20.66667,"variety":"Wisconsin No. 38","year":1932,"site":"Grand Rapids"}, 120 | {"yield":29.33333,"variety":"Wisconsin No. 38","year":1932,"site":"Duluth"}] -------------------------------------------------------------------------------- /src/data/cars.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name":"chevrolet chevelle malibu", 4 | "miles_per_gallon":18, 5 | "cylinders":8, 6 | "displacement":307, 7 | "horsepower":130, 8 | "weight_in_lbs":3504, 9 | "acceleration":12, 10 | "year":"1970-01-01", 11 | "origin":"USA" 12 | }, 13 | { 14 | "name":"buick skylark 320", 15 | "miles_per_gallon":15, 16 | "cylinders":8, 17 | "displacement":350, 18 | "horsepower":165, 19 | "weight_in_lbs":3693, 20 | "acceleration":11.5, 21 | "year":"1970-01-01", 22 | "origin":"USA" 23 | }, 24 | { 25 | "name":"plymouth satellite", 26 | "miles_per_gallon":18, 27 | "cylinders":8, 28 | "displacement":318, 29 | "horsepower":150, 30 | "weight_in_lbs":3436, 31 | "acceleration":11, 32 | "year":"1970-01-01", 33 | "origin":"USA" 34 | }, 35 | { 36 | "name":"amc rebel sst", 37 | "miles_per_gallon":16, 38 | "cylinders":8, 39 | "displacement":304, 40 | "horsepower":150, 41 | "weight_in_lbs":3433, 42 | "acceleration":12, 43 | "year":"1970-01-01", 44 | "origin":"USA" 45 | }, 46 | { 47 | "name":"ford torino", 48 | "miles_per_gallon":17, 49 | "cylinders":8, 50 | "displacement":302, 51 | "horsepower":140, 52 | "weight_in_lbs":3449, 53 | "acceleration":10.5, 54 | "year":"1970-01-01", 55 | "origin":"USA" 56 | }, 57 | { 58 | "name":"ford galaxie 500", 59 | "miles_per_gallon":15, 60 | "cylinders":8, 61 | "displacement":429, 62 | "horsepower":198, 63 | "weight_in_lbs":4341, 64 | "acceleration":10, 65 | "year":"1970-01-01", 66 | "origin":"USA" 67 | }, 68 | { 69 | "name":"chevrolet impala", 70 | "miles_per_gallon":14, 71 | "cylinders":8, 72 | "displacement":454, 73 | "horsepower":220, 74 | "weight_in_lbs":4354, 75 | "acceleration":9, 76 | "year":"1970-01-01", 77 | "origin":"USA" 78 | }, 79 | { 80 | "name":"plymouth fury iii", 81 | "miles_per_gallon":14, 82 | "cylinders":8, 83 | "displacement":440, 84 | "horsepower":215, 85 | "weight_in_lbs":4312, 86 | "acceleration":8.5, 87 | "year":"1970-01-01", 88 | "origin":"USA" 89 | }, 90 | { 91 | "name":"pontiac catalina", 92 | "miles_per_gallon":14, 93 | "cylinders":8, 94 | "displacement":455, 95 | "horsepower":225, 96 | "weight_in_lbs":4425, 97 | "acceleration":10, 98 | "year":"1970-01-01", 99 | "origin":"USA" 100 | }, 101 | { 102 | "name":"amc ambassador dpl", 103 | "miles_per_gallon":15, 104 | "cylinders":8, 105 | "displacement":390, 106 | "horsepower":190, 107 | "weight_in_lbs":3850, 108 | "acceleration":8.5, 109 | "year":"1970-01-01", 110 | "origin":"USA" 111 | }, 112 | { 113 | "name":"citroen ds-21 pallas", 114 | "miles_per_gallon":null, 115 | "cylinders":4, 116 | "displacement":133, 117 | "horsepower":115, 118 | "weight_in_lbs":3090, 119 | "acceleration":17.5, 120 | "year":"1970-01-01", 121 | "origin":"Europe" 122 | }, 123 | { 124 | "name":"chevrolet chevelle concours (sw)", 125 | "miles_per_gallon":null, 126 | "cylinders":8, 127 | "displacement":350, 128 | "horsepower":165, 129 | "weight_in_lbs":4142, 130 | "acceleration":11.5, 131 | "year":"1970-01-01", 132 | "origin":"USA" 133 | }, 134 | { 135 | "name":"ford torino (sw)", 136 | "miles_per_gallon":null, 137 | "cylinders":8, 138 | "displacement":351, 139 | "horsepower":153, 140 | "weight_in_lbs":4034, 141 | "acceleration":11, 142 | "year":"1970-01-01", 143 | "origin":"USA" 144 | }, 145 | { 146 | "name":"plymouth satellite (sw)", 147 | "miles_per_gallon":null, 148 | "cylinders":8, 149 | "displacement":383, 150 | "horsepower":175, 151 | "weight_in_lbs":4166, 152 | "acceleration":10.5, 153 | "year":"1970-01-01", 154 | "origin":"USA" 155 | }, 156 | { 157 | "name":"amc rebel sst (sw)", 158 | "miles_per_gallon":null, 159 | "cylinders":8, 160 | "displacement":360, 161 | "horsepower":175, 162 | "weight_in_lbs":3850, 163 | "acceleration":11, 164 | "year":"1970-01-01", 165 | "origin":"USA" 166 | }, 167 | { 168 | "name":"dodge challenger se", 169 | "miles_per_gallon":15, 170 | "cylinders":8, 171 | "displacement":383, 172 | "horsepower":170, 173 | "weight_in_lbs":3563, 174 | "acceleration":10, 175 | "year":"1970-01-01", 176 | "origin":"USA" 177 | }, 178 | { 179 | "name":"plymouth 'cuda 340", 180 | "miles_per_gallon":14, 181 | "cylinders":8, 182 | "displacement":340, 183 | "horsepower":160, 184 | "weight_in_lbs":3609, 185 | "acceleration":8, 186 | "year":"1970-01-01", 187 | "origin":"USA" 188 | }, 189 | { 190 | "name":"ford mustang boss 302", 191 | "miles_per_gallon":null, 192 | "cylinders":8, 193 | "displacement":302, 194 | "horsepower":140, 195 | "weight_in_lbs":3353, 196 | "acceleration":8, 197 | "year":"1970-01-01", 198 | "origin":"USA" 199 | }, 200 | { 201 | "name":"chevrolet monte carlo", 202 | "miles_per_gallon":15, 203 | "cylinders":8, 204 | "displacement":400, 205 | "horsepower":150, 206 | "weight_in_lbs":3761, 207 | "acceleration":9.5, 208 | "year":"1970-01-01", 209 | "origin":"USA" 210 | }, 211 | { 212 | "name":"buick estate wagon (sw)", 213 | "miles_per_gallon":14, 214 | "cylinders":8, 215 | "displacement":455, 216 | "horsepower":225, 217 | "weight_in_lbs":3086, 218 | "acceleration":10, 219 | "year":"1970-01-01", 220 | "origin":"USA" 221 | }, 222 | { 223 | "name":"toyota corona mark ii", 224 | "miles_per_gallon":24, 225 | "cylinders":4, 226 | "displacement":113, 227 | "horsepower":95, 228 | "weight_in_lbs":2372, 229 | "acceleration":15, 230 | "year":"1970-01-01", 231 | "origin":"Japan" 232 | }, 233 | { 234 | "name":"plymouth duster", 235 | "miles_per_gallon":22, 236 | "cylinders":6, 237 | "displacement":198, 238 | "horsepower":95, 239 | "weight_in_lbs":2833, 240 | "acceleration":15.5, 241 | "year":"1970-01-01", 242 | "origin":"USA" 243 | }, 244 | { 245 | "name":"amc hornet", 246 | "miles_per_gallon":18, 247 | "cylinders":6, 248 | "displacement":199, 249 | "horsepower":97, 250 | "weight_in_lbs":2774, 251 | "acceleration":15.5, 252 | "year":"1970-01-01", 253 | "origin":"USA" 254 | }, 255 | { 256 | "name":"ford maverick", 257 | "miles_per_gallon":21, 258 | "cylinders":6, 259 | "displacement":200, 260 | "horsepower":85, 261 | "weight_in_lbs":2587, 262 | "acceleration":16, 263 | "year":"1970-01-01", 264 | "origin":"USA" 265 | }, 266 | { 267 | "name":"datsun pl510", 268 | "miles_per_gallon":27, 269 | "cylinders":4, 270 | "displacement":97, 271 | "horsepower":88, 272 | "weight_in_lbs":2130, 273 | "acceleration":14.5, 274 | "year":"1970-01-01", 275 | "origin":"Japan" 276 | }, 277 | { 278 | "name":"volkswagen 1131 deluxe sedan", 279 | "miles_per_gallon":26, 280 | "cylinders":4, 281 | "displacement":97, 282 | "horsepower":46, 283 | "weight_in_lbs":1835, 284 | "acceleration":20.5, 285 | "year":"1970-01-01", 286 | "origin":"Europe" 287 | }, 288 | { 289 | "name":"peugeot 504", 290 | "miles_per_gallon":25, 291 | "cylinders":4, 292 | "displacement":110, 293 | "horsepower":87, 294 | "weight_in_lbs":2672, 295 | "acceleration":17.5, 296 | "year":"1970-01-01", 297 | "origin":"Europe" 298 | }, 299 | { 300 | "name":"audi 100 ls", 301 | "miles_per_gallon":24, 302 | "cylinders":4, 303 | "displacement":107, 304 | "horsepower":90, 305 | "weight_in_lbs":2430, 306 | "acceleration":14.5, 307 | "year":"1970-01-01", 308 | "origin":"Europe" 309 | }, 310 | { 311 | "name":"saab 99e", 312 | "miles_per_gallon":25, 313 | "cylinders":4, 314 | "displacement":104, 315 | "horsepower":95, 316 | "weight_in_lbs":2375, 317 | "acceleration":17.5, 318 | "year":"1970-01-01", 319 | "origin":"Europe" 320 | }, 321 | { 322 | "name":"bmw 2002", 323 | "miles_per_gallon":26, 324 | "cylinders":4, 325 | "displacement":121, 326 | "horsepower":113, 327 | "weight_in_lbs":2234, 328 | "acceleration":12.5, 329 | "year":"1970-01-01", 330 | "origin":"Europe" 331 | }, 332 | { 333 | "name":"amc gremlin", 334 | "miles_per_gallon":21, 335 | "cylinders":6, 336 | "displacement":199, 337 | "horsepower":90, 338 | "weight_in_lbs":2648, 339 | "acceleration":15, 340 | "year":"1970-01-01", 341 | "origin":"USA" 342 | }, 343 | { 344 | "name":"ford f250", 345 | "miles_per_gallon":10, 346 | "cylinders":8, 347 | "displacement":360, 348 | "horsepower":215, 349 | "weight_in_lbs":4615, 350 | "acceleration":14, 351 | "year":"1970-01-01", 352 | "origin":"USA" 353 | }, 354 | { 355 | "name":"chevy c20", 356 | "miles_per_gallon":10, 357 | "cylinders":8, 358 | "displacement":307, 359 | "horsepower":200, 360 | "weight_in_lbs":4376, 361 | "acceleration":15, 362 | "year":"1970-01-01", 363 | "origin":"USA" 364 | }, 365 | { 366 | "name":"dodge d200", 367 | "miles_per_gallon":11, 368 | "cylinders":8, 369 | "displacement":318, 370 | "horsepower":210, 371 | "weight_in_lbs":4382, 372 | "acceleration":13.5, 373 | "year":"1970-01-01", 374 | "origin":"USA" 375 | }, 376 | { 377 | "name":"hi 1200d", 378 | "miles_per_gallon":9, 379 | "cylinders":8, 380 | "displacement":304, 381 | "horsepower":193, 382 | "weight_in_lbs":4732, 383 | "acceleration":18.5, 384 | "year":"1970-01-01", 385 | "origin":"USA" 386 | }, 387 | { 388 | "name":"datsun pl510", 389 | "miles_per_gallon":27, 390 | "cylinders":4, 391 | "displacement":97, 392 | "horsepower":88, 393 | "weight_in_lbs":2130, 394 | "acceleration":14.5, 395 | "year":"1971-01-01", 396 | "origin":"Japan" 397 | }, 398 | { 399 | "name":"chevrolet vega 2300", 400 | "miles_per_gallon":28, 401 | "cylinders":4, 402 | "displacement":140, 403 | "horsepower":90, 404 | "weight_in_lbs":2264, 405 | "acceleration":15.5, 406 | "year":"1971-01-01", 407 | "origin":"USA" 408 | }, 409 | { 410 | "name":"toyota corona", 411 | "miles_per_gallon":25, 412 | "cylinders":4, 413 | "displacement":113, 414 | "horsepower":95, 415 | "weight_in_lbs":2228, 416 | "acceleration":14, 417 | "year":"1971-01-01", 418 | "origin":"Japan" 419 | }, 420 | { 421 | "name":"ford pinto", 422 | "miles_per_gallon":25, 423 | "cylinders":4, 424 | "displacement":98, 425 | "horsepower":null, 426 | "weight_in_lbs":2046, 427 | "acceleration":19, 428 | "year":"1971-01-01", 429 | "origin":"USA" 430 | }, 431 | { 432 | "name":"volkswagen super beetle 117", 433 | "miles_per_gallon":null, 434 | "cylinders":4, 435 | "displacement":97, 436 | "horsepower":48, 437 | "weight_in_lbs":1978, 438 | "acceleration":20, 439 | "year":"1971-01-01", 440 | "origin":"Europe" 441 | }, 442 | { 443 | "name":"amc gremlin", 444 | "miles_per_gallon":19, 445 | "cylinders":6, 446 | "displacement":232, 447 | "horsepower":100, 448 | "weight_in_lbs":2634, 449 | "acceleration":13, 450 | "year":"1971-01-01", 451 | "origin":"USA" 452 | }, 453 | { 454 | "name":"plymouth satellite custom", 455 | "miles_per_gallon":16, 456 | "cylinders":6, 457 | "displacement":225, 458 | "horsepower":105, 459 | "weight_in_lbs":3439, 460 | "acceleration":15.5, 461 | "year":"1971-01-01", 462 | "origin":"USA" 463 | }, 464 | { 465 | "name":"chevrolet chevelle malibu", 466 | "miles_per_gallon":17, 467 | "cylinders":6, 468 | "displacement":250, 469 | "horsepower":100, 470 | "weight_in_lbs":3329, 471 | "acceleration":15.5, 472 | "year":"1971-01-01", 473 | "origin":"USA" 474 | }, 475 | { 476 | "name":"ford torino 500", 477 | "miles_per_gallon":19, 478 | "cylinders":6, 479 | "displacement":250, 480 | "horsepower":88, 481 | "weight_in_lbs":3302, 482 | "acceleration":15.5, 483 | "year":"1971-01-01", 484 | "origin":"USA" 485 | }, 486 | { 487 | "name":"amc matador", 488 | "miles_per_gallon":18, 489 | "cylinders":6, 490 | "displacement":232, 491 | "horsepower":100, 492 | "weight_in_lbs":3288, 493 | "acceleration":15.5, 494 | "year":"1971-01-01", 495 | "origin":"USA" 496 | }, 497 | { 498 | "name":"chevrolet impala", 499 | "miles_per_gallon":14, 500 | "cylinders":8, 501 | "displacement":350, 502 | "horsepower":165, 503 | "weight_in_lbs":4209, 504 | "acceleration":12, 505 | "year":"1971-01-01", 506 | "origin":"USA" 507 | }, 508 | { 509 | "name":"pontiac catalina brougham", 510 | "miles_per_gallon":14, 511 | "cylinders":8, 512 | "displacement":400, 513 | "horsepower":175, 514 | "weight_in_lbs":4464, 515 | "acceleration":11.5, 516 | "year":"1971-01-01", 517 | "origin":"USA" 518 | }, 519 | { 520 | "name":"ford galaxie 500", 521 | "miles_per_gallon":14, 522 | "cylinders":8, 523 | "displacement":351, 524 | "horsepower":153, 525 | "weight_in_lbs":4154, 526 | "acceleration":13.5, 527 | "year":"1971-01-01", 528 | "origin":"USA" 529 | }, 530 | { 531 | "name":"plymouth fury iii", 532 | "miles_per_gallon":14, 533 | "cylinders":8, 534 | "displacement":318, 535 | "horsepower":150, 536 | "weight_in_lbs":4096, 537 | "acceleration":13, 538 | "year":"1971-01-01", 539 | "origin":"USA" 540 | }, 541 | { 542 | "name":"dodge monaco (sw)", 543 | "miles_per_gallon":12, 544 | "cylinders":8, 545 | "displacement":383, 546 | "horsepower":180, 547 | "weight_in_lbs":4955, 548 | "acceleration":11.5, 549 | "year":"1971-01-01", 550 | "origin":"USA" 551 | }, 552 | { 553 | "name":"ford country squire (sw)", 554 | "miles_per_gallon":13, 555 | "cylinders":8, 556 | "displacement":400, 557 | "horsepower":170, 558 | "weight_in_lbs":4746, 559 | "acceleration":12, 560 | "year":"1971-01-01", 561 | "origin":"USA" 562 | }, 563 | { 564 | "name":"pontiac safari (sw)", 565 | "miles_per_gallon":13, 566 | "cylinders":8, 567 | "displacement":400, 568 | "horsepower":175, 569 | "weight_in_lbs":5140, 570 | "acceleration":12, 571 | "year":"1971-01-01", 572 | "origin":"USA" 573 | }, 574 | { 575 | "name":"amc hornet sportabout (sw)", 576 | "miles_per_gallon":18, 577 | "cylinders":6, 578 | "displacement":258, 579 | "horsepower":110, 580 | "weight_in_lbs":2962, 581 | "acceleration":13.5, 582 | "year":"1971-01-01", 583 | "origin":"USA" 584 | }, 585 | { 586 | "name":"chevrolet vega (sw)", 587 | "miles_per_gallon":22, 588 | "cylinders":4, 589 | "displacement":140, 590 | "horsepower":72, 591 | "weight_in_lbs":2408, 592 | "acceleration":19, 593 | "year":"1971-01-01", 594 | "origin":"USA" 595 | }, 596 | { 597 | "name":"pontiac firebird", 598 | "miles_per_gallon":19, 599 | "cylinders":6, 600 | "displacement":250, 601 | "horsepower":100, 602 | "weight_in_lbs":3282, 603 | "acceleration":15, 604 | "year":"1971-01-01", 605 | "origin":"USA" 606 | }, 607 | { 608 | "name":"ford mustang", 609 | "miles_per_gallon":18, 610 | "cylinders":6, 611 | "displacement":250, 612 | "horsepower":88, 613 | "weight_in_lbs":3139, 614 | "acceleration":14.5, 615 | "year":"1971-01-01", 616 | "origin":"USA" 617 | }, 618 | { 619 | "name":"mercury capri 2000", 620 | "miles_per_gallon":23, 621 | "cylinders":4, 622 | "displacement":122, 623 | "horsepower":86, 624 | "weight_in_lbs":2220, 625 | "acceleration":14, 626 | "year":"1971-01-01", 627 | "origin":"USA" 628 | }, 629 | { 630 | "name":"opel 1900", 631 | "miles_per_gallon":28, 632 | "cylinders":4, 633 | "displacement":116, 634 | "horsepower":90, 635 | "weight_in_lbs":2123, 636 | "acceleration":14, 637 | "year":"1971-01-01", 638 | "origin":"Europe" 639 | }, 640 | { 641 | "name":"peugeot 304", 642 | "miles_per_gallon":30, 643 | "cylinders":4, 644 | "displacement":79, 645 | "horsepower":70, 646 | "weight_in_lbs":2074, 647 | "acceleration":19.5, 648 | "year":"1971-01-01", 649 | "origin":"Europe" 650 | }, 651 | { 652 | "name":"fiat 124b", 653 | "miles_per_gallon":30, 654 | "cylinders":4, 655 | "displacement":88, 656 | "horsepower":76, 657 | "weight_in_lbs":2065, 658 | "acceleration":14.5, 659 | "year":"1971-01-01", 660 | "origin":"Europe" 661 | }, 662 | { 663 | "name":"toyota corolla 1200", 664 | "miles_per_gallon":31, 665 | "cylinders":4, 666 | "displacement":71, 667 | "horsepower":65, 668 | "weight_in_lbs":1773, 669 | "acceleration":19, 670 | "year":"1971-01-01", 671 | "origin":"Japan" 672 | }, 673 | { 674 | "name":"datsun 1200", 675 | "miles_per_gallon":35, 676 | "cylinders":4, 677 | "displacement":72, 678 | "horsepower":69, 679 | "weight_in_lbs":1613, 680 | "acceleration":18, 681 | "year":"1971-01-01", 682 | "origin":"Japan" 683 | }, 684 | { 685 | "name":"volkswagen model 111", 686 | "miles_per_gallon":27, 687 | "cylinders":4, 688 | "displacement":97, 689 | "horsepower":60, 690 | "weight_in_lbs":1834, 691 | "acceleration":19, 692 | "year":"1971-01-01", 693 | "origin":"Europe" 694 | }, 695 | { 696 | "name":"plymouth cricket", 697 | "miles_per_gallon":26, 698 | "cylinders":4, 699 | "displacement":91, 700 | "horsepower":70, 701 | "weight_in_lbs":1955, 702 | "acceleration":20.5, 703 | "year":"1971-01-01", 704 | "origin":"USA" 705 | }, 706 | { 707 | "name":"toyota corona hardtop", 708 | "miles_per_gallon":24, 709 | "cylinders":4, 710 | "displacement":113, 711 | "horsepower":95, 712 | "weight_in_lbs":2278, 713 | "acceleration":15.5, 714 | "year":"1972-01-01", 715 | "origin":"Japan" 716 | }, 717 | { 718 | "name":"dodge colt hardtop", 719 | "miles_per_gallon":25, 720 | "cylinders":4, 721 | "displacement":97.5, 722 | "horsepower":80, 723 | "weight_in_lbs":2126, 724 | "acceleration":17, 725 | "year":"1972-01-01", 726 | "origin":"USA" 727 | }, 728 | { 729 | "name":"volkswagen type 3", 730 | "miles_per_gallon":23, 731 | "cylinders":4, 732 | "displacement":97, 733 | "horsepower":54, 734 | "weight_in_lbs":2254, 735 | "acceleration":23.5, 736 | "year":"1972-01-01", 737 | "origin":"Europe" 738 | }, 739 | { 740 | "name":"chevrolet vega", 741 | "miles_per_gallon":20, 742 | "cylinders":4, 743 | "displacement":140, 744 | "horsepower":90, 745 | "weight_in_lbs":2408, 746 | "acceleration":19.5, 747 | "year":"1972-01-01", 748 | "origin":"USA" 749 | }, 750 | { 751 | "name":"ford pinto runabout", 752 | "miles_per_gallon":21, 753 | "cylinders":4, 754 | "displacement":122, 755 | "horsepower":86, 756 | "weight_in_lbs":2226, 757 | "acceleration":16.5, 758 | "year":"1972-01-01", 759 | "origin":"USA" 760 | }, 761 | { 762 | "name":"chevrolet impala", 763 | "miles_per_gallon":13, 764 | "cylinders":8, 765 | "displacement":350, 766 | "horsepower":165, 767 | "weight_in_lbs":4274, 768 | "acceleration":12, 769 | "year":"1972-01-01", 770 | "origin":"USA" 771 | }, 772 | { 773 | "name":"pontiac catalina", 774 | "miles_per_gallon":14, 775 | "cylinders":8, 776 | "displacement":400, 777 | "horsepower":175, 778 | "weight_in_lbs":4385, 779 | "acceleration":12, 780 | "year":"1972-01-01", 781 | "origin":"USA" 782 | }, 783 | { 784 | "name":"plymouth fury iii", 785 | "miles_per_gallon":15, 786 | "cylinders":8, 787 | "displacement":318, 788 | "horsepower":150, 789 | "weight_in_lbs":4135, 790 | "acceleration":13.5, 791 | "year":"1972-01-01", 792 | "origin":"USA" 793 | }, 794 | { 795 | "name":"ford galaxie 500", 796 | "miles_per_gallon":14, 797 | "cylinders":8, 798 | "displacement":351, 799 | "horsepower":153, 800 | "weight_in_lbs":4129, 801 | "acceleration":13, 802 | "year":"1972-01-01", 803 | "origin":"USA" 804 | }, 805 | { 806 | "name":"amc ambassador sst", 807 | "miles_per_gallon":17, 808 | "cylinders":8, 809 | "displacement":304, 810 | "horsepower":150, 811 | "weight_in_lbs":3672, 812 | "acceleration":11.5, 813 | "year":"1972-01-01", 814 | "origin":"USA" 815 | }, 816 | { 817 | "name":"mercury marquis", 818 | "miles_per_gallon":11, 819 | "cylinders":8, 820 | "displacement":429, 821 | "horsepower":208, 822 | "weight_in_lbs":4633, 823 | "acceleration":11, 824 | "year":"1972-01-01", 825 | "origin":"USA" 826 | }, 827 | { 828 | "name":"buick lesabre custom", 829 | "miles_per_gallon":13, 830 | "cylinders":8, 831 | "displacement":350, 832 | "horsepower":155, 833 | "weight_in_lbs":4502, 834 | "acceleration":13.5, 835 | "year":"1972-01-01", 836 | "origin":"USA" 837 | }, 838 | { 839 | "name":"oldsmobile delta 88 royale", 840 | "miles_per_gallon":12, 841 | "cylinders":8, 842 | "displacement":350, 843 | "horsepower":160, 844 | "weight_in_lbs":4456, 845 | "acceleration":13.5, 846 | "year":"1972-01-01", 847 | "origin":"USA" 848 | }, 849 | { 850 | "name":"chrysler newport royal", 851 | "miles_per_gallon":13, 852 | "cylinders":8, 853 | "displacement":400, 854 | "horsepower":190, 855 | "weight_in_lbs":4422, 856 | "acceleration":12.5, 857 | "year":"1972-01-01", 858 | "origin":"USA" 859 | }, 860 | { 861 | "name":"mazda rx2 coupe", 862 | "miles_per_gallon":19, 863 | "cylinders":3, 864 | "displacement":70, 865 | "horsepower":97, 866 | "weight_in_lbs":2330, 867 | "acceleration":13.5, 868 | "year":"1972-01-01", 869 | "origin":"Japan" 870 | }, 871 | { 872 | "name":"amc matador (sw)", 873 | "miles_per_gallon":15, 874 | "cylinders":8, 875 | "displacement":304, 876 | "horsepower":150, 877 | "weight_in_lbs":3892, 878 | "acceleration":12.5, 879 | "year":"1972-01-01", 880 | "origin":"USA" 881 | }, 882 | { 883 | "name":"chevrolet chevelle concours (sw)", 884 | "miles_per_gallon":13, 885 | "cylinders":8, 886 | "displacement":307, 887 | "horsepower":130, 888 | "weight_in_lbs":4098, 889 | "acceleration":14, 890 | "year":"1972-01-01", 891 | "origin":"USA" 892 | }, 893 | { 894 | "name":"ford gran torino (sw)", 895 | "miles_per_gallon":13, 896 | "cylinders":8, 897 | "displacement":302, 898 | "horsepower":140, 899 | "weight_in_lbs":4294, 900 | "acceleration":16, 901 | "year":"1972-01-01", 902 | "origin":"USA" 903 | }, 904 | { 905 | "name":"plymouth satellite custom (sw)", 906 | "miles_per_gallon":14, 907 | "cylinders":8, 908 | "displacement":318, 909 | "horsepower":150, 910 | "weight_in_lbs":4077, 911 | "acceleration":14, 912 | "year":"1972-01-01", 913 | "origin":"USA" 914 | }, 915 | { 916 | "name":"volvo 145e (sw)", 917 | "miles_per_gallon":18, 918 | "cylinders":4, 919 | "displacement":121, 920 | "horsepower":112, 921 | "weight_in_lbs":2933, 922 | "acceleration":14.5, 923 | "year":"1972-01-01", 924 | "origin":"Europe" 925 | }, 926 | { 927 | "name":"volkswagen 411 (sw)", 928 | "miles_per_gallon":22, 929 | "cylinders":4, 930 | "displacement":121, 931 | "horsepower":76, 932 | "weight_in_lbs":2511, 933 | "acceleration":18, 934 | "year":"1972-01-01", 935 | "origin":"Europe" 936 | }, 937 | { 938 | "name":"peugeot 504 (sw)", 939 | "miles_per_gallon":21, 940 | "cylinders":4, 941 | "displacement":120, 942 | "horsepower":87, 943 | "weight_in_lbs":2979, 944 | "acceleration":19.5, 945 | "year":"1972-01-01", 946 | "origin":"Europe" 947 | }, 948 | { 949 | "name":"renault 12 (sw)", 950 | "miles_per_gallon":26, 951 | "cylinders":4, 952 | "displacement":96, 953 | "horsepower":69, 954 | "weight_in_lbs":2189, 955 | "acceleration":18, 956 | "year":"1972-01-01", 957 | "origin":"Europe" 958 | }, 959 | { 960 | "name":"ford pinto (sw)", 961 | "miles_per_gallon":22, 962 | "cylinders":4, 963 | "displacement":122, 964 | "horsepower":86, 965 | "weight_in_lbs":2395, 966 | "acceleration":16, 967 | "year":"1972-01-01", 968 | "origin":"USA" 969 | }, 970 | { 971 | "name":"datsun 510 (sw)", 972 | "miles_per_gallon":28, 973 | "cylinders":4, 974 | "displacement":97, 975 | "horsepower":92, 976 | "weight_in_lbs":2288, 977 | "acceleration":17, 978 | "year":"1972-01-01", 979 | "origin":"Japan" 980 | }, 981 | { 982 | "name":"toyouta corona mark ii (sw)", 983 | "miles_per_gallon":23, 984 | "cylinders":4, 985 | "displacement":120, 986 | "horsepower":97, 987 | "weight_in_lbs":2506, 988 | "acceleration":14.5, 989 | "year":"1972-01-01", 990 | "origin":"Japan" 991 | }, 992 | { 993 | "name":"dodge colt (sw)", 994 | "miles_per_gallon":28, 995 | "cylinders":4, 996 | "displacement":98, 997 | "horsepower":80, 998 | "weight_in_lbs":2164, 999 | "acceleration":15, 1000 | "year":"1972-01-01", 1001 | "origin":"USA" 1002 | }, 1003 | { 1004 | "name":"toyota corolla 1600 (sw)", 1005 | "miles_per_gallon":27, 1006 | "cylinders":4, 1007 | "displacement":97, 1008 | "horsepower":88, 1009 | "weight_in_lbs":2100, 1010 | "acceleration":16.5, 1011 | "year":"1972-01-01", 1012 | "origin":"Japan" 1013 | }, 1014 | { 1015 | "name":"buick century 350", 1016 | "miles_per_gallon":13, 1017 | "cylinders":8, 1018 | "displacement":350, 1019 | "horsepower":175, 1020 | "weight_in_lbs":4100, 1021 | "acceleration":13, 1022 | "year":"1973-01-01", 1023 | "origin":"USA" 1024 | }, 1025 | { 1026 | "name":"amc matador", 1027 | "miles_per_gallon":14, 1028 | "cylinders":8, 1029 | "displacement":304, 1030 | "horsepower":150, 1031 | "weight_in_lbs":3672, 1032 | "acceleration":11.5, 1033 | "year":"1973-01-01", 1034 | "origin":"USA" 1035 | }, 1036 | { 1037 | "name":"chevrolet malibu", 1038 | "miles_per_gallon":13, 1039 | "cylinders":8, 1040 | "displacement":350, 1041 | "horsepower":145, 1042 | "weight_in_lbs":3988, 1043 | "acceleration":13, 1044 | "year":"1973-01-01", 1045 | "origin":"USA" 1046 | }, 1047 | { 1048 | "name":"ford gran torino", 1049 | "miles_per_gallon":14, 1050 | "cylinders":8, 1051 | "displacement":302, 1052 | "horsepower":137, 1053 | "weight_in_lbs":4042, 1054 | "acceleration":14.5, 1055 | "year":"1973-01-01", 1056 | "origin":"USA" 1057 | }, 1058 | { 1059 | "name":"dodge coronet custom", 1060 | "miles_per_gallon":15, 1061 | "cylinders":8, 1062 | "displacement":318, 1063 | "horsepower":150, 1064 | "weight_in_lbs":3777, 1065 | "acceleration":12.5, 1066 | "year":"1973-01-01", 1067 | "origin":"USA" 1068 | }, 1069 | { 1070 | "name":"mercury marquis brougham", 1071 | "miles_per_gallon":12, 1072 | "cylinders":8, 1073 | "displacement":429, 1074 | "horsepower":198, 1075 | "weight_in_lbs":4952, 1076 | "acceleration":11.5, 1077 | "year":"1973-01-01", 1078 | "origin":"USA" 1079 | }, 1080 | { 1081 | "name":"chevrolet caprice classic", 1082 | "miles_per_gallon":13, 1083 | "cylinders":8, 1084 | "displacement":400, 1085 | "horsepower":150, 1086 | "weight_in_lbs":4464, 1087 | "acceleration":12, 1088 | "year":"1973-01-01", 1089 | "origin":"USA" 1090 | }, 1091 | { 1092 | "name":"ford ltd", 1093 | "miles_per_gallon":13, 1094 | "cylinders":8, 1095 | "displacement":351, 1096 | "horsepower":158, 1097 | "weight_in_lbs":4363, 1098 | "acceleration":13, 1099 | "year":"1973-01-01", 1100 | "origin":"USA" 1101 | }, 1102 | { 1103 | "name":"plymouth fury gran sedan", 1104 | "miles_per_gallon":14, 1105 | "cylinders":8, 1106 | "displacement":318, 1107 | "horsepower":150, 1108 | "weight_in_lbs":4237, 1109 | "acceleration":14.5, 1110 | "year":"1973-01-01", 1111 | "origin":"USA" 1112 | }, 1113 | { 1114 | "name":"chrysler new yorker brougham", 1115 | "miles_per_gallon":13, 1116 | "cylinders":8, 1117 | "displacement":440, 1118 | "horsepower":215, 1119 | "weight_in_lbs":4735, 1120 | "acceleration":11, 1121 | "year":"1973-01-01", 1122 | "origin":"USA" 1123 | }, 1124 | { 1125 | "name":"buick electra 225 custom", 1126 | "miles_per_gallon":12, 1127 | "cylinders":8, 1128 | "displacement":455, 1129 | "horsepower":225, 1130 | "weight_in_lbs":4951, 1131 | "acceleration":11, 1132 | "year":"1973-01-01", 1133 | "origin":"USA" 1134 | }, 1135 | { 1136 | "name":"amc ambassador brougham", 1137 | "miles_per_gallon":13, 1138 | "cylinders":8, 1139 | "displacement":360, 1140 | "horsepower":175, 1141 | "weight_in_lbs":3821, 1142 | "acceleration":11, 1143 | "year":"1973-01-01", 1144 | "origin":"USA" 1145 | }, 1146 | { 1147 | "name":"plymouth valiant", 1148 | "miles_per_gallon":18, 1149 | "cylinders":6, 1150 | "displacement":225, 1151 | "horsepower":105, 1152 | "weight_in_lbs":3121, 1153 | "acceleration":16.5, 1154 | "year":"1973-01-01", 1155 | "origin":"USA" 1156 | }, 1157 | { 1158 | "name":"chevrolet nova custom", 1159 | "miles_per_gallon":16, 1160 | "cylinders":6, 1161 | "displacement":250, 1162 | "horsepower":100, 1163 | "weight_in_lbs":3278, 1164 | "acceleration":18, 1165 | "year":"1973-01-01", 1166 | "origin":"USA" 1167 | }, 1168 | { 1169 | "name":"amc hornet", 1170 | "miles_per_gallon":18, 1171 | "cylinders":6, 1172 | "displacement":232, 1173 | "horsepower":100, 1174 | "weight_in_lbs":2945, 1175 | "acceleration":16, 1176 | "year":"1973-01-01", 1177 | "origin":"USA" 1178 | }, 1179 | { 1180 | "name":"ford maverick", 1181 | "miles_per_gallon":18, 1182 | "cylinders":6, 1183 | "displacement":250, 1184 | "horsepower":88, 1185 | "weight_in_lbs":3021, 1186 | "acceleration":16.5, 1187 | "year":"1973-01-01", 1188 | "origin":"USA" 1189 | }, 1190 | { 1191 | "name":"plymouth duster", 1192 | "miles_per_gallon":23, 1193 | "cylinders":6, 1194 | "displacement":198, 1195 | "horsepower":95, 1196 | "weight_in_lbs":2904, 1197 | "acceleration":16, 1198 | "year":"1973-01-01", 1199 | "origin":"USA" 1200 | }, 1201 | { 1202 | "name":"volkswagen super beetle", 1203 | "miles_per_gallon":26, 1204 | "cylinders":4, 1205 | "displacement":97, 1206 | "horsepower":46, 1207 | "weight_in_lbs":1950, 1208 | "acceleration":21, 1209 | "year":"1973-01-01", 1210 | "origin":"Europe" 1211 | }, 1212 | { 1213 | "name":"chevrolet impala", 1214 | "miles_per_gallon":11, 1215 | "cylinders":8, 1216 | "displacement":400, 1217 | "horsepower":150, 1218 | "weight_in_lbs":4997, 1219 | "acceleration":14, 1220 | "year":"1973-01-01", 1221 | "origin":"USA" 1222 | }, 1223 | { 1224 | "name":"ford country", 1225 | "miles_per_gallon":12, 1226 | "cylinders":8, 1227 | "displacement":400, 1228 | "horsepower":167, 1229 | "weight_in_lbs":4906, 1230 | "acceleration":12.5, 1231 | "year":"1973-01-01", 1232 | "origin":"USA" 1233 | }, 1234 | { 1235 | "name":"plymouth custom suburb", 1236 | "miles_per_gallon":13, 1237 | "cylinders":8, 1238 | "displacement":360, 1239 | "horsepower":170, 1240 | "weight_in_lbs":4654, 1241 | "acceleration":13, 1242 | "year":"1973-01-01", 1243 | "origin":"USA" 1244 | }, 1245 | { 1246 | "name":"oldsmobile vista cruiser", 1247 | "miles_per_gallon":12, 1248 | "cylinders":8, 1249 | "displacement":350, 1250 | "horsepower":180, 1251 | "weight_in_lbs":4499, 1252 | "acceleration":12.5, 1253 | "year":"1973-01-01", 1254 | "origin":"USA" 1255 | }, 1256 | { 1257 | "name":"amc gremlin", 1258 | "miles_per_gallon":18, 1259 | "cylinders":6, 1260 | "displacement":232, 1261 | "horsepower":100, 1262 | "weight_in_lbs":2789, 1263 | "acceleration":15, 1264 | "year":"1973-01-01", 1265 | "origin":"USA" 1266 | }, 1267 | { 1268 | "name":"toyota carina", 1269 | "miles_per_gallon":20, 1270 | "cylinders":4, 1271 | "displacement":97, 1272 | "horsepower":88, 1273 | "weight_in_lbs":2279, 1274 | "acceleration":19, 1275 | "year":"1973-01-01", 1276 | "origin":"Japan" 1277 | }, 1278 | { 1279 | "name":"chevrolet vega", 1280 | "miles_per_gallon":21, 1281 | "cylinders":4, 1282 | "displacement":140, 1283 | "horsepower":72, 1284 | "weight_in_lbs":2401, 1285 | "acceleration":19.5, 1286 | "year":"1973-01-01", 1287 | "origin":"USA" 1288 | }, 1289 | { 1290 | "name":"datsun 610", 1291 | "miles_per_gallon":22, 1292 | "cylinders":4, 1293 | "displacement":108, 1294 | "horsepower":94, 1295 | "weight_in_lbs":2379, 1296 | "acceleration":16.5, 1297 | "year":"1973-01-01", 1298 | "origin":"Japan" 1299 | }, 1300 | { 1301 | "name":"maxda rx3", 1302 | "miles_per_gallon":18, 1303 | "cylinders":3, 1304 | "displacement":70, 1305 | "horsepower":90, 1306 | "weight_in_lbs":2124, 1307 | "acceleration":13.5, 1308 | "year":"1973-01-01", 1309 | "origin":"Japan" 1310 | }, 1311 | { 1312 | "name":"ford pinto", 1313 | "miles_per_gallon":19, 1314 | "cylinders":4, 1315 | "displacement":122, 1316 | "horsepower":85, 1317 | "weight_in_lbs":2310, 1318 | "acceleration":18.5, 1319 | "year":"1973-01-01", 1320 | "origin":"USA" 1321 | }, 1322 | { 1323 | "name":"mercury capri v6", 1324 | "miles_per_gallon":21, 1325 | "cylinders":6, 1326 | "displacement":155, 1327 | "horsepower":107, 1328 | "weight_in_lbs":2472, 1329 | "acceleration":14, 1330 | "year":"1973-01-01", 1331 | "origin":"USA" 1332 | }, 1333 | { 1334 | "name":"fiat 124 sport coupe", 1335 | "miles_per_gallon":26, 1336 | "cylinders":4, 1337 | "displacement":98, 1338 | "horsepower":90, 1339 | "weight_in_lbs":2265, 1340 | "acceleration":15.5, 1341 | "year":"1973-01-01", 1342 | "origin":"Europe" 1343 | }, 1344 | { 1345 | "name":"chevrolet monte carlo s", 1346 | "miles_per_gallon":15, 1347 | "cylinders":8, 1348 | "displacement":350, 1349 | "horsepower":145, 1350 | "weight_in_lbs":4082, 1351 | "acceleration":13, 1352 | "year":"1973-01-01", 1353 | "origin":"USA" 1354 | }, 1355 | { 1356 | "name":"pontiac grand prix", 1357 | "miles_per_gallon":16, 1358 | "cylinders":8, 1359 | "displacement":400, 1360 | "horsepower":230, 1361 | "weight_in_lbs":4278, 1362 | "acceleration":9.5, 1363 | "year":"1973-01-01", 1364 | "origin":"USA" 1365 | }, 1366 | { 1367 | "name":"fiat 128", 1368 | "miles_per_gallon":29, 1369 | "cylinders":4, 1370 | "displacement":68, 1371 | "horsepower":49, 1372 | "weight_in_lbs":1867, 1373 | "acceleration":19.5, 1374 | "year":"1973-01-01", 1375 | "origin":"Europe" 1376 | }, 1377 | { 1378 | "name":"opel manta", 1379 | "miles_per_gallon":24, 1380 | "cylinders":4, 1381 | "displacement":116, 1382 | "horsepower":75, 1383 | "weight_in_lbs":2158, 1384 | "acceleration":15.5, 1385 | "year":"1973-01-01", 1386 | "origin":"Europe" 1387 | }, 1388 | { 1389 | "name":"audi 100ls", 1390 | "miles_per_gallon":20, 1391 | "cylinders":4, 1392 | "displacement":114, 1393 | "horsepower":91, 1394 | "weight_in_lbs":2582, 1395 | "acceleration":14, 1396 | "year":"1973-01-01", 1397 | "origin":"Europe" 1398 | }, 1399 | { 1400 | "name":"volvo 144ea", 1401 | "miles_per_gallon":19, 1402 | "cylinders":4, 1403 | "displacement":121, 1404 | "horsepower":112, 1405 | "weight_in_lbs":2868, 1406 | "acceleration":15.5, 1407 | "year":"1973-01-01", 1408 | "origin":"Europe" 1409 | }, 1410 | { 1411 | "name":"dodge dart custom", 1412 | "miles_per_gallon":15, 1413 | "cylinders":8, 1414 | "displacement":318, 1415 | "horsepower":150, 1416 | "weight_in_lbs":3399, 1417 | "acceleration":11, 1418 | "year":"1973-01-01", 1419 | "origin":"USA" 1420 | }, 1421 | { 1422 | "name":"saab 99le", 1423 | "miles_per_gallon":24, 1424 | "cylinders":4, 1425 | "displacement":121, 1426 | "horsepower":110, 1427 | "weight_in_lbs":2660, 1428 | "acceleration":14, 1429 | "year":"1973-01-01", 1430 | "origin":"Europe" 1431 | }, 1432 | { 1433 | "name":"toyota mark ii", 1434 | "miles_per_gallon":20, 1435 | "cylinders":6, 1436 | "displacement":156, 1437 | "horsepower":122, 1438 | "weight_in_lbs":2807, 1439 | "acceleration":13.5, 1440 | "year":"1973-01-01", 1441 | "origin":"Japan" 1442 | }, 1443 | { 1444 | "name":"oldsmobile omega", 1445 | "miles_per_gallon":11, 1446 | "cylinders":8, 1447 | "displacement":350, 1448 | "horsepower":180, 1449 | "weight_in_lbs":3664, 1450 | "acceleration":11, 1451 | "year":"1973-01-01", 1452 | "origin":"USA" 1453 | }, 1454 | { 1455 | "name":"plymouth duster", 1456 | "miles_per_gallon":20, 1457 | "cylinders":6, 1458 | "displacement":198, 1459 | "horsepower":95, 1460 | "weight_in_lbs":3102, 1461 | "acceleration":16.5, 1462 | "year":"1974-01-01", 1463 | "origin":"USA" 1464 | }, 1465 | { 1466 | "name":"ford maverick", 1467 | "miles_per_gallon":21, 1468 | "cylinders":6, 1469 | "displacement":200, 1470 | "horsepower":null, 1471 | "weight_in_lbs":2875, 1472 | "acceleration":17, 1473 | "year":"1974-01-01", 1474 | "origin":"USA" 1475 | }, 1476 | { 1477 | "name":"amc hornet", 1478 | "miles_per_gallon":19, 1479 | "cylinders":6, 1480 | "displacement":232, 1481 | "horsepower":100, 1482 | "weight_in_lbs":2901, 1483 | "acceleration":16, 1484 | "year":"1974-01-01", 1485 | "origin":"USA" 1486 | }, 1487 | { 1488 | "name":"chevrolet nova", 1489 | "miles_per_gallon":15, 1490 | "cylinders":6, 1491 | "displacement":250, 1492 | "horsepower":100, 1493 | "weight_in_lbs":3336, 1494 | "acceleration":17, 1495 | "year":"1974-01-01", 1496 | "origin":"USA" 1497 | }, 1498 | { 1499 | "name":"datsun b210", 1500 | "miles_per_gallon":31, 1501 | "cylinders":4, 1502 | "displacement":79, 1503 | "horsepower":67, 1504 | "weight_in_lbs":1950, 1505 | "acceleration":19, 1506 | "year":"1974-01-01", 1507 | "origin":"Japan" 1508 | }, 1509 | { 1510 | "name":"ford pinto", 1511 | "miles_per_gallon":26, 1512 | "cylinders":4, 1513 | "displacement":122, 1514 | "horsepower":80, 1515 | "weight_in_lbs":2451, 1516 | "acceleration":16.5, 1517 | "year":"1974-01-01", 1518 | "origin":"USA" 1519 | }, 1520 | { 1521 | "name":"toyota corolla 1200", 1522 | "miles_per_gallon":32, 1523 | "cylinders":4, 1524 | "displacement":71, 1525 | "horsepower":65, 1526 | "weight_in_lbs":1836, 1527 | "acceleration":21, 1528 | "year":"1974-01-01", 1529 | "origin":"Japan" 1530 | }, 1531 | { 1532 | "name":"chevrolet vega", 1533 | "miles_per_gallon":25, 1534 | "cylinders":4, 1535 | "displacement":140, 1536 | "horsepower":75, 1537 | "weight_in_lbs":2542, 1538 | "acceleration":17, 1539 | "year":"1974-01-01", 1540 | "origin":"USA" 1541 | }, 1542 | { 1543 | "name":"chevrolet chevelle malibu classic", 1544 | "miles_per_gallon":16, 1545 | "cylinders":6, 1546 | "displacement":250, 1547 | "horsepower":100, 1548 | "weight_in_lbs":3781, 1549 | "acceleration":17, 1550 | "year":"1974-01-01", 1551 | "origin":"USA" 1552 | }, 1553 | { 1554 | "name":"amc matador", 1555 | "miles_per_gallon":16, 1556 | "cylinders":6, 1557 | "displacement":258, 1558 | "horsepower":110, 1559 | "weight_in_lbs":3632, 1560 | "acceleration":18, 1561 | "year":"1974-01-01", 1562 | "origin":"USA" 1563 | }, 1564 | { 1565 | "name":"plymouth satellite sebring", 1566 | "miles_per_gallon":18, 1567 | "cylinders":6, 1568 | "displacement":225, 1569 | "horsepower":105, 1570 | "weight_in_lbs":3613, 1571 | "acceleration":16.5, 1572 | "year":"1974-01-01", 1573 | "origin":"USA" 1574 | }, 1575 | { 1576 | "name":"ford gran torino", 1577 | "miles_per_gallon":16, 1578 | "cylinders":8, 1579 | "displacement":302, 1580 | "horsepower":140, 1581 | "weight_in_lbs":4141, 1582 | "acceleration":14, 1583 | "year":"1974-01-01", 1584 | "origin":"USA" 1585 | }, 1586 | { 1587 | "name":"buick century luxus (sw)", 1588 | "miles_per_gallon":13, 1589 | "cylinders":8, 1590 | "displacement":350, 1591 | "horsepower":150, 1592 | "weight_in_lbs":4699, 1593 | "acceleration":14.5, 1594 | "year":"1974-01-01", 1595 | "origin":"USA" 1596 | }, 1597 | { 1598 | "name":"dodge coronet custom (sw)", 1599 | "miles_per_gallon":14, 1600 | "cylinders":8, 1601 | "displacement":318, 1602 | "horsepower":150, 1603 | "weight_in_lbs":4457, 1604 | "acceleration":13.5, 1605 | "year":"1974-01-01", 1606 | "origin":"USA" 1607 | }, 1608 | { 1609 | "name":"ford gran torino (sw)", 1610 | "miles_per_gallon":14, 1611 | "cylinders":8, 1612 | "displacement":302, 1613 | "horsepower":140, 1614 | "weight_in_lbs":4638, 1615 | "acceleration":16, 1616 | "year":"1974-01-01", 1617 | "origin":"USA" 1618 | }, 1619 | { 1620 | "name":"amc matador (sw)", 1621 | "miles_per_gallon":14, 1622 | "cylinders":8, 1623 | "displacement":304, 1624 | "horsepower":150, 1625 | "weight_in_lbs":4257, 1626 | "acceleration":15.5, 1627 | "year":"1974-01-01", 1628 | "origin":"USA" 1629 | }, 1630 | { 1631 | "name":"audi fox", 1632 | "miles_per_gallon":29, 1633 | "cylinders":4, 1634 | "displacement":98, 1635 | "horsepower":83, 1636 | "weight_in_lbs":2219, 1637 | "acceleration":16.5, 1638 | "year":"1974-01-01", 1639 | "origin":"Europe" 1640 | }, 1641 | { 1642 | "name":"volkswagen dasher", 1643 | "miles_per_gallon":26, 1644 | "cylinders":4, 1645 | "displacement":79, 1646 | "horsepower":67, 1647 | "weight_in_lbs":1963, 1648 | "acceleration":15.5, 1649 | "year":"1974-01-01", 1650 | "origin":"Europe" 1651 | }, 1652 | { 1653 | "name":"opel manta", 1654 | "miles_per_gallon":26, 1655 | "cylinders":4, 1656 | "displacement":97, 1657 | "horsepower":78, 1658 | "weight_in_lbs":2300, 1659 | "acceleration":14.5, 1660 | "year":"1974-01-01", 1661 | "origin":"Europe" 1662 | }, 1663 | { 1664 | "name":"toyota corona", 1665 | "miles_per_gallon":31, 1666 | "cylinders":4, 1667 | "displacement":76, 1668 | "horsepower":52, 1669 | "weight_in_lbs":1649, 1670 | "acceleration":16.5, 1671 | "year":"1974-01-01", 1672 | "origin":"Japan" 1673 | }, 1674 | { 1675 | "name":"datsun 710", 1676 | "miles_per_gallon":32, 1677 | "cylinders":4, 1678 | "displacement":83, 1679 | "horsepower":61, 1680 | "weight_in_lbs":2003, 1681 | "acceleration":19, 1682 | "year":"1974-01-01", 1683 | "origin":"Japan" 1684 | }, 1685 | { 1686 | "name":"dodge colt", 1687 | "miles_per_gallon":28, 1688 | "cylinders":4, 1689 | "displacement":90, 1690 | "horsepower":75, 1691 | "weight_in_lbs":2125, 1692 | "acceleration":14.5, 1693 | "year":"1974-01-01", 1694 | "origin":"USA" 1695 | }, 1696 | { 1697 | "name":"fiat 128", 1698 | "miles_per_gallon":24, 1699 | "cylinders":4, 1700 | "displacement":90, 1701 | "horsepower":75, 1702 | "weight_in_lbs":2108, 1703 | "acceleration":15.5, 1704 | "year":"1974-01-01", 1705 | "origin":"Europe" 1706 | }, 1707 | { 1708 | "name":"fiat 124 tc", 1709 | "miles_per_gallon":26, 1710 | "cylinders":4, 1711 | "displacement":116, 1712 | "horsepower":75, 1713 | "weight_in_lbs":2246, 1714 | "acceleration":14, 1715 | "year":"1974-01-01", 1716 | "origin":"Europe" 1717 | }, 1718 | { 1719 | "name":"honda civic", 1720 | "miles_per_gallon":24, 1721 | "cylinders":4, 1722 | "displacement":120, 1723 | "horsepower":97, 1724 | "weight_in_lbs":2489, 1725 | "acceleration":15, 1726 | "year":"1974-01-01", 1727 | "origin":"Japan" 1728 | }, 1729 | { 1730 | "name":"subaru", 1731 | "miles_per_gallon":26, 1732 | "cylinders":4, 1733 | "displacement":108, 1734 | "horsepower":93, 1735 | "weight_in_lbs":2391, 1736 | "acceleration":15.5, 1737 | "year":"1974-01-01", 1738 | "origin":"Japan" 1739 | }, 1740 | { 1741 | "name":"fiat x1.9", 1742 | "miles_per_gallon":31, 1743 | "cylinders":4, 1744 | "displacement":79, 1745 | "horsepower":67, 1746 | "weight_in_lbs":2000, 1747 | "acceleration":16, 1748 | "year":"1974-01-01", 1749 | "origin":"Europe" 1750 | }, 1751 | { 1752 | "name":"plymouth valiant custom", 1753 | "miles_per_gallon":19, 1754 | "cylinders":6, 1755 | "displacement":225, 1756 | "horsepower":95, 1757 | "weight_in_lbs":3264, 1758 | "acceleration":16, 1759 | "year":"1975-01-01", 1760 | "origin":"USA" 1761 | }, 1762 | { 1763 | "name":"chevrolet nova", 1764 | "miles_per_gallon":18, 1765 | "cylinders":6, 1766 | "displacement":250, 1767 | "horsepower":105, 1768 | "weight_in_lbs":3459, 1769 | "acceleration":16, 1770 | "year":"1975-01-01", 1771 | "origin":"USA" 1772 | }, 1773 | { 1774 | "name":"mercury monarch", 1775 | "miles_per_gallon":15, 1776 | "cylinders":6, 1777 | "displacement":250, 1778 | "horsepower":72, 1779 | "weight_in_lbs":3432, 1780 | "acceleration":21, 1781 | "year":"1975-01-01", 1782 | "origin":"USA" 1783 | }, 1784 | { 1785 | "name":"ford maverick", 1786 | "miles_per_gallon":15, 1787 | "cylinders":6, 1788 | "displacement":250, 1789 | "horsepower":72, 1790 | "weight_in_lbs":3158, 1791 | "acceleration":19.5, 1792 | "year":"1975-01-01", 1793 | "origin":"USA" 1794 | }, 1795 | { 1796 | "name":"pontiac catalina", 1797 | "miles_per_gallon":16, 1798 | "cylinders":8, 1799 | "displacement":400, 1800 | "horsepower":170, 1801 | "weight_in_lbs":4668, 1802 | "acceleration":11.5, 1803 | "year":"1975-01-01", 1804 | "origin":"USA" 1805 | }, 1806 | { 1807 | "name":"chevrolet bel air", 1808 | "miles_per_gallon":15, 1809 | "cylinders":8, 1810 | "displacement":350, 1811 | "horsepower":145, 1812 | "weight_in_lbs":4440, 1813 | "acceleration":14, 1814 | "year":"1975-01-01", 1815 | "origin":"USA" 1816 | }, 1817 | { 1818 | "name":"plymouth grand fury", 1819 | "miles_per_gallon":16, 1820 | "cylinders":8, 1821 | "displacement":318, 1822 | "horsepower":150, 1823 | "weight_in_lbs":4498, 1824 | "acceleration":14.5, 1825 | "year":"1975-01-01", 1826 | "origin":"USA" 1827 | }, 1828 | { 1829 | "name":"ford ltd", 1830 | "miles_per_gallon":14, 1831 | "cylinders":8, 1832 | "displacement":351, 1833 | "horsepower":148, 1834 | "weight_in_lbs":4657, 1835 | "acceleration":13.5, 1836 | "year":"1975-01-01", 1837 | "origin":"USA" 1838 | }, 1839 | { 1840 | "name":"buick century", 1841 | "miles_per_gallon":17, 1842 | "cylinders":6, 1843 | "displacement":231, 1844 | "horsepower":110, 1845 | "weight_in_lbs":3907, 1846 | "acceleration":21, 1847 | "year":"1975-01-01", 1848 | "origin":"USA" 1849 | }, 1850 | { 1851 | "name":"chevroelt chevelle malibu", 1852 | "miles_per_gallon":16, 1853 | "cylinders":6, 1854 | "displacement":250, 1855 | "horsepower":105, 1856 | "weight_in_lbs":3897, 1857 | "acceleration":18.5, 1858 | "year":"1975-01-01", 1859 | "origin":"USA" 1860 | }, 1861 | { 1862 | "name":"amc matador", 1863 | "miles_per_gallon":15, 1864 | "cylinders":6, 1865 | "displacement":258, 1866 | "horsepower":110, 1867 | "weight_in_lbs":3730, 1868 | "acceleration":19, 1869 | "year":"1975-01-01", 1870 | "origin":"USA" 1871 | }, 1872 | { 1873 | "name":"plymouth fury", 1874 | "miles_per_gallon":18, 1875 | "cylinders":6, 1876 | "displacement":225, 1877 | "horsepower":95, 1878 | "weight_in_lbs":3785, 1879 | "acceleration":19, 1880 | "year":"1975-01-01", 1881 | "origin":"USA" 1882 | }, 1883 | { 1884 | "name":"buick skyhawk", 1885 | "miles_per_gallon":21, 1886 | "cylinders":6, 1887 | "displacement":231, 1888 | "horsepower":110, 1889 | "weight_in_lbs":3039, 1890 | "acceleration":15, 1891 | "year":"1975-01-01", 1892 | "origin":"USA" 1893 | }, 1894 | { 1895 | "name":"chevrolet monza 2+2", 1896 | "miles_per_gallon":20, 1897 | "cylinders":8, 1898 | "displacement":262, 1899 | "horsepower":110, 1900 | "weight_in_lbs":3221, 1901 | "acceleration":13.5, 1902 | "year":"1975-01-01", 1903 | "origin":"USA" 1904 | }, 1905 | { 1906 | "name":"ford mustang ii", 1907 | "miles_per_gallon":13, 1908 | "cylinders":8, 1909 | "displacement":302, 1910 | "horsepower":129, 1911 | "weight_in_lbs":3169, 1912 | "acceleration":12, 1913 | "year":"1975-01-01", 1914 | "origin":"USA" 1915 | }, 1916 | { 1917 | "name":"toyota corolla", 1918 | "miles_per_gallon":29, 1919 | "cylinders":4, 1920 | "displacement":97, 1921 | "horsepower":75, 1922 | "weight_in_lbs":2171, 1923 | "acceleration":16, 1924 | "year":"1975-01-01", 1925 | "origin":"Japan" 1926 | }, 1927 | { 1928 | "name":"ford pinto", 1929 | "miles_per_gallon":23, 1930 | "cylinders":4, 1931 | "displacement":140, 1932 | "horsepower":83, 1933 | "weight_in_lbs":2639, 1934 | "acceleration":17, 1935 | "year":"1975-01-01", 1936 | "origin":"USA" 1937 | }, 1938 | { 1939 | "name":"amc gremlin", 1940 | "miles_per_gallon":20, 1941 | "cylinders":6, 1942 | "displacement":232, 1943 | "horsepower":100, 1944 | "weight_in_lbs":2914, 1945 | "acceleration":16, 1946 | "year":"1975-01-01", 1947 | "origin":"USA" 1948 | }, 1949 | { 1950 | "name":"pontiac astro", 1951 | "miles_per_gallon":23, 1952 | "cylinders":4, 1953 | "displacement":140, 1954 | "horsepower":78, 1955 | "weight_in_lbs":2592, 1956 | "acceleration":18.5, 1957 | "year":"1975-01-01", 1958 | "origin":"USA" 1959 | }, 1960 | { 1961 | "name":"toyota corona", 1962 | "miles_per_gallon":24, 1963 | "cylinders":4, 1964 | "displacement":134, 1965 | "horsepower":96, 1966 | "weight_in_lbs":2702, 1967 | "acceleration":13.5, 1968 | "year":"1975-01-01", 1969 | "origin":"Japan" 1970 | }, 1971 | { 1972 | "name":"volkswagen dasher", 1973 | "miles_per_gallon":25, 1974 | "cylinders":4, 1975 | "displacement":90, 1976 | "horsepower":71, 1977 | "weight_in_lbs":2223, 1978 | "acceleration":16.5, 1979 | "year":"1975-01-01", 1980 | "origin":"Europe" 1981 | }, 1982 | { 1983 | "name":"datsun 710", 1984 | "miles_per_gallon":24, 1985 | "cylinders":4, 1986 | "displacement":119, 1987 | "horsepower":97, 1988 | "weight_in_lbs":2545, 1989 | "acceleration":17, 1990 | "year":"1975-01-01", 1991 | "origin":"Japan" 1992 | }, 1993 | { 1994 | "name":"ford pinto", 1995 | "miles_per_gallon":18, 1996 | "cylinders":6, 1997 | "displacement":171, 1998 | "horsepower":97, 1999 | "weight_in_lbs":2984, 2000 | "acceleration":14.5, 2001 | "year":"1975-01-01", 2002 | "origin":"USA" 2003 | }, 2004 | { 2005 | "name":"volkswagen rabbit", 2006 | "miles_per_gallon":29, 2007 | "cylinders":4, 2008 | "displacement":90, 2009 | "horsepower":70, 2010 | "weight_in_lbs":1937, 2011 | "acceleration":14, 2012 | "year":"1975-01-01", 2013 | "origin":"Europe" 2014 | }, 2015 | { 2016 | "name":"amc pacer", 2017 | "miles_per_gallon":19, 2018 | "cylinders":6, 2019 | "displacement":232, 2020 | "horsepower":90, 2021 | "weight_in_lbs":3211, 2022 | "acceleration":17, 2023 | "year":"1975-01-01", 2024 | "origin":"USA" 2025 | }, 2026 | { 2027 | "name":"audi 100ls", 2028 | "miles_per_gallon":23, 2029 | "cylinders":4, 2030 | "displacement":115, 2031 | "horsepower":95, 2032 | "weight_in_lbs":2694, 2033 | "acceleration":15, 2034 | "year":"1975-01-01", 2035 | "origin":"Europe" 2036 | }, 2037 | { 2038 | "name":"peugeot 504", 2039 | "miles_per_gallon":23, 2040 | "cylinders":4, 2041 | "displacement":120, 2042 | "horsepower":88, 2043 | "weight_in_lbs":2957, 2044 | "acceleration":17, 2045 | "year":"1975-01-01", 2046 | "origin":"Europe" 2047 | }, 2048 | { 2049 | "name":"volvo 244dl", 2050 | "miles_per_gallon":22, 2051 | "cylinders":4, 2052 | "displacement":121, 2053 | "horsepower":98, 2054 | "weight_in_lbs":2945, 2055 | "acceleration":14.5, 2056 | "year":"1975-01-01", 2057 | "origin":"Europe" 2058 | }, 2059 | { 2060 | "name":"saab 99le", 2061 | "miles_per_gallon":25, 2062 | "cylinders":4, 2063 | "displacement":121, 2064 | "horsepower":115, 2065 | "weight_in_lbs":2671, 2066 | "acceleration":13.5, 2067 | "year":"1975-01-01", 2068 | "origin":"Europe" 2069 | }, 2070 | { 2071 | "name":"honda civic cvcc", 2072 | "miles_per_gallon":33, 2073 | "cylinders":4, 2074 | "displacement":91, 2075 | "horsepower":53, 2076 | "weight_in_lbs":1795, 2077 | "acceleration":17.5, 2078 | "year":"1975-01-01", 2079 | "origin":"Japan" 2080 | }, 2081 | { 2082 | "name":"fiat 131", 2083 | "miles_per_gallon":28, 2084 | "cylinders":4, 2085 | "displacement":107, 2086 | "horsepower":86, 2087 | "weight_in_lbs":2464, 2088 | "acceleration":15.5, 2089 | "year":"1976-01-01", 2090 | "origin":"Europe" 2091 | }, 2092 | { 2093 | "name":"opel 1900", 2094 | "miles_per_gallon":25, 2095 | "cylinders":4, 2096 | "displacement":116, 2097 | "horsepower":81, 2098 | "weight_in_lbs":2220, 2099 | "acceleration":16.9, 2100 | "year":"1976-01-01", 2101 | "origin":"Europe" 2102 | }, 2103 | { 2104 | "name":"capri ii", 2105 | "miles_per_gallon":25, 2106 | "cylinders":4, 2107 | "displacement":140, 2108 | "horsepower":92, 2109 | "weight_in_lbs":2572, 2110 | "acceleration":14.9, 2111 | "year":"1976-01-01", 2112 | "origin":"USA" 2113 | }, 2114 | { 2115 | "name":"dodge colt", 2116 | "miles_per_gallon":26, 2117 | "cylinders":4, 2118 | "displacement":98, 2119 | "horsepower":79, 2120 | "weight_in_lbs":2255, 2121 | "acceleration":17.7, 2122 | "year":"1976-01-01", 2123 | "origin":"USA" 2124 | }, 2125 | { 2126 | "name":"renault 12tl", 2127 | "miles_per_gallon":27, 2128 | "cylinders":4, 2129 | "displacement":101, 2130 | "horsepower":83, 2131 | "weight_in_lbs":2202, 2132 | "acceleration":15.3, 2133 | "year":"1976-01-01", 2134 | "origin":"Europe" 2135 | }, 2136 | { 2137 | "name":"chevrolet chevelle malibu classic", 2138 | "miles_per_gallon":17.5, 2139 | "cylinders":8, 2140 | "displacement":305, 2141 | "horsepower":140, 2142 | "weight_in_lbs":4215, 2143 | "acceleration":13, 2144 | "year":"1976-01-01", 2145 | "origin":"USA" 2146 | }, 2147 | { 2148 | "name":"dodge coronet brougham", 2149 | "miles_per_gallon":16, 2150 | "cylinders":8, 2151 | "displacement":318, 2152 | "horsepower":150, 2153 | "weight_in_lbs":4190, 2154 | "acceleration":13, 2155 | "year":"1976-01-01", 2156 | "origin":"USA" 2157 | }, 2158 | { 2159 | "name":"amc matador", 2160 | "miles_per_gallon":15.5, 2161 | "cylinders":8, 2162 | "displacement":304, 2163 | "horsepower":120, 2164 | "weight_in_lbs":3962, 2165 | "acceleration":13.9, 2166 | "year":"1976-01-01", 2167 | "origin":"USA" 2168 | }, 2169 | { 2170 | "name":"ford gran torino", 2171 | "miles_per_gallon":14.5, 2172 | "cylinders":8, 2173 | "displacement":351, 2174 | "horsepower":152, 2175 | "weight_in_lbs":4215, 2176 | "acceleration":12.8, 2177 | "year":"1976-01-01", 2178 | "origin":"USA" 2179 | }, 2180 | { 2181 | "name":"plymouth valiant", 2182 | "miles_per_gallon":22, 2183 | "cylinders":6, 2184 | "displacement":225, 2185 | "horsepower":100, 2186 | "weight_in_lbs":3233, 2187 | "acceleration":15.4, 2188 | "year":"1976-01-01", 2189 | "origin":"USA" 2190 | }, 2191 | { 2192 | "name":"chevrolet nova", 2193 | "miles_per_gallon":22, 2194 | "cylinders":6, 2195 | "displacement":250, 2196 | "horsepower":105, 2197 | "weight_in_lbs":3353, 2198 | "acceleration":14.5, 2199 | "year":"1976-01-01", 2200 | "origin":"USA" 2201 | }, 2202 | { 2203 | "name":"ford maverick", 2204 | "miles_per_gallon":24, 2205 | "cylinders":6, 2206 | "displacement":200, 2207 | "horsepower":81, 2208 | "weight_in_lbs":3012, 2209 | "acceleration":17.6, 2210 | "year":"1976-01-01", 2211 | "origin":"USA" 2212 | }, 2213 | { 2214 | "name":"amc hornet", 2215 | "miles_per_gallon":22.5, 2216 | "cylinders":6, 2217 | "displacement":232, 2218 | "horsepower":90, 2219 | "weight_in_lbs":3085, 2220 | "acceleration":17.6, 2221 | "year":"1976-01-01", 2222 | "origin":"USA" 2223 | }, 2224 | { 2225 | "name":"chevrolet chevette", 2226 | "miles_per_gallon":29, 2227 | "cylinders":4, 2228 | "displacement":85, 2229 | "horsepower":52, 2230 | "weight_in_lbs":2035, 2231 | "acceleration":22.2, 2232 | "year":"1976-01-01", 2233 | "origin":"USA" 2234 | }, 2235 | { 2236 | "name":"chevrolet woody", 2237 | "miles_per_gallon":24.5, 2238 | "cylinders":4, 2239 | "displacement":98, 2240 | "horsepower":60, 2241 | "weight_in_lbs":2164, 2242 | "acceleration":22.1, 2243 | "year":"1976-01-01", 2244 | "origin":"USA" 2245 | }, 2246 | { 2247 | "name":"vw rabbit", 2248 | "miles_per_gallon":29, 2249 | "cylinders":4, 2250 | "displacement":90, 2251 | "horsepower":70, 2252 | "weight_in_lbs":1937, 2253 | "acceleration":14.2, 2254 | "year":"1976-01-01", 2255 | "origin":"Europe" 2256 | }, 2257 | { 2258 | "name":"honda civic", 2259 | "miles_per_gallon":33, 2260 | "cylinders":4, 2261 | "displacement":91, 2262 | "horsepower":53, 2263 | "weight_in_lbs":1795, 2264 | "acceleration":17.4, 2265 | "year":"1976-01-01", 2266 | "origin":"Japan" 2267 | }, 2268 | { 2269 | "name":"dodge aspen se", 2270 | "miles_per_gallon":20, 2271 | "cylinders":6, 2272 | "displacement":225, 2273 | "horsepower":100, 2274 | "weight_in_lbs":3651, 2275 | "acceleration":17.7, 2276 | "year":"1976-01-01", 2277 | "origin":"USA" 2278 | }, 2279 | { 2280 | "name":"ford granada ghia", 2281 | "miles_per_gallon":18, 2282 | "cylinders":6, 2283 | "displacement":250, 2284 | "horsepower":78, 2285 | "weight_in_lbs":3574, 2286 | "acceleration":21, 2287 | "year":"1976-01-01", 2288 | "origin":"USA" 2289 | }, 2290 | { 2291 | "name":"pontiac ventura sj", 2292 | "miles_per_gallon":18.5, 2293 | "cylinders":6, 2294 | "displacement":250, 2295 | "horsepower":110, 2296 | "weight_in_lbs":3645, 2297 | "acceleration":16.2, 2298 | "year":"1976-01-01", 2299 | "origin":"USA" 2300 | }, 2301 | { 2302 | "name":"amc pacer d/l", 2303 | "miles_per_gallon":17.5, 2304 | "cylinders":6, 2305 | "displacement":258, 2306 | "horsepower":95, 2307 | "weight_in_lbs":3193, 2308 | "acceleration":17.8, 2309 | "year":"1976-01-01", 2310 | "origin":"USA" 2311 | }, 2312 | { 2313 | "name":"volkswagen rabbit", 2314 | "miles_per_gallon":29.5, 2315 | "cylinders":4, 2316 | "displacement":97, 2317 | "horsepower":71, 2318 | "weight_in_lbs":1825, 2319 | "acceleration":12.2, 2320 | "year":"1976-01-01", 2321 | "origin":"Europe" 2322 | }, 2323 | { 2324 | "name":"datsun b-210", 2325 | "miles_per_gallon":32, 2326 | "cylinders":4, 2327 | "displacement":85, 2328 | "horsepower":70, 2329 | "weight_in_lbs":1990, 2330 | "acceleration":17, 2331 | "year":"1976-01-01", 2332 | "origin":"Japan" 2333 | }, 2334 | { 2335 | "name":"toyota corolla", 2336 | "miles_per_gallon":28, 2337 | "cylinders":4, 2338 | "displacement":97, 2339 | "horsepower":75, 2340 | "weight_in_lbs":2155, 2341 | "acceleration":16.4, 2342 | "year":"1976-01-01", 2343 | "origin":"Japan" 2344 | }, 2345 | { 2346 | "name":"ford pinto", 2347 | "miles_per_gallon":26.5, 2348 | "cylinders":4, 2349 | "displacement":140, 2350 | "horsepower":72, 2351 | "weight_in_lbs":2565, 2352 | "acceleration":13.6, 2353 | "year":"1976-01-01", 2354 | "origin":"USA" 2355 | }, 2356 | { 2357 | "name":"volvo 245", 2358 | "miles_per_gallon":20, 2359 | "cylinders":4, 2360 | "displacement":130, 2361 | "horsepower":102, 2362 | "weight_in_lbs":3150, 2363 | "acceleration":15.7, 2364 | "year":"1976-01-01", 2365 | "origin":"Europe" 2366 | }, 2367 | { 2368 | "name":"plymouth volare premier v8", 2369 | "miles_per_gallon":13, 2370 | "cylinders":8, 2371 | "displacement":318, 2372 | "horsepower":150, 2373 | "weight_in_lbs":3940, 2374 | "acceleration":13.2, 2375 | "year":"1976-01-01", 2376 | "origin":"USA" 2377 | }, 2378 | { 2379 | "name":"peugeot 504", 2380 | "miles_per_gallon":19, 2381 | "cylinders":4, 2382 | "displacement":120, 2383 | "horsepower":88, 2384 | "weight_in_lbs":3270, 2385 | "acceleration":21.9, 2386 | "year":"1976-01-01", 2387 | "origin":"Europe" 2388 | }, 2389 | { 2390 | "name":"toyota mark ii", 2391 | "miles_per_gallon":19, 2392 | "cylinders":6, 2393 | "displacement":156, 2394 | "horsepower":108, 2395 | "weight_in_lbs":2930, 2396 | "acceleration":15.5, 2397 | "year":"1976-01-01", 2398 | "origin":"Japan" 2399 | }, 2400 | { 2401 | "name":"mercedes-benz 280s", 2402 | "miles_per_gallon":16.5, 2403 | "cylinders":6, 2404 | "displacement":168, 2405 | "horsepower":120, 2406 | "weight_in_lbs":3820, 2407 | "acceleration":16.7, 2408 | "year":"1976-01-01", 2409 | "origin":"Europe" 2410 | }, 2411 | { 2412 | "name":"cadillac seville", 2413 | "miles_per_gallon":16.5, 2414 | "cylinders":8, 2415 | "displacement":350, 2416 | "horsepower":180, 2417 | "weight_in_lbs":4380, 2418 | "acceleration":12.1, 2419 | "year":"1976-01-01", 2420 | "origin":"USA" 2421 | }, 2422 | { 2423 | "name":"chevy c10", 2424 | "miles_per_gallon":13, 2425 | "cylinders":8, 2426 | "displacement":350, 2427 | "horsepower":145, 2428 | "weight_in_lbs":4055, 2429 | "acceleration":12, 2430 | "year":"1976-01-01", 2431 | "origin":"USA" 2432 | }, 2433 | { 2434 | "name":"ford f108", 2435 | "miles_per_gallon":13, 2436 | "cylinders":8, 2437 | "displacement":302, 2438 | "horsepower":130, 2439 | "weight_in_lbs":3870, 2440 | "acceleration":15, 2441 | "year":"1976-01-01", 2442 | "origin":"USA" 2443 | }, 2444 | { 2445 | "name":"dodge d100", 2446 | "miles_per_gallon":13, 2447 | "cylinders":8, 2448 | "displacement":318, 2449 | "horsepower":150, 2450 | "weight_in_lbs":3755, 2451 | "acceleration":14, 2452 | "year":"1976-01-01", 2453 | "origin":"USA" 2454 | }, 2455 | { 2456 | "name":"honda Accelerationord cvcc", 2457 | "miles_per_gallon":31.5, 2458 | "cylinders":4, 2459 | "displacement":98, 2460 | "horsepower":68, 2461 | "weight_in_lbs":2045, 2462 | "acceleration":18.5, 2463 | "year":"1977-01-01", 2464 | "origin":"Japan" 2465 | }, 2466 | { 2467 | "name":"buick opel isuzu deluxe", 2468 | "miles_per_gallon":30, 2469 | "cylinders":4, 2470 | "displacement":111, 2471 | "horsepower":80, 2472 | "weight_in_lbs":2155, 2473 | "acceleration":14.8, 2474 | "year":"1977-01-01", 2475 | "origin":"USA" 2476 | }, 2477 | { 2478 | "name":"renault 5 gtl", 2479 | "miles_per_gallon":36, 2480 | "cylinders":4, 2481 | "displacement":79, 2482 | "horsepower":58, 2483 | "weight_in_lbs":1825, 2484 | "acceleration":18.6, 2485 | "year":"1977-01-01", 2486 | "origin":"Europe" 2487 | }, 2488 | { 2489 | "name":"plymouth arrow gs", 2490 | "miles_per_gallon":25.5, 2491 | "cylinders":4, 2492 | "displacement":122, 2493 | "horsepower":96, 2494 | "weight_in_lbs":2300, 2495 | "acceleration":15.5, 2496 | "year":"1977-01-01", 2497 | "origin":"USA" 2498 | }, 2499 | { 2500 | "name":"datsun f-10 hatchback", 2501 | "miles_per_gallon":33.5, 2502 | "cylinders":4, 2503 | "displacement":85, 2504 | "horsepower":70, 2505 | "weight_in_lbs":1945, 2506 | "acceleration":16.8, 2507 | "year":"1977-01-01", 2508 | "origin":"Japan" 2509 | }, 2510 | { 2511 | "name":"chevrolet caprice classic", 2512 | "miles_per_gallon":17.5, 2513 | "cylinders":8, 2514 | "displacement":305, 2515 | "horsepower":145, 2516 | "weight_in_lbs":3880, 2517 | "acceleration":12.5, 2518 | "year":"1977-01-01", 2519 | "origin":"USA" 2520 | }, 2521 | { 2522 | "name":"oldsmobile cutlass supreme", 2523 | "miles_per_gallon":17, 2524 | "cylinders":8, 2525 | "displacement":260, 2526 | "horsepower":110, 2527 | "weight_in_lbs":4060, 2528 | "acceleration":19, 2529 | "year":"1977-01-01", 2530 | "origin":"USA" 2531 | }, 2532 | { 2533 | "name":"dodge monaco brougham", 2534 | "miles_per_gallon":15.5, 2535 | "cylinders":8, 2536 | "displacement":318, 2537 | "horsepower":145, 2538 | "weight_in_lbs":4140, 2539 | "acceleration":13.7, 2540 | "year":"1977-01-01", 2541 | "origin":"USA" 2542 | }, 2543 | { 2544 | "name":"mercury cougar brougham", 2545 | "miles_per_gallon":15, 2546 | "cylinders":8, 2547 | "displacement":302, 2548 | "horsepower":130, 2549 | "weight_in_lbs":4295, 2550 | "acceleration":14.9, 2551 | "year":"1977-01-01", 2552 | "origin":"USA" 2553 | }, 2554 | { 2555 | "name":"chevrolet concours", 2556 | "miles_per_gallon":17.5, 2557 | "cylinders":6, 2558 | "displacement":250, 2559 | "horsepower":110, 2560 | "weight_in_lbs":3520, 2561 | "acceleration":16.4, 2562 | "year":"1977-01-01", 2563 | "origin":"USA" 2564 | }, 2565 | { 2566 | "name":"buick skylark", 2567 | "miles_per_gallon":20.5, 2568 | "cylinders":6, 2569 | "displacement":231, 2570 | "horsepower":105, 2571 | "weight_in_lbs":3425, 2572 | "acceleration":16.9, 2573 | "year":"1977-01-01", 2574 | "origin":"USA" 2575 | }, 2576 | { 2577 | "name":"plymouth volare custom", 2578 | "miles_per_gallon":19, 2579 | "cylinders":6, 2580 | "displacement":225, 2581 | "horsepower":100, 2582 | "weight_in_lbs":3630, 2583 | "acceleration":17.7, 2584 | "year":"1977-01-01", 2585 | "origin":"USA" 2586 | }, 2587 | { 2588 | "name":"ford granada", 2589 | "miles_per_gallon":18.5, 2590 | "cylinders":6, 2591 | "displacement":250, 2592 | "horsepower":98, 2593 | "weight_in_lbs":3525, 2594 | "acceleration":19, 2595 | "year":"1977-01-01", 2596 | "origin":"USA" 2597 | }, 2598 | { 2599 | "name":"pontiac grand prix lj", 2600 | "miles_per_gallon":16, 2601 | "cylinders":8, 2602 | "displacement":400, 2603 | "horsepower":180, 2604 | "weight_in_lbs":4220, 2605 | "acceleration":11.1, 2606 | "year":"1977-01-01", 2607 | "origin":"USA" 2608 | }, 2609 | { 2610 | "name":"chevrolet monte carlo landau", 2611 | "miles_per_gallon":15.5, 2612 | "cylinders":8, 2613 | "displacement":350, 2614 | "horsepower":170, 2615 | "weight_in_lbs":4165, 2616 | "acceleration":11.4, 2617 | "year":"1977-01-01", 2618 | "origin":"USA" 2619 | }, 2620 | { 2621 | "name":"chrysler cordoba", 2622 | "miles_per_gallon":15.5, 2623 | "cylinders":8, 2624 | "displacement":400, 2625 | "horsepower":190, 2626 | "weight_in_lbs":4325, 2627 | "acceleration":12.2, 2628 | "year":"1977-01-01", 2629 | "origin":"USA" 2630 | }, 2631 | { 2632 | "name":"ford thunderbird", 2633 | "miles_per_gallon":16, 2634 | "cylinders":8, 2635 | "displacement":351, 2636 | "horsepower":149, 2637 | "weight_in_lbs":4335, 2638 | "acceleration":14.5, 2639 | "year":"1977-01-01", 2640 | "origin":"USA" 2641 | }, 2642 | { 2643 | "name":"volkswagen rabbit custom", 2644 | "miles_per_gallon":29, 2645 | "cylinders":4, 2646 | "displacement":97, 2647 | "horsepower":78, 2648 | "weight_in_lbs":1940, 2649 | "acceleration":14.5, 2650 | "year":"1977-01-01", 2651 | "origin":"Europe" 2652 | }, 2653 | { 2654 | "name":"pontiac sunbird coupe", 2655 | "miles_per_gallon":24.5, 2656 | "cylinders":4, 2657 | "displacement":151, 2658 | "horsepower":88, 2659 | "weight_in_lbs":2740, 2660 | "acceleration":16, 2661 | "year":"1977-01-01", 2662 | "origin":"USA" 2663 | }, 2664 | { 2665 | "name":"toyota corolla liftback", 2666 | "miles_per_gallon":26, 2667 | "cylinders":4, 2668 | "displacement":97, 2669 | "horsepower":75, 2670 | "weight_in_lbs":2265, 2671 | "acceleration":18.2, 2672 | "year":"1977-01-01", 2673 | "origin":"Japan" 2674 | }, 2675 | { 2676 | "name":"ford mustang ii 2+2", 2677 | "miles_per_gallon":25.5, 2678 | "cylinders":4, 2679 | "displacement":140, 2680 | "horsepower":89, 2681 | "weight_in_lbs":2755, 2682 | "acceleration":15.8, 2683 | "year":"1977-01-01", 2684 | "origin":"USA" 2685 | }, 2686 | { 2687 | "name":"chevrolet chevette", 2688 | "miles_per_gallon":30.5, 2689 | "cylinders":4, 2690 | "displacement":98, 2691 | "horsepower":63, 2692 | "weight_in_lbs":2051, 2693 | "acceleration":17, 2694 | "year":"1977-01-01", 2695 | "origin":"USA" 2696 | }, 2697 | { 2698 | "name":"dodge colt m/m", 2699 | "miles_per_gallon":33.5, 2700 | "cylinders":4, 2701 | "displacement":98, 2702 | "horsepower":83, 2703 | "weight_in_lbs":2075, 2704 | "acceleration":15.9, 2705 | "year":"1977-01-01", 2706 | "origin":"USA" 2707 | }, 2708 | { 2709 | "name":"subaru dl", 2710 | "miles_per_gallon":30, 2711 | "cylinders":4, 2712 | "displacement":97, 2713 | "horsepower":67, 2714 | "weight_in_lbs":1985, 2715 | "acceleration":16.4, 2716 | "year":"1977-01-01", 2717 | "origin":"Japan" 2718 | }, 2719 | { 2720 | "name":"volkswagen dasher", 2721 | "miles_per_gallon":30.5, 2722 | "cylinders":4, 2723 | "displacement":97, 2724 | "horsepower":78, 2725 | "weight_in_lbs":2190, 2726 | "acceleration":14.1, 2727 | "year":"1977-01-01", 2728 | "origin":"Europe" 2729 | }, 2730 | { 2731 | "name":"datsun 810", 2732 | "miles_per_gallon":22, 2733 | "cylinders":6, 2734 | "displacement":146, 2735 | "horsepower":97, 2736 | "weight_in_lbs":2815, 2737 | "acceleration":14.5, 2738 | "year":"1977-01-01", 2739 | "origin":"Japan" 2740 | }, 2741 | { 2742 | "name":"bmw 320i", 2743 | "miles_per_gallon":21.5, 2744 | "cylinders":4, 2745 | "displacement":121, 2746 | "horsepower":110, 2747 | "weight_in_lbs":2600, 2748 | "acceleration":12.8, 2749 | "year":"1977-01-01", 2750 | "origin":"Europe" 2751 | }, 2752 | { 2753 | "name":"mazda rx-4", 2754 | "miles_per_gallon":21.5, 2755 | "cylinders":3, 2756 | "displacement":80, 2757 | "horsepower":110, 2758 | "weight_in_lbs":2720, 2759 | "acceleration":13.5, 2760 | "year":"1977-01-01", 2761 | "origin":"Japan" 2762 | }, 2763 | { 2764 | "name":"volkswagen rabbit custom diesel", 2765 | "miles_per_gallon":43.1, 2766 | "cylinders":4, 2767 | "displacement":90, 2768 | "horsepower":48, 2769 | "weight_in_lbs":1985, 2770 | "acceleration":21.5, 2771 | "year":"1978-01-01", 2772 | "origin":"Europe" 2773 | }, 2774 | { 2775 | "name":"ford fiesta", 2776 | "miles_per_gallon":36.1, 2777 | "cylinders":4, 2778 | "displacement":98, 2779 | "horsepower":66, 2780 | "weight_in_lbs":1800, 2781 | "acceleration":14.4, 2782 | "year":"1978-01-01", 2783 | "origin":"USA" 2784 | }, 2785 | { 2786 | "name":"mazda glc deluxe", 2787 | "miles_per_gallon":32.8, 2788 | "cylinders":4, 2789 | "displacement":78, 2790 | "horsepower":52, 2791 | "weight_in_lbs":1985, 2792 | "acceleration":19.4, 2793 | "year":"1978-01-01", 2794 | "origin":"Japan" 2795 | }, 2796 | { 2797 | "name":"datsun b210 gx", 2798 | "miles_per_gallon":39.4, 2799 | "cylinders":4, 2800 | "displacement":85, 2801 | "horsepower":70, 2802 | "weight_in_lbs":2070, 2803 | "acceleration":18.6, 2804 | "year":"1978-01-01", 2805 | "origin":"Japan" 2806 | }, 2807 | { 2808 | "name":"honda civic cvcc", 2809 | "miles_per_gallon":36.1, 2810 | "cylinders":4, 2811 | "displacement":91, 2812 | "horsepower":60, 2813 | "weight_in_lbs":1800, 2814 | "acceleration":16.4, 2815 | "year":"1978-01-01", 2816 | "origin":"Japan" 2817 | }, 2818 | { 2819 | "name":"oldsmobile cutlass salon brougham", 2820 | "miles_per_gallon":19.9, 2821 | "cylinders":8, 2822 | "displacement":260, 2823 | "horsepower":110, 2824 | "weight_in_lbs":3365, 2825 | "acceleration":15.5, 2826 | "year":"1978-01-01", 2827 | "origin":"USA" 2828 | }, 2829 | { 2830 | "name":"dodge diplomat", 2831 | "miles_per_gallon":19.4, 2832 | "cylinders":8, 2833 | "displacement":318, 2834 | "horsepower":140, 2835 | "weight_in_lbs":3735, 2836 | "acceleration":13.2, 2837 | "year":"1978-01-01", 2838 | "origin":"USA" 2839 | }, 2840 | { 2841 | "name":"mercury monarch ghia", 2842 | "miles_per_gallon":20.2, 2843 | "cylinders":8, 2844 | "displacement":302, 2845 | "horsepower":139, 2846 | "weight_in_lbs":3570, 2847 | "acceleration":12.8, 2848 | "year":"1978-01-01", 2849 | "origin":"USA" 2850 | }, 2851 | { 2852 | "name":"pontiac phoenix lj", 2853 | "miles_per_gallon":19.2, 2854 | "cylinders":6, 2855 | "displacement":231, 2856 | "horsepower":105, 2857 | "weight_in_lbs":3535, 2858 | "acceleration":19.2, 2859 | "year":"1978-01-01", 2860 | "origin":"USA" 2861 | }, 2862 | { 2863 | "name":"chevrolet malibu", 2864 | "miles_per_gallon":20.5, 2865 | "cylinders":6, 2866 | "displacement":200, 2867 | "horsepower":95, 2868 | "weight_in_lbs":3155, 2869 | "acceleration":18.2, 2870 | "year":"1978-01-01", 2871 | "origin":"USA" 2872 | }, 2873 | { 2874 | "name":"ford fairmont (auto)", 2875 | "miles_per_gallon":20.2, 2876 | "cylinders":6, 2877 | "displacement":200, 2878 | "horsepower":85, 2879 | "weight_in_lbs":2965, 2880 | "acceleration":15.8, 2881 | "year":"1978-01-01", 2882 | "origin":"USA" 2883 | }, 2884 | { 2885 | "name":"ford fairmont (man)", 2886 | "miles_per_gallon":25.1, 2887 | "cylinders":4, 2888 | "displacement":140, 2889 | "horsepower":88, 2890 | "weight_in_lbs":2720, 2891 | "acceleration":15.4, 2892 | "year":"1978-01-01", 2893 | "origin":"USA" 2894 | }, 2895 | { 2896 | "name":"plymouth volare", 2897 | "miles_per_gallon":20.5, 2898 | "cylinders":6, 2899 | "displacement":225, 2900 | "horsepower":100, 2901 | "weight_in_lbs":3430, 2902 | "acceleration":17.2, 2903 | "year":"1978-01-01", 2904 | "origin":"USA" 2905 | }, 2906 | { 2907 | "name":"amc concord", 2908 | "miles_per_gallon":19.4, 2909 | "cylinders":6, 2910 | "displacement":232, 2911 | "horsepower":90, 2912 | "weight_in_lbs":3210, 2913 | "acceleration":17.2, 2914 | "year":"1978-01-01", 2915 | "origin":"USA" 2916 | }, 2917 | { 2918 | "name":"buick century special", 2919 | "miles_per_gallon":20.6, 2920 | "cylinders":6, 2921 | "displacement":231, 2922 | "horsepower":105, 2923 | "weight_in_lbs":3380, 2924 | "acceleration":15.8, 2925 | "year":"1978-01-01", 2926 | "origin":"USA" 2927 | }, 2928 | { 2929 | "name":"mercury zephyr", 2930 | "miles_per_gallon":20.8, 2931 | "cylinders":6, 2932 | "displacement":200, 2933 | "horsepower":85, 2934 | "weight_in_lbs":3070, 2935 | "acceleration":16.7, 2936 | "year":"1978-01-01", 2937 | "origin":"USA" 2938 | }, 2939 | { 2940 | "name":"dodge aspen", 2941 | "miles_per_gallon":18.6, 2942 | "cylinders":6, 2943 | "displacement":225, 2944 | "horsepower":110, 2945 | "weight_in_lbs":3620, 2946 | "acceleration":18.7, 2947 | "year":"1978-01-01", 2948 | "origin":"USA" 2949 | }, 2950 | { 2951 | "name":"amc concord d/l", 2952 | "miles_per_gallon":18.1, 2953 | "cylinders":6, 2954 | "displacement":258, 2955 | "horsepower":120, 2956 | "weight_in_lbs":3410, 2957 | "acceleration":15.1, 2958 | "year":"1978-01-01", 2959 | "origin":"USA" 2960 | }, 2961 | { 2962 | "name":"chevrolet monte carlo landau", 2963 | "miles_per_gallon":19.2, 2964 | "cylinders":8, 2965 | "displacement":305, 2966 | "horsepower":145, 2967 | "weight_in_lbs":3425, 2968 | "acceleration":13.2, 2969 | "year":"1978-01-01", 2970 | "origin":"USA" 2971 | }, 2972 | { 2973 | "name":"buick regal sport coupe (turbo)", 2974 | "miles_per_gallon":17.7, 2975 | "cylinders":6, 2976 | "displacement":231, 2977 | "horsepower":165, 2978 | "weight_in_lbs":3445, 2979 | "acceleration":13.4, 2980 | "year":"1978-01-01", 2981 | "origin":"USA" 2982 | }, 2983 | { 2984 | "name":"ford futura", 2985 | "miles_per_gallon":18.1, 2986 | "cylinders":8, 2987 | "displacement":302, 2988 | "horsepower":139, 2989 | "weight_in_lbs":3205, 2990 | "acceleration":11.2, 2991 | "year":"1978-01-01", 2992 | "origin":"USA" 2993 | }, 2994 | { 2995 | "name":"dodge magnum xe", 2996 | "miles_per_gallon":17.5, 2997 | "cylinders":8, 2998 | "displacement":318, 2999 | "horsepower":140, 3000 | "weight_in_lbs":4080, 3001 | "acceleration":13.7, 3002 | "year":"1978-01-01", 3003 | "origin":"USA" 3004 | }, 3005 | { 3006 | "name":"chevrolet chevette", 3007 | "miles_per_gallon":30, 3008 | "cylinders":4, 3009 | "displacement":98, 3010 | "horsepower":68, 3011 | "weight_in_lbs":2155, 3012 | "acceleration":16.5, 3013 | "year":"1978-01-01", 3014 | "origin":"USA" 3015 | }, 3016 | { 3017 | "name":"toyota corona", 3018 | "miles_per_gallon":27.5, 3019 | "cylinders":4, 3020 | "displacement":134, 3021 | "horsepower":95, 3022 | "weight_in_lbs":2560, 3023 | "acceleration":14.2, 3024 | "year":"1978-01-01", 3025 | "origin":"Japan" 3026 | }, 3027 | { 3028 | "name":"datsun 510", 3029 | "miles_per_gallon":27.2, 3030 | "cylinders":4, 3031 | "displacement":119, 3032 | "horsepower":97, 3033 | "weight_in_lbs":2300, 3034 | "acceleration":14.7, 3035 | "year":"1978-01-01", 3036 | "origin":"Japan" 3037 | }, 3038 | { 3039 | "name":"dodge omni", 3040 | "miles_per_gallon":30.9, 3041 | "cylinders":4, 3042 | "displacement":105, 3043 | "horsepower":75, 3044 | "weight_in_lbs":2230, 3045 | "acceleration":14.5, 3046 | "year":"1978-01-01", 3047 | "origin":"USA" 3048 | }, 3049 | { 3050 | "name":"toyota celica gt liftback", 3051 | "miles_per_gallon":21.1, 3052 | "cylinders":4, 3053 | "displacement":134, 3054 | "horsepower":95, 3055 | "weight_in_lbs":2515, 3056 | "acceleration":14.8, 3057 | "year":"1978-01-01", 3058 | "origin":"Japan" 3059 | }, 3060 | { 3061 | "name":"plymouth sapporo", 3062 | "miles_per_gallon":23.2, 3063 | "cylinders":4, 3064 | "displacement":156, 3065 | "horsepower":105, 3066 | "weight_in_lbs":2745, 3067 | "acceleration":16.7, 3068 | "year":"1978-01-01", 3069 | "origin":"USA" 3070 | }, 3071 | { 3072 | "name":"oldsmobile starfire sx", 3073 | "miles_per_gallon":23.8, 3074 | "cylinders":4, 3075 | "displacement":151, 3076 | "horsepower":85, 3077 | "weight_in_lbs":2855, 3078 | "acceleration":17.6, 3079 | "year":"1978-01-01", 3080 | "origin":"USA" 3081 | }, 3082 | { 3083 | "name":"datsun 200-sx", 3084 | "miles_per_gallon":23.9, 3085 | "cylinders":4, 3086 | "displacement":119, 3087 | "horsepower":97, 3088 | "weight_in_lbs":2405, 3089 | "acceleration":14.9, 3090 | "year":"1978-01-01", 3091 | "origin":"Japan" 3092 | }, 3093 | { 3094 | "name":"audi 5000", 3095 | "miles_per_gallon":20.3, 3096 | "cylinders":5, 3097 | "displacement":131, 3098 | "horsepower":103, 3099 | "weight_in_lbs":2830, 3100 | "acceleration":15.9, 3101 | "year":"1978-01-01", 3102 | "origin":"Europe" 3103 | }, 3104 | { 3105 | "name":"volvo 264gl", 3106 | "miles_per_gallon":17, 3107 | "cylinders":6, 3108 | "displacement":163, 3109 | "horsepower":125, 3110 | "weight_in_lbs":3140, 3111 | "acceleration":13.6, 3112 | "year":"1978-01-01", 3113 | "origin":"Europe" 3114 | }, 3115 | { 3116 | "name":"saab 99gle", 3117 | "miles_per_gallon":21.6, 3118 | "cylinders":4, 3119 | "displacement":121, 3120 | "horsepower":115, 3121 | "weight_in_lbs":2795, 3122 | "acceleration":15.7, 3123 | "year":"1978-01-01", 3124 | "origin":"Europe" 3125 | }, 3126 | { 3127 | "name":"peugeot 604sl", 3128 | "miles_per_gallon":16.2, 3129 | "cylinders":6, 3130 | "displacement":163, 3131 | "horsepower":133, 3132 | "weight_in_lbs":3410, 3133 | "acceleration":15.8, 3134 | "year":"1978-01-01", 3135 | "origin":"Europe" 3136 | }, 3137 | { 3138 | "name":"volkswagen scirocco", 3139 | "miles_per_gallon":31.5, 3140 | "cylinders":4, 3141 | "displacement":89, 3142 | "horsepower":71, 3143 | "weight_in_lbs":1990, 3144 | "acceleration":14.9, 3145 | "year":"1978-01-01", 3146 | "origin":"Europe" 3147 | }, 3148 | { 3149 | "name":"honda Accelerationord lx", 3150 | "miles_per_gallon":29.5, 3151 | "cylinders":4, 3152 | "displacement":98, 3153 | "horsepower":68, 3154 | "weight_in_lbs":2135, 3155 | "acceleration":16.6, 3156 | "year":"1978-01-01", 3157 | "origin":"Japan" 3158 | }, 3159 | { 3160 | "name":"pontiac lemans v6", 3161 | "miles_per_gallon":21.5, 3162 | "cylinders":6, 3163 | "displacement":231, 3164 | "horsepower":115, 3165 | "weight_in_lbs":3245, 3166 | "acceleration":15.4, 3167 | "year":"1979-01-01", 3168 | "origin":"USA" 3169 | }, 3170 | { 3171 | "name":"mercury zephyr 6", 3172 | "miles_per_gallon":19.8, 3173 | "cylinders":6, 3174 | "displacement":200, 3175 | "horsepower":85, 3176 | "weight_in_lbs":2990, 3177 | "acceleration":18.2, 3178 | "year":"1979-01-01", 3179 | "origin":"USA" 3180 | }, 3181 | { 3182 | "name":"ford fairmont 4", 3183 | "miles_per_gallon":22.3, 3184 | "cylinders":4, 3185 | "displacement":140, 3186 | "horsepower":88, 3187 | "weight_in_lbs":2890, 3188 | "acceleration":17.3, 3189 | "year":"1979-01-01", 3190 | "origin":"USA" 3191 | }, 3192 | { 3193 | "name":"amc concord dl 6", 3194 | "miles_per_gallon":20.2, 3195 | "cylinders":6, 3196 | "displacement":232, 3197 | "horsepower":90, 3198 | "weight_in_lbs":3265, 3199 | "acceleration":18.2, 3200 | "year":"1979-01-01", 3201 | "origin":"USA" 3202 | }, 3203 | { 3204 | "name":"dodge aspen 6", 3205 | "miles_per_gallon":20.6, 3206 | "cylinders":6, 3207 | "displacement":225, 3208 | "horsepower":110, 3209 | "weight_in_lbs":3360, 3210 | "acceleration":16.6, 3211 | "year":"1979-01-01", 3212 | "origin":"USA" 3213 | }, 3214 | { 3215 | "name":"chevrolet caprice classic", 3216 | "miles_per_gallon":17, 3217 | "cylinders":8, 3218 | "displacement":305, 3219 | "horsepower":130, 3220 | "weight_in_lbs":3840, 3221 | "acceleration":15.4, 3222 | "year":"1979-01-01", 3223 | "origin":"USA" 3224 | }, 3225 | { 3226 | "name":"ford ltd landau", 3227 | "miles_per_gallon":17.6, 3228 | "cylinders":8, 3229 | "displacement":302, 3230 | "horsepower":129, 3231 | "weight_in_lbs":3725, 3232 | "acceleration":13.4, 3233 | "year":"1979-01-01", 3234 | "origin":"USA" 3235 | }, 3236 | { 3237 | "name":"mercury grand marquis", 3238 | "miles_per_gallon":16.5, 3239 | "cylinders":8, 3240 | "displacement":351, 3241 | "horsepower":138, 3242 | "weight_in_lbs":3955, 3243 | "acceleration":13.2, 3244 | "year":"1979-01-01", 3245 | "origin":"USA" 3246 | }, 3247 | { 3248 | "name":"dodge st. regis", 3249 | "miles_per_gallon":18.2, 3250 | "cylinders":8, 3251 | "displacement":318, 3252 | "horsepower":135, 3253 | "weight_in_lbs":3830, 3254 | "acceleration":15.2, 3255 | "year":"1979-01-01", 3256 | "origin":"USA" 3257 | }, 3258 | { 3259 | "name":"buick estate wagon (sw)", 3260 | "miles_per_gallon":16.9, 3261 | "cylinders":8, 3262 | "displacement":350, 3263 | "horsepower":155, 3264 | "weight_in_lbs":4360, 3265 | "acceleration":14.9, 3266 | "year":"1979-01-01", 3267 | "origin":"USA" 3268 | }, 3269 | { 3270 | "name":"ford country squire (sw)", 3271 | "miles_per_gallon":15.5, 3272 | "cylinders":8, 3273 | "displacement":351, 3274 | "horsepower":142, 3275 | "weight_in_lbs":4054, 3276 | "acceleration":14.3, 3277 | "year":"1979-01-01", 3278 | "origin":"USA" 3279 | }, 3280 | { 3281 | "name":"chevrolet malibu classic (sw)", 3282 | "miles_per_gallon":19.2, 3283 | "cylinders":8, 3284 | "displacement":267, 3285 | "horsepower":125, 3286 | "weight_in_lbs":3605, 3287 | "acceleration":15, 3288 | "year":"1979-01-01", 3289 | "origin":"USA" 3290 | }, 3291 | { 3292 | "name":"chrysler lebaron town @ country (sw)", 3293 | "miles_per_gallon":18.5, 3294 | "cylinders":8, 3295 | "displacement":360, 3296 | "horsepower":150, 3297 | "weight_in_lbs":3940, 3298 | "acceleration":13, 3299 | "year":"1979-01-01", 3300 | "origin":"USA" 3301 | }, 3302 | { 3303 | "name":"vw rabbit custom", 3304 | "miles_per_gallon":31.9, 3305 | "cylinders":4, 3306 | "displacement":89, 3307 | "horsepower":71, 3308 | "weight_in_lbs":1925, 3309 | "acceleration":14, 3310 | "year":"1979-01-01", 3311 | "origin":"Europe" 3312 | }, 3313 | { 3314 | "name":"maxda glc deluxe", 3315 | "miles_per_gallon":34.1, 3316 | "cylinders":4, 3317 | "displacement":86, 3318 | "horsepower":65, 3319 | "weight_in_lbs":1975, 3320 | "acceleration":15.2, 3321 | "year":"1979-01-01", 3322 | "origin":"Japan" 3323 | }, 3324 | { 3325 | "name":"dodge colt hatchback custom", 3326 | "miles_per_gallon":35.7, 3327 | "cylinders":4, 3328 | "displacement":98, 3329 | "horsepower":80, 3330 | "weight_in_lbs":1915, 3331 | "acceleration":14.4, 3332 | "year":"1979-01-01", 3333 | "origin":"USA" 3334 | }, 3335 | { 3336 | "name":"amc spirit dl", 3337 | "miles_per_gallon":27.4, 3338 | "cylinders":4, 3339 | "displacement":121, 3340 | "horsepower":80, 3341 | "weight_in_lbs":2670, 3342 | "acceleration":15, 3343 | "year":"1979-01-01", 3344 | "origin":"USA" 3345 | }, 3346 | { 3347 | "name":"mercedes benz 300d", 3348 | "miles_per_gallon":25.4, 3349 | "cylinders":5, 3350 | "displacement":183, 3351 | "horsepower":77, 3352 | "weight_in_lbs":3530, 3353 | "acceleration":20.1, 3354 | "year":"1979-01-01", 3355 | "origin":"Europe" 3356 | }, 3357 | { 3358 | "name":"cadillac eldorado", 3359 | "miles_per_gallon":23, 3360 | "cylinders":8, 3361 | "displacement":350, 3362 | "horsepower":125, 3363 | "weight_in_lbs":3900, 3364 | "acceleration":17.4, 3365 | "year":"1979-01-01", 3366 | "origin":"USA" 3367 | }, 3368 | { 3369 | "name":"peugeot 504", 3370 | "miles_per_gallon":27.2, 3371 | "cylinders":4, 3372 | "displacement":141, 3373 | "horsepower":71, 3374 | "weight_in_lbs":3190, 3375 | "acceleration":24.8, 3376 | "year":"1979-01-01", 3377 | "origin":"Europe" 3378 | }, 3379 | { 3380 | "name":"oldsmobile cutlass salon brougham", 3381 | "miles_per_gallon":23.9, 3382 | "cylinders":8, 3383 | "displacement":260, 3384 | "horsepower":90, 3385 | "weight_in_lbs":3420, 3386 | "acceleration":22.2, 3387 | "year":"1979-01-01", 3388 | "origin":"USA" 3389 | }, 3390 | { 3391 | "name":"plymouth horizon", 3392 | "miles_per_gallon":34.2, 3393 | "cylinders":4, 3394 | "displacement":105, 3395 | "horsepower":70, 3396 | "weight_in_lbs":2200, 3397 | "acceleration":13.2, 3398 | "year":"1979-01-01", 3399 | "origin":"USA" 3400 | }, 3401 | { 3402 | "name":"plymouth horizon tc3", 3403 | "miles_per_gallon":34.5, 3404 | "cylinders":4, 3405 | "displacement":105, 3406 | "horsepower":70, 3407 | "weight_in_lbs":2150, 3408 | "acceleration":14.9, 3409 | "year":"1979-01-01", 3410 | "origin":"USA" 3411 | }, 3412 | { 3413 | "name":"datsun 210", 3414 | "miles_per_gallon":31.8, 3415 | "cylinders":4, 3416 | "displacement":85, 3417 | "horsepower":65, 3418 | "weight_in_lbs":2020, 3419 | "acceleration":19.2, 3420 | "year":"1979-01-01", 3421 | "origin":"Japan" 3422 | }, 3423 | { 3424 | "name":"fiat strada custom", 3425 | "miles_per_gallon":37.3, 3426 | "cylinders":4, 3427 | "displacement":91, 3428 | "horsepower":69, 3429 | "weight_in_lbs":2130, 3430 | "acceleration":14.7, 3431 | "year":"1979-01-01", 3432 | "origin":"Europe" 3433 | }, 3434 | { 3435 | "name":"buick skylark limited", 3436 | "miles_per_gallon":28.4, 3437 | "cylinders":4, 3438 | "displacement":151, 3439 | "horsepower":90, 3440 | "weight_in_lbs":2670, 3441 | "acceleration":16, 3442 | "year":"1979-01-01", 3443 | "origin":"USA" 3444 | }, 3445 | { 3446 | "name":"chevrolet citation", 3447 | "miles_per_gallon":28.8, 3448 | "cylinders":6, 3449 | "displacement":173, 3450 | "horsepower":115, 3451 | "weight_in_lbs":2595, 3452 | "acceleration":11.3, 3453 | "year":"1979-01-01", 3454 | "origin":"USA" 3455 | }, 3456 | { 3457 | "name":"oldsmobile omega brougham", 3458 | "miles_per_gallon":26.8, 3459 | "cylinders":6, 3460 | "displacement":173, 3461 | "horsepower":115, 3462 | "weight_in_lbs":2700, 3463 | "acceleration":12.9, 3464 | "year":"1979-01-01", 3465 | "origin":"USA" 3466 | }, 3467 | { 3468 | "name":"pontiac phoenix", 3469 | "miles_per_gallon":33.5, 3470 | "cylinders":4, 3471 | "displacement":151, 3472 | "horsepower":90, 3473 | "weight_in_lbs":2556, 3474 | "acceleration":13.2, 3475 | "year":"1979-01-01", 3476 | "origin":"USA" 3477 | }, 3478 | { 3479 | "name":"vw rabbit", 3480 | "miles_per_gallon":41.5, 3481 | "cylinders":4, 3482 | "displacement":98, 3483 | "horsepower":76, 3484 | "weight_in_lbs":2144, 3485 | "acceleration":14.7, 3486 | "year":"1980-01-01", 3487 | "origin":"Europe" 3488 | }, 3489 | { 3490 | "name":"toyota corolla tercel", 3491 | "miles_per_gallon":38.1, 3492 | "cylinders":4, 3493 | "displacement":89, 3494 | "horsepower":60, 3495 | "weight_in_lbs":1968, 3496 | "acceleration":18.8, 3497 | "year":"1980-01-01", 3498 | "origin":"Japan" 3499 | }, 3500 | { 3501 | "name":"chevrolet chevette", 3502 | "miles_per_gallon":32.1, 3503 | "cylinders":4, 3504 | "displacement":98, 3505 | "horsepower":70, 3506 | "weight_in_lbs":2120, 3507 | "acceleration":15.5, 3508 | "year":"1980-01-01", 3509 | "origin":"USA" 3510 | }, 3511 | { 3512 | "name":"datsun 310", 3513 | "miles_per_gallon":37.2, 3514 | "cylinders":4, 3515 | "displacement":86, 3516 | "horsepower":65, 3517 | "weight_in_lbs":2019, 3518 | "acceleration":16.4, 3519 | "year":"1980-01-01", 3520 | "origin":"Japan" 3521 | }, 3522 | { 3523 | "name":"chevrolet citation", 3524 | "miles_per_gallon":28, 3525 | "cylinders":4, 3526 | "displacement":151, 3527 | "horsepower":90, 3528 | "weight_in_lbs":2678, 3529 | "acceleration":16.5, 3530 | "year":"1980-01-01", 3531 | "origin":"USA" 3532 | }, 3533 | { 3534 | "name":"ford fairmont", 3535 | "miles_per_gallon":26.4, 3536 | "cylinders":4, 3537 | "displacement":140, 3538 | "horsepower":88, 3539 | "weight_in_lbs":2870, 3540 | "acceleration":18.1, 3541 | "year":"1980-01-01", 3542 | "origin":"USA" 3543 | }, 3544 | { 3545 | "name":"amc concord", 3546 | "miles_per_gallon":24.3, 3547 | "cylinders":4, 3548 | "displacement":151, 3549 | "horsepower":90, 3550 | "weight_in_lbs":3003, 3551 | "acceleration":20.1, 3552 | "year":"1980-01-01", 3553 | "origin":"USA" 3554 | }, 3555 | { 3556 | "name":"dodge aspen", 3557 | "miles_per_gallon":19.1, 3558 | "cylinders":6, 3559 | "displacement":225, 3560 | "horsepower":90, 3561 | "weight_in_lbs":3381, 3562 | "acceleration":18.7, 3563 | "year":"1980-01-01", 3564 | "origin":"USA" 3565 | }, 3566 | { 3567 | "name":"audi 4000", 3568 | "miles_per_gallon":34.3, 3569 | "cylinders":4, 3570 | "displacement":97, 3571 | "horsepower":78, 3572 | "weight_in_lbs":2188, 3573 | "acceleration":15.8, 3574 | "year":"1980-01-01", 3575 | "origin":"Europe" 3576 | }, 3577 | { 3578 | "name":"toyota corona liftback", 3579 | "miles_per_gallon":29.8, 3580 | "cylinders":4, 3581 | "displacement":134, 3582 | "horsepower":90, 3583 | "weight_in_lbs":2711, 3584 | "acceleration":15.5, 3585 | "year":"1980-01-01", 3586 | "origin":"Japan" 3587 | }, 3588 | { 3589 | "name":"mazda 626", 3590 | "miles_per_gallon":31.3, 3591 | "cylinders":4, 3592 | "displacement":120, 3593 | "horsepower":75, 3594 | "weight_in_lbs":2542, 3595 | "acceleration":17.5, 3596 | "year":"1980-01-01", 3597 | "origin":"Japan" 3598 | }, 3599 | { 3600 | "name":"datsun 510 hatchback", 3601 | "miles_per_gallon":37, 3602 | "cylinders":4, 3603 | "displacement":119, 3604 | "horsepower":92, 3605 | "weight_in_lbs":2434, 3606 | "acceleration":15, 3607 | "year":"1980-01-01", 3608 | "origin":"Japan" 3609 | }, 3610 | { 3611 | "name":"toyota corolla", 3612 | "miles_per_gallon":32.2, 3613 | "cylinders":4, 3614 | "displacement":108, 3615 | "horsepower":75, 3616 | "weight_in_lbs":2265, 3617 | "acceleration":15.2, 3618 | "year":"1980-01-01", 3619 | "origin":"Japan" 3620 | }, 3621 | { 3622 | "name":"mazda glc", 3623 | "miles_per_gallon":46.6, 3624 | "cylinders":4, 3625 | "displacement":86, 3626 | "horsepower":65, 3627 | "weight_in_lbs":2110, 3628 | "acceleration":17.9, 3629 | "year":"1980-01-01", 3630 | "origin":"Japan" 3631 | }, 3632 | { 3633 | "name":"dodge colt", 3634 | "miles_per_gallon":27.9, 3635 | "cylinders":4, 3636 | "displacement":156, 3637 | "horsepower":105, 3638 | "weight_in_lbs":2800, 3639 | "acceleration":14.4, 3640 | "year":"1980-01-01", 3641 | "origin":"USA" 3642 | }, 3643 | { 3644 | "name":"datsun 210", 3645 | "miles_per_gallon":40.8, 3646 | "cylinders":4, 3647 | "displacement":85, 3648 | "horsepower":65, 3649 | "weight_in_lbs":2110, 3650 | "acceleration":19.2, 3651 | "year":"1980-01-01", 3652 | "origin":"Japan" 3653 | }, 3654 | { 3655 | "name":"vw rabbit c (diesel)", 3656 | "miles_per_gallon":44.3, 3657 | "cylinders":4, 3658 | "displacement":90, 3659 | "horsepower":48, 3660 | "weight_in_lbs":2085, 3661 | "acceleration":21.7, 3662 | "year":"1980-01-01", 3663 | "origin":"Europe" 3664 | }, 3665 | { 3666 | "name":"vw dasher (diesel)", 3667 | "miles_per_gallon":43.4, 3668 | "cylinders":4, 3669 | "displacement":90, 3670 | "horsepower":48, 3671 | "weight_in_lbs":2335, 3672 | "acceleration":23.7, 3673 | "year":"1980-01-01", 3674 | "origin":"Europe" 3675 | }, 3676 | { 3677 | "name":"audi 5000s (diesel)", 3678 | "miles_per_gallon":36.4, 3679 | "cylinders":5, 3680 | "displacement":121, 3681 | "horsepower":67, 3682 | "weight_in_lbs":2950, 3683 | "acceleration":19.9, 3684 | "year":"1980-01-01", 3685 | "origin":"Europe" 3686 | }, 3687 | { 3688 | "name":"mercedes-benz 240d", 3689 | "miles_per_gallon":30, 3690 | "cylinders":4, 3691 | "displacement":146, 3692 | "horsepower":67, 3693 | "weight_in_lbs":3250, 3694 | "acceleration":21.8, 3695 | "year":"1980-01-01", 3696 | "origin":"Europe" 3697 | }, 3698 | { 3699 | "name":"honda civic 1500 gl", 3700 | "miles_per_gallon":44.6, 3701 | "cylinders":4, 3702 | "displacement":91, 3703 | "horsepower":67, 3704 | "weight_in_lbs":1850, 3705 | "acceleration":13.8, 3706 | "year":"1980-01-01", 3707 | "origin":"Japan" 3708 | }, 3709 | { 3710 | "name":"renault lecar deluxe", 3711 | "miles_per_gallon":40.9, 3712 | "cylinders":4, 3713 | "displacement":85, 3714 | "horsepower":null, 3715 | "weight_in_lbs":1835, 3716 | "acceleration":17.3, 3717 | "year":"1980-01-01", 3718 | "origin":"Europe" 3719 | }, 3720 | { 3721 | "name":"subaru dl", 3722 | "miles_per_gallon":33.8, 3723 | "cylinders":4, 3724 | "displacement":97, 3725 | "horsepower":67, 3726 | "weight_in_lbs":2145, 3727 | "acceleration":18, 3728 | "year":"1980-01-01", 3729 | "origin":"Japan" 3730 | }, 3731 | { 3732 | "name":"vokswagen rabbit", 3733 | "miles_per_gallon":29.8, 3734 | "cylinders":4, 3735 | "displacement":89, 3736 | "horsepower":62, 3737 | "weight_in_lbs":1845, 3738 | "acceleration":15.3, 3739 | "year":"1980-01-01", 3740 | "origin":"Europe" 3741 | }, 3742 | { 3743 | "name":"datsun 280-zx", 3744 | "miles_per_gallon":32.7, 3745 | "cylinders":6, 3746 | "displacement":168, 3747 | "horsepower":132, 3748 | "weight_in_lbs":2910, 3749 | "acceleration":11.4, 3750 | "year":"1980-01-01", 3751 | "origin":"Japan" 3752 | }, 3753 | { 3754 | "name":"mazda rx-7 gs", 3755 | "miles_per_gallon":23.7, 3756 | "cylinders":3, 3757 | "displacement":70, 3758 | "horsepower":100, 3759 | "weight_in_lbs":2420, 3760 | "acceleration":12.5, 3761 | "year":"1980-01-01", 3762 | "origin":"Japan" 3763 | }, 3764 | { 3765 | "name":"triumph tr7 coupe", 3766 | "miles_per_gallon":35, 3767 | "cylinders":4, 3768 | "displacement":122, 3769 | "horsepower":88, 3770 | "weight_in_lbs":2500, 3771 | "acceleration":15.1, 3772 | "year":"1980-01-01", 3773 | "origin":"Europe" 3774 | }, 3775 | { 3776 | "name":"ford mustang cobra", 3777 | "miles_per_gallon":23.6, 3778 | "cylinders":4, 3779 | "displacement":140, 3780 | "horsepower":null, 3781 | "weight_in_lbs":2905, 3782 | "acceleration":14.3, 3783 | "year":"1980-01-01", 3784 | "origin":"USA" 3785 | }, 3786 | { 3787 | "name":"honda Accelerationord", 3788 | "miles_per_gallon":32.4, 3789 | "cylinders":4, 3790 | "displacement":107, 3791 | "horsepower":72, 3792 | "weight_in_lbs":2290, 3793 | "acceleration":17, 3794 | "year":"1980-01-01", 3795 | "origin":"Japan" 3796 | }, 3797 | { 3798 | "name":"plymouth reliant", 3799 | "miles_per_gallon":27.2, 3800 | "cylinders":4, 3801 | "displacement":135, 3802 | "horsepower":84, 3803 | "weight_in_lbs":2490, 3804 | "acceleration":15.7, 3805 | "year":"1982-01-01", 3806 | "origin":"USA" 3807 | }, 3808 | { 3809 | "name":"buick skylark", 3810 | "miles_per_gallon":26.6, 3811 | "cylinders":4, 3812 | "displacement":151, 3813 | "horsepower":84, 3814 | "weight_in_lbs":2635, 3815 | "acceleration":16.4, 3816 | "year":"1982-01-01", 3817 | "origin":"USA" 3818 | }, 3819 | { 3820 | "name":"dodge aries wagon (sw)", 3821 | "miles_per_gallon":25.8, 3822 | "cylinders":4, 3823 | "displacement":156, 3824 | "horsepower":92, 3825 | "weight_in_lbs":2620, 3826 | "acceleration":14.4, 3827 | "year":"1982-01-01", 3828 | "origin":"USA" 3829 | }, 3830 | { 3831 | "name":"chevrolet citation", 3832 | "miles_per_gallon":23.5, 3833 | "cylinders":6, 3834 | "displacement":173, 3835 | "horsepower":110, 3836 | "weight_in_lbs":2725, 3837 | "acceleration":12.6, 3838 | "year":"1982-01-01", 3839 | "origin":"USA" 3840 | }, 3841 | { 3842 | "name":"plymouth reliant", 3843 | "miles_per_gallon":30, 3844 | "cylinders":4, 3845 | "displacement":135, 3846 | "horsepower":84, 3847 | "weight_in_lbs":2385, 3848 | "acceleration":12.9, 3849 | "year":"1982-01-01", 3850 | "origin":"USA" 3851 | }, 3852 | { 3853 | "name":"toyota starlet", 3854 | "miles_per_gallon":39.1, 3855 | "cylinders":4, 3856 | "displacement":79, 3857 | "horsepower":58, 3858 | "weight_in_lbs":1755, 3859 | "acceleration":16.9, 3860 | "year":"1982-01-01", 3861 | "origin":"Japan" 3862 | }, 3863 | { 3864 | "name":"plymouth champ", 3865 | "miles_per_gallon":39, 3866 | "cylinders":4, 3867 | "displacement":86, 3868 | "horsepower":64, 3869 | "weight_in_lbs":1875, 3870 | "acceleration":16.4, 3871 | "year":"1982-01-01", 3872 | "origin":"USA" 3873 | }, 3874 | { 3875 | "name":"honda civic 1300", 3876 | "miles_per_gallon":35.1, 3877 | "cylinders":4, 3878 | "displacement":81, 3879 | "horsepower":60, 3880 | "weight_in_lbs":1760, 3881 | "acceleration":16.1, 3882 | "year":"1982-01-01", 3883 | "origin":"Japan" 3884 | }, 3885 | { 3886 | "name":"subaru", 3887 | "miles_per_gallon":32.3, 3888 | "cylinders":4, 3889 | "displacement":97, 3890 | "horsepower":67, 3891 | "weight_in_lbs":2065, 3892 | "acceleration":17.8, 3893 | "year":"1982-01-01", 3894 | "origin":"Japan" 3895 | }, 3896 | { 3897 | "name":"datsun 210", 3898 | "miles_per_gallon":37, 3899 | "cylinders":4, 3900 | "displacement":85, 3901 | "horsepower":65, 3902 | "weight_in_lbs":1975, 3903 | "acceleration":19.4, 3904 | "year":"1982-01-01", 3905 | "origin":"Japan" 3906 | }, 3907 | { 3908 | "name":"toyota tercel", 3909 | "miles_per_gallon":37.7, 3910 | "cylinders":4, 3911 | "displacement":89, 3912 | "horsepower":62, 3913 | "weight_in_lbs":2050, 3914 | "acceleration":17.3, 3915 | "year":"1982-01-01", 3916 | "origin":"Japan" 3917 | }, 3918 | { 3919 | "name":"mazda glc 4", 3920 | "miles_per_gallon":34.1, 3921 | "cylinders":4, 3922 | "displacement":91, 3923 | "horsepower":68, 3924 | "weight_in_lbs":1985, 3925 | "acceleration":16, 3926 | "year":"1982-01-01", 3927 | "origin":"Japan" 3928 | }, 3929 | { 3930 | "name":"plymouth horizon 4", 3931 | "miles_per_gallon":34.7, 3932 | "cylinders":4, 3933 | "displacement":105, 3934 | "horsepower":63, 3935 | "weight_in_lbs":2215, 3936 | "acceleration":14.9, 3937 | "year":"1982-01-01", 3938 | "origin":"USA" 3939 | }, 3940 | { 3941 | "name":"ford escort 4w", 3942 | "miles_per_gallon":34.4, 3943 | "cylinders":4, 3944 | "displacement":98, 3945 | "horsepower":65, 3946 | "weight_in_lbs":2045, 3947 | "acceleration":16.2, 3948 | "year":"1982-01-01", 3949 | "origin":"USA" 3950 | }, 3951 | { 3952 | "name":"ford escort 2h", 3953 | "miles_per_gallon":29.9, 3954 | "cylinders":4, 3955 | "displacement":98, 3956 | "horsepower":65, 3957 | "weight_in_lbs":2380, 3958 | "acceleration":20.7, 3959 | "year":"1982-01-01", 3960 | "origin":"USA" 3961 | }, 3962 | { 3963 | "name":"volkswagen jetta", 3964 | "miles_per_gallon":33, 3965 | "cylinders":4, 3966 | "displacement":105, 3967 | "horsepower":74, 3968 | "weight_in_lbs":2190, 3969 | "acceleration":14.2, 3970 | "year":"1982-01-01", 3971 | "origin":"Europe" 3972 | }, 3973 | { 3974 | "name":"renault 18i", 3975 | "miles_per_gallon":34.5, 3976 | "cylinders":4, 3977 | "displacement":100, 3978 | "horsepower":null, 3979 | "weight_in_lbs":2320, 3980 | "acceleration":15.8, 3981 | "year":"1982-01-01", 3982 | "origin":"Europe" 3983 | }, 3984 | { 3985 | "name":"honda prelude", 3986 | "miles_per_gallon":33.7, 3987 | "cylinders":4, 3988 | "displacement":107, 3989 | "horsepower":75, 3990 | "weight_in_lbs":2210, 3991 | "acceleration":14.4, 3992 | "year":"1982-01-01", 3993 | "origin":"Japan" 3994 | }, 3995 | { 3996 | "name":"toyota corolla", 3997 | "miles_per_gallon":32.4, 3998 | "cylinders":4, 3999 | "displacement":108, 4000 | "horsepower":75, 4001 | "weight_in_lbs":2350, 4002 | "acceleration":16.8, 4003 | "year":"1982-01-01", 4004 | "origin":"Japan" 4005 | }, 4006 | { 4007 | "name":"datsun 200sx", 4008 | "miles_per_gallon":32.9, 4009 | "cylinders":4, 4010 | "displacement":119, 4011 | "horsepower":100, 4012 | "weight_in_lbs":2615, 4013 | "acceleration":14.8, 4014 | "year":"1982-01-01", 4015 | "origin":"Japan" 4016 | }, 4017 | { 4018 | "name":"mazda 626", 4019 | "miles_per_gallon":31.6, 4020 | "cylinders":4, 4021 | "displacement":120, 4022 | "horsepower":74, 4023 | "weight_in_lbs":2635, 4024 | "acceleration":18.3, 4025 | "year":"1982-01-01", 4026 | "origin":"Japan" 4027 | }, 4028 | { 4029 | "name":"peugeot 505s turbo diesel", 4030 | "miles_per_gallon":28.1, 4031 | "cylinders":4, 4032 | "displacement":141, 4033 | "horsepower":80, 4034 | "weight_in_lbs":3230, 4035 | "acceleration":20.4, 4036 | "year":"1982-01-01", 4037 | "origin":"Europe" 4038 | }, 4039 | { 4040 | "name":"saab 900s", 4041 | "miles_per_gallon":null, 4042 | "cylinders":4, 4043 | "displacement":121, 4044 | "horsepower":110, 4045 | "weight_in_lbs":2800, 4046 | "acceleration":15.4, 4047 | "year":"1982-01-01", 4048 | "origin":"Europe" 4049 | }, 4050 | { 4051 | "name":"volvo diesel", 4052 | "miles_per_gallon":30.7, 4053 | "cylinders":6, 4054 | "displacement":145, 4055 | "horsepower":76, 4056 | "weight_in_lbs":3160, 4057 | "acceleration":19.6, 4058 | "year":"1982-01-01", 4059 | "origin":"Europe" 4060 | }, 4061 | { 4062 | "name":"toyota cressida", 4063 | "miles_per_gallon":25.4, 4064 | "cylinders":6, 4065 | "displacement":168, 4066 | "horsepower":116, 4067 | "weight_in_lbs":2900, 4068 | "acceleration":12.6, 4069 | "year":"1982-01-01", 4070 | "origin":"Japan" 4071 | }, 4072 | { 4073 | "name":"datsun 810 maxima", 4074 | "miles_per_gallon":24.2, 4075 | "cylinders":6, 4076 | "displacement":146, 4077 | "horsepower":120, 4078 | "weight_in_lbs":2930, 4079 | "acceleration":13.8, 4080 | "year":"1982-01-01", 4081 | "origin":"Japan" 4082 | }, 4083 | { 4084 | "name":"buick century", 4085 | "miles_per_gallon":22.4, 4086 | "cylinders":6, 4087 | "displacement":231, 4088 | "horsepower":110, 4089 | "weight_in_lbs":3415, 4090 | "acceleration":15.8, 4091 | "year":"1982-01-01", 4092 | "origin":"USA" 4093 | }, 4094 | { 4095 | "name":"oldsmobile cutlass ls", 4096 | "miles_per_gallon":26.6, 4097 | "cylinders":8, 4098 | "displacement":350, 4099 | "horsepower":105, 4100 | "weight_in_lbs":3725, 4101 | "acceleration":19, 4102 | "year":"1982-01-01", 4103 | "origin":"USA" 4104 | }, 4105 | { 4106 | "name":"ford granada gl", 4107 | "miles_per_gallon":20.2, 4108 | "cylinders":6, 4109 | "displacement":200, 4110 | "horsepower":88, 4111 | "weight_in_lbs":3060, 4112 | "acceleration":17.1, 4113 | "year":"1982-01-01", 4114 | "origin":"USA" 4115 | }, 4116 | { 4117 | "name":"chrysler lebaron salon", 4118 | "miles_per_gallon":17.6, 4119 | "cylinders":6, 4120 | "displacement":225, 4121 | "horsepower":85, 4122 | "weight_in_lbs":3465, 4123 | "acceleration":16.6, 4124 | "year":"1982-01-01", 4125 | "origin":"USA" 4126 | }, 4127 | { 4128 | "name":"chevrolet cavalier", 4129 | "miles_per_gallon":28, 4130 | "cylinders":4, 4131 | "displacement":112, 4132 | "horsepower":88, 4133 | "weight_in_lbs":2605, 4134 | "acceleration":19.6, 4135 | "year":"1982-01-01", 4136 | "origin":"USA" 4137 | }, 4138 | { 4139 | "name":"chevrolet cavalier wagon", 4140 | "miles_per_gallon":27, 4141 | "cylinders":4, 4142 | "displacement":112, 4143 | "horsepower":88, 4144 | "weight_in_lbs":2640, 4145 | "acceleration":18.6, 4146 | "year":"1982-01-01", 4147 | "origin":"USA" 4148 | }, 4149 | { 4150 | "name":"chevrolet cavalier 2-door", 4151 | "miles_per_gallon":34, 4152 | "cylinders":4, 4153 | "displacement":112, 4154 | "horsepower":88, 4155 | "weight_in_lbs":2395, 4156 | "acceleration":18, 4157 | "year":"1982-01-01", 4158 | "origin":"USA" 4159 | }, 4160 | { 4161 | "name":"pontiac j2000 se hatchback", 4162 | "miles_per_gallon":31, 4163 | "cylinders":4, 4164 | "displacement":112, 4165 | "horsepower":85, 4166 | "weight_in_lbs":2575, 4167 | "acceleration":16.2, 4168 | "year":"1982-01-01", 4169 | "origin":"USA" 4170 | }, 4171 | { 4172 | "name":"dodge aries se", 4173 | "miles_per_gallon":29, 4174 | "cylinders":4, 4175 | "displacement":135, 4176 | "horsepower":84, 4177 | "weight_in_lbs":2525, 4178 | "acceleration":16, 4179 | "year":"1982-01-01", 4180 | "origin":"USA" 4181 | }, 4182 | { 4183 | "name":"pontiac phoenix", 4184 | "miles_per_gallon":27, 4185 | "cylinders":4, 4186 | "displacement":151, 4187 | "horsepower":90, 4188 | "weight_in_lbs":2735, 4189 | "acceleration":18, 4190 | "year":"1982-01-01", 4191 | "origin":"USA" 4192 | }, 4193 | { 4194 | "name":"ford fairmont futura", 4195 | "miles_per_gallon":24, 4196 | "cylinders":4, 4197 | "displacement":140, 4198 | "horsepower":92, 4199 | "weight_in_lbs":2865, 4200 | "acceleration":16.4, 4201 | "year":"1982-01-01", 4202 | "origin":"USA" 4203 | }, 4204 | { 4205 | "name":"amc concord dl", 4206 | "miles_per_gallon":23, 4207 | "cylinders":4, 4208 | "displacement":151, 4209 | "horsepower":null, 4210 | "weight_in_lbs":3035, 4211 | "acceleration":20.5, 4212 | "year":"1982-01-01", 4213 | "origin":"USA" 4214 | }, 4215 | { 4216 | "name":"volkswagen rabbit l", 4217 | "miles_per_gallon":36, 4218 | "cylinders":4, 4219 | "displacement":105, 4220 | "horsepower":74, 4221 | "weight_in_lbs":1980, 4222 | "acceleration":15.3, 4223 | "year":"1982-01-01", 4224 | "origin":"Europe" 4225 | }, 4226 | { 4227 | "name":"mazda glc custom l", 4228 | "miles_per_gallon":37, 4229 | "cylinders":4, 4230 | "displacement":91, 4231 | "horsepower":68, 4232 | "weight_in_lbs":2025, 4233 | "acceleration":18.2, 4234 | "year":"1982-01-01", 4235 | "origin":"Japan" 4236 | }, 4237 | { 4238 | "name":"mazda glc custom", 4239 | "miles_per_gallon":31, 4240 | "cylinders":4, 4241 | "displacement":91, 4242 | "horsepower":68, 4243 | "weight_in_lbs":1970, 4244 | "acceleration":17.6, 4245 | "year":"1982-01-01", 4246 | "origin":"Japan" 4247 | }, 4248 | { 4249 | "name":"plymouth horizon miser", 4250 | "miles_per_gallon":38, 4251 | "cylinders":4, 4252 | "displacement":105, 4253 | "horsepower":63, 4254 | "weight_in_lbs":2125, 4255 | "acceleration":14.7, 4256 | "year":"1982-01-01", 4257 | "origin":"USA" 4258 | }, 4259 | { 4260 | "name":"mercury lynx l", 4261 | "miles_per_gallon":36, 4262 | "cylinders":4, 4263 | "displacement":98, 4264 | "horsepower":70, 4265 | "weight_in_lbs":2125, 4266 | "acceleration":17.3, 4267 | "year":"1982-01-01", 4268 | "origin":"USA" 4269 | }, 4270 | { 4271 | "name":"nissan stanza xe", 4272 | "miles_per_gallon":36, 4273 | "cylinders":4, 4274 | "displacement":120, 4275 | "horsepower":88, 4276 | "weight_in_lbs":2160, 4277 | "acceleration":14.5, 4278 | "year":"1982-01-01", 4279 | "origin":"Japan" 4280 | }, 4281 | { 4282 | "name":"honda Accelerationord", 4283 | "miles_per_gallon":36, 4284 | "cylinders":4, 4285 | "displacement":107, 4286 | "horsepower":75, 4287 | "weight_in_lbs":2205, 4288 | "acceleration":14.5, 4289 | "year":"1982-01-01", 4290 | "origin":"Japan" 4291 | }, 4292 | { 4293 | "name":"toyota corolla", 4294 | "miles_per_gallon":34, 4295 | "cylinders":4, 4296 | "displacement":108, 4297 | "horsepower":70, 4298 | "weight_in_lbs":2245, 4299 | "acceleration":16.9, 4300 | "year":"1982-01-01", 4301 | "origin":"Japan" 4302 | }, 4303 | { 4304 | "name":"honda civic", 4305 | "miles_per_gallon":38, 4306 | "cylinders":4, 4307 | "displacement":91, 4308 | "horsepower":67, 4309 | "weight_in_lbs":1965, 4310 | "acceleration":15, 4311 | "year":"1982-01-01", 4312 | "origin":"Japan" 4313 | }, 4314 | { 4315 | "name":"honda civic (auto)", 4316 | "miles_per_gallon":32, 4317 | "cylinders":4, 4318 | "displacement":91, 4319 | "horsepower":67, 4320 | "weight_in_lbs":1965, 4321 | "acceleration":15.7, 4322 | "year":"1982-01-01", 4323 | "origin":"Japan" 4324 | }, 4325 | { 4326 | "name":"datsun 310 gx", 4327 | "miles_per_gallon":38, 4328 | "cylinders":4, 4329 | "displacement":91, 4330 | "horsepower":67, 4331 | "weight_in_lbs":1995, 4332 | "acceleration":16.2, 4333 | "year":"1982-01-01", 4334 | "origin":"Japan" 4335 | }, 4336 | { 4337 | "name":"buick century limited", 4338 | "miles_per_gallon":25, 4339 | "cylinders":6, 4340 | "displacement":181, 4341 | "horsepower":110, 4342 | "weight_in_lbs":2945, 4343 | "acceleration":16.4, 4344 | "year":"1982-01-01", 4345 | "origin":"USA" 4346 | }, 4347 | { 4348 | "name":"oldsmobile cutlass ciera (diesel)", 4349 | "miles_per_gallon":38, 4350 | "cylinders":6, 4351 | "displacement":262, 4352 | "horsepower":85, 4353 | "weight_in_lbs":3015, 4354 | "acceleration":17, 4355 | "year":"1982-01-01", 4356 | "origin":"USA" 4357 | }, 4358 | { 4359 | "name":"chrysler lebaron medallion", 4360 | "miles_per_gallon":26, 4361 | "cylinders":4, 4362 | "displacement":156, 4363 | "horsepower":92, 4364 | "weight_in_lbs":2585, 4365 | "acceleration":14.5, 4366 | "year":"1982-01-01", 4367 | "origin":"USA" 4368 | }, 4369 | { 4370 | "name":"ford granada l", 4371 | "miles_per_gallon":22, 4372 | "cylinders":6, 4373 | "displacement":232, 4374 | "horsepower":112, 4375 | "weight_in_lbs":2835, 4376 | "acceleration":14.7, 4377 | "year":"1982-01-01", 4378 | "origin":"USA" 4379 | }, 4380 | { 4381 | "name":"toyota celica gt", 4382 | "miles_per_gallon":32, 4383 | "cylinders":4, 4384 | "displacement":144, 4385 | "horsepower":96, 4386 | "weight_in_lbs":2665, 4387 | "acceleration":13.9, 4388 | "year":"1982-01-01", 4389 | "origin":"Japan" 4390 | }, 4391 | { 4392 | "name":"dodge charger 2.2", 4393 | "miles_per_gallon":36, 4394 | "cylinders":4, 4395 | "displacement":135, 4396 | "horsepower":84, 4397 | "weight_in_lbs":2370, 4398 | "acceleration":13, 4399 | "year":"1982-01-01", 4400 | "origin":"USA" 4401 | }, 4402 | { 4403 | "name":"chevrolet camaro", 4404 | "miles_per_gallon":27, 4405 | "cylinders":4, 4406 | "displacement":151, 4407 | "horsepower":90, 4408 | "weight_in_lbs":2950, 4409 | "acceleration":17.3, 4410 | "year":"1982-01-01", 4411 | "origin":"USA" 4412 | }, 4413 | { 4414 | "name":"ford mustang gl", 4415 | "miles_per_gallon":27, 4416 | "cylinders":4, 4417 | "displacement":140, 4418 | "horsepower":86, 4419 | "weight_in_lbs":2790, 4420 | "acceleration":15.6, 4421 | "year":"1982-01-01", 4422 | "origin":"USA" 4423 | }, 4424 | { 4425 | "name":"vw pickup", 4426 | "miles_per_gallon":44, 4427 | "cylinders":4, 4428 | "displacement":97, 4429 | "horsepower":52, 4430 | "weight_in_lbs":2130, 4431 | "acceleration":24.6, 4432 | "year":"1982-01-01", 4433 | "origin":"Europe" 4434 | }, 4435 | { 4436 | "name":"dodge rampage", 4437 | "miles_per_gallon":32, 4438 | "cylinders":4, 4439 | "displacement":135, 4440 | "horsepower":84, 4441 | "weight_in_lbs":2295, 4442 | "acceleration":11.6, 4443 | "year":"1982-01-01", 4444 | "origin":"USA" 4445 | }, 4446 | { 4447 | "name":"ford ranger", 4448 | "miles_per_gallon":28, 4449 | "cylinders":4, 4450 | "displacement":120, 4451 | "horsepower":79, 4452 | "weight_in_lbs":2625, 4453 | "acceleration":18.6, 4454 | "year":"1982-01-01", 4455 | "origin":"USA" 4456 | }, 4457 | { 4458 | "name":"chevy s-10", 4459 | "miles_per_gallon":31, 4460 | "cylinders":4, 4461 | "displacement":119, 4462 | "horsepower":82, 4463 | "weight_in_lbs":2720, 4464 | "acceleration":19.4, 4465 | "year":"1982-01-01", 4466 | "origin":"USA" 4467 | } 4468 | ] 4469 | --------------------------------------------------------------------------------