{"action":"created","comment":{"url":"https://api.github.com/repos/ihmeuw/cascade/pulls/comments/205635115","pull_request_review_id":140947673,"id":205635115,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNTYzNTExNQ==","diff_hunk":"@@ -0,0 +1,519 @@\n+\"\"\"\n+This describes the tables in the sqlite file that Dismod reads.\n+\"\"\"\n+import enum\n+import logging\n+\n+from sqlalchemy.ext.declarative import declarative_base\n+from sqlalchemy import Column, Integer, String, Float, Enum, ForeignKey\n+\n+\n+LOGGER = logging.getLogger(\"cascade_at.dm_file_format.dmtables\")\n+\n+Base = declarative_base()\n+\n+\n+class Age(Base):\n+    __tablename__ = \"age\"\n+\n+    age_id = Column(Integer(), primary_key=True)\n+    age = Column(Float(), unique=True, nullable=False)\n+\n+\n+class Time(Base):\n+    __tablename__ = \"time\"\n+\n+    time_id = Column(Integer(), primary_key=True)\n+    time = Column(Float(), unique=True, nullable=False)\n+\n+\n+class IntegrandEnum(enum.Enum):\n+    Sincidence = 0\n+    remission = 1\n+    mtexcess = 2\n+    mtother = 3\n+    mtwith = 4\n+    susceptible = 5\n+    withC = 6\n+    prevalence = 7\n+    Tincidence = 8\n+    mtspecific = 9\n+    mtall = 10\n+    mtstandard = 11\n+    relrisk = 12\n+\n+\n+class Integrand(Base):\n+    \"\"\"These are the names of the integrands, taken from IntegrandEnum\"\"\"\n+\n+    __tablename__ = \"integrand\"\n+\n+    integrand_id = Column(Integer(), primary_key=True)\n+    integrand_name = Column(Enum(IntegrandEnum), unique=True, nullable=False)\n+    \"\"\"\n+    Each integrand may appear only once. Unused integrands need not be added.\n+    \"\"\"\n+\n+\n+class DensityEnum(enum.Enum):\n+    uniform = 0\n+    gaussian = 1\n+    laplace = 2\n+    students = 3\n+    log_gaussian = 4\n+    log_laplace = 5\n+    log_students = 6\n+\n+\n+class Density(Base):\n+    __tablename__ = \"density\"\n+\n+    density_id = Column(Integer(), primary_key=True)\n+    density_name = Column(Enum(DensityEnum), unique=True, nullable=False)\n+\n+\n+class Covariate(Base):\n+    \"\"\"The names of covariates and some reference values\"\"\"\n+\n+    __tablename__ = \"covariate\"\n+\n+    covariate_id = Column(Integer(), primary_key=True)\n+    covariate_name = Column(String(), nullable=False, unique=True)\n+    reference = Column(Float(), nullable=False)\n+    \"\"\"The value of the covariate that corresponds to no adjustment\"\"\"\n+    max_difference = Column(Float(), nullable=True)\n+    \"\"\"\n+    Maximum absolute difference from the reference value. Must be greater\n+    than or equal to zero. Null is interpreted as positive infinity, which\n+    means no exclusion is done for this covariate.\n+    \"\"\"\n+\n+\n+class Node(Base):\n+    \"\"\"\n+    These are locations, and they form a hierarchy, specified through parent.\n+    \"\"\"\n+\n+    __tablename__ = \"node\"\n+\n+    node_id = Column(Integer(), primary_key=True)\n+    node_name = Column(String(), nullable=False, unique=True)\n+    parent = Column(Integer, nullable=True)  # Parent is an id in _this_ table.\n+\n+\n+class Prior(Base):\n+    __tablename__ = \"prior\"\n+\n+    prior_id = Column(Integer(), primary_key=True)\n+    prior_name = Column(String(), unique=True)\n+    lower = Column(Float())  # can be null\n+    upper = Column(Float())  # can be null\n+    mean = Column(Float())\n+    std = Column(Float())\n+    density_id = Column(None, ForeignKey(\"density.density_id\"))\n+    eta = Column(Float())\n+    nu = Column(Float())\n+\n+\n+class Weight(Base):\n+    __tablename__ = \"weight\"\n+\n+    weight_id = Column(Integer(), primary_key=True)\n+    weight_name = Column(String(), unique=True)\n+    n_age = Column(Integer())\n+    \"\"\"The number of age values in the smoothing grid. Greater than zero\"\"\"\n+    n_time = Column(Integer())\n+    \"\"\"The number of time values in the smoothing grid. Greater than zero\"\"\"\n+\n+\n+class WeightGrid(Base):\n+    __tablename__ = \"weight_grid\"\n+\n+    weight_grid_id = Column(Integer(), primary_key=True)\n+    weight_id = Column(None, ForeignKey(\"weight.weight_id\"))\n+    age_id = Column(None, ForeignKey(\"age.age_id\"))\n+    time_id = Column(None, ForeignKey(\"time.time_id\"))\n+    weight = Column(Float())\n+    \"\"\"This is the weight for this age, time, and weight id.\"\"\"\n+\n+\n+class Smooth(Base):\n+    __tablename__ = \"smooth\"\n+\n+    smooth_id = Column(Integer(), primary_key=True)\n+    smooth_name = Column(String(), unique=True)\n+    n_age = Column(Integer())\n+    \"\"\"The number of age values in the smoothing grid. Greater than zero\"\"\"\n+\n+    n_time = Column(Integer())\n+    \"\"\"The number of time values in the smoothing grid. Greater than zero\"\"\"\n+\n+    mulstd_value_prior_id = Column(None, ForeignKey(\"prior.prior_id\"), nullable=True)\n+    \"\"\"The prior_id for the variable that multiplies the value_prior_id\n+    standard deviations for this smooth_id\"\"\"\n+\n+    mulstd_dage_prior_id = Column(None, ForeignKey(\"prior.prior_id\"), nullable=True)\n+    \"\"\"The prior_id for the variable that multiplies the age_prior_id\n+    standard deviations for this smooth_id\"\"\"\n+\n+    mulstd_dtime_prior_id = Column(None, ForeignKey(\"prior.prior_id\"), nullable=True)\n+    \"\"\"The prior_id for the variable that multiplies the dtime_prior_id\n+    standard deviations for this smooth_id\"\"\"\n+\n+\n+class SmoothGrid(Base):\n+    __tablename__ = \"smooth_grid\"\n+\n+    smooth_grid_id = Column(Integer(), primary_key=True)\n+    smooth_id = Column(Integer(), unique=True)\n+    age_id = Column(None, ForeignKey(\"age.age_id\"))\n+    time_id = Column(None, ForeignKey(\"time.time_id\"))\n+    value_prior_id = Column(Integer(), nullable=True)\n+    \"\"\"A prior_id. If null, const_value must not be null.\"\"\"\n+\n+    dage_prior_id = Column(Integer(), nullable=True)\n+    \"\"\"A prior_id. If null, const_value must not be null.\"\"\"\n+\n+    dtime_prior_id = Column(Integer(), nullable=True)\n+    \"\"\"A prior_id. If null, const_value must not be null.\"\"\"\n+\n+    const_value = Column(Float(), nullable=True)\n+    \"\"\"If non-null, specifies the value of the function at the corresponding\n+    age and time. It sets lower, upper, and mean to this value and density\n+    to uniform. If null, value_prior_id must not be null.\"\"\"\n+\n+\n+class NSList(Base):\n+    __tablename__ = \"nslist\"\n+\n+    nslist_id = Column(Integer(), primary_key=True)\n+    nslist_name = Column(String(), unique=True)\n+\n+\n+class NSListPair(Base):\n+    \"\"\"Associates a node with a smoothing\"\"\"\n+\n+    __tablename__ = \"nslist_pair\"\n+\n+    nslist_pair_id = Column(Integer(), primary_key=True)\n+    nslist_id = Column(None, ForeignKey(\"nslist.nslist_id\"))\n+    node_id = Column(None, ForeignKey(\"node.node_id\"))\n+    smooth_id = Column(None, ForeignKey(\"smooth.smooth_id\"))\n+\n+\n+class RateName(enum.Enum):\n+    pini = 0\n+    iota = 1\n+    rho = 2\n+    chi = 3\n+    omega = 4\n+\n+\n+class Rate(Base):\n+    __tablename__ = \"rate\"\n+\n+    rate_id = Column(Integer(), primary_key=True)\n+    rate_name = Column(Enum(RateName))\n+    parent_smooth_id = Column(None, ForeignKey(\"smooth.smooth_id\"), nullable=True)\n+    \"\"\"If null, then parent rate is always zero and no model variables are\n+    allocated for it\"\"\"\n+\n+    child_smooth_id = Column(None, ForeignKey(\"smooth.smooth_id\"), nullable=True)\n+    child_nslist_id = Column(None, ForeignKey(\"nslist.nslist_id\"), nullable=True)\n+    \"\"\"If not null, identifies a list of node and smoothing pairs. The\n+    node_id for each of the children must appear in the list. The corresponding\n+    smoothing is used for that child and the rate corresponding to this\n+    row of the rate table.\"\"\"\n+\n+\n+class MulCovEnum(enum.Enum):\n+    rate_value = 0\n+    meas_value = 1\n+    meas_std = 2\n+\n+\n+class MulCov(Base):\n+    \"\"\"Covariate multipliers and their priors.\n+\n+    If this is empty, there are no covariate multipliers in the model.\n+    \"\"\"\n+\n+    __tablename__ = \"mulcov\"\n+\n+    mulcov_id = Column(Integer(), primary_key=True)\n+    mulcov_type = Column(Enum(MulCovEnum), nullable=False)\n+    rate_id = Column(None, ForeignKey(\"rate.rate_id\"), nullable=True)\n+    \"\"\"Determines the rate that this covariate and multiplier affects.\n+    If mulcov_type is of type meas_value or meas_std, this must be null.\"\"\"\n+    integrand_id = Column(None, ForeignKey(\"integrand.integrand_id\"), nullable=True)\n+    covariate_id = Column(None, ForeignKey(\"covariate.covariate_id\"), nullable=False)\n+    smooth_id = Column(None, ForeignKey(\"smooth.smooth_id\"), nullable=True)\n+    \"\"\"If this is null, the covariabe multiplier is always zero and no\n+    model_variables are allocated for it.\"\"\"\n+\n+\n+class AvgInt(Base):\n+    __tablename__ = \"avgint\"\n+\n+    avgint_id = Column(Integer(), primary_key=True)\n+    integrand_id = Column(None, ForeignKey(\"integrand.integrand_id\"))\n+    node_id = Column(None, ForeignKey(\"node.node_id\"))\n+    weight_id = Column(None, ForeignKey(\"weight.weight_id\"))\n+    age_lower = Column(Float())\n+    age_upper = Column(Float())\n+    time_lower = Column(Float())\n+    time_upper = Column(Float())\n+    # Greg label = Column(String())\n+\n+\n+class Data(Base):\n+    __tablename__ = \"data\"\n+\n+    data_id = Column(Integer(), primary_key=True)\n+    data_name = Column(String(), unique=True)\n+    \"\"\"This is in the docs but not in the code.\"\"\"\n+\n+    integrand_id = Column(None, ForeignKey(\"integrand.integrand_id\"))\n+    node_id = Column(None, ForeignKey(\"node.node_id\"))\n+    weight_id = Column(None, ForeignKey(\"weight.weight_id\"))\n+    age_lower = Column(Float())\n+    age_upper = Column(Float())\n+    time_lower = Column(Float())\n+    time_upper = Column(Float())\n+    hold_out = Column(Integer())\n+    \"\"\"Zero or one for hold outs during fit command\"\"\"\n+    density_id = Column(Integer())\n+    meas_value = Column(Float())\n+    meas_std = Column(Float())\n+    eta = Column(Float(), nullable=True)\n+    nu = Column(Float(), nullable=True)\n+    # Greg sample_size = Column(Float())\n+\n+\n+class Option(Base):\n+    __tablename__ = \"option\"\n+\n+    option_id = Column(Integer(), primary_key=True)\n+    option_name = Column(String(), unique=True)\n+    option_value = Column(String())\n+\n+\n+class Constraint(Base):\n+    \"\"\"Greg shows this table, but it's not in Brad's docs.\"\"\"\n+\n+    __tablename__ = \"constraint_table\"\n+\n+    constraint_id = Column(Integer(), primary_key=True)\n+    integrand_id = Column(Integer())\n+    density_id = Column(Integer())\n+    node_id = Column(Integer())\n+    weight_id = Column(Integer())\n+    hold_out = Column(Integer())\n+    meas_value = Column(Float())\n+    meas_std = Column(Float())\n+    age_lower = Column(Float())\n+    age_upper = Column(Float())\n+    time_lower = Column(Float())\n+    time_upper = Column(Float())\n+\n+\n+class CascadeOption(Base):\n+    \"\"\"\n+    Greg shows this table, but it's not in Brad's docs.\n+    \"\"\"\n+\n+    __tablename__ = \"cascade_option_table\"\n+\n+    cascade_option_id = Column(Integer(), primary_key=True)\n+    cascade_option_name = Column(String(), unique=True)\n+    cascade_option_value = Column(String())\n+\n+\n+class DataSubset(Base):\n+    \"\"\"\n+    Output, identifies which rows of the data table are included in\n+    the fit data subset table.\n+    \"\"\"\n+\n+    __tablename__ = \"data_subset\"\n+    __readonly__ = True\n+\n+    data_subset_id = Column(Integer(), primary_key=True)\n+    data_id = Column(None, ForeignKey(\"data.data_id\"))\n+\n+\n+class DependVar(Base):\n+    \"\"\"\n+    Output, created by the depend command. Diagnostic to see whether the model\n+    has more variables than necessary.\n+    \"\"\"\n+\n+    __tablename__ = \"depend_var_table\"","path":"src/cascade/dismod/db/metadata.py","position":351,"original_position":351,"commit_id":"aab087610852d6c51aafcf96e83ac5a183fdebf9","original_commit_id":"aab087610852d6c51aafcf96e83ac5a183fdebf9","user":{"login":"nrhawkins","id":4511783,"node_id":"MDQ6VXNlcjQ1MTE3ODM=","avatar_url":"https://avatars3.githubusercontent.com/u/4511783?v=4","gravatar_id":"","url":"https://api.github.com/users/nrhawkins","html_url":"https://github.com/nrhawkins","followers_url":"https://api.github.com/users/nrhawkins/followers","following_url":"https://api.github.com/users/nrhawkins/following{/other_user}","gists_url":"https://api.github.com/users/nrhawkins/gists{/gist_id}","starred_url":"https://api.github.com/users/nrhawkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nrhawkins/subscriptions","organizations_url":"https://api.github.com/users/nrhawkins/orgs","repos_url":"https://api.github.com/users/nrhawkins/repos","events_url":"https://api.github.com/users/nrhawkins/events{/privacy}","received_events_url":"https://api.github.com/users/nrhawkins/received_events","type":"User","site_admin":false},"body":"Maybe just \"depend_var\"?","created_at":"2018-07-26T23:54:36Z","updated_at":"2018-07-26T23:54:36Z","html_url":"https://github.com/ihmeuw/cascade/pull/5#discussion_r205635115","pull_request_url":"https://api.github.com/repos/ihmeuw/cascade/pulls/5","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/comments/205635115"},"html":{"href":"https://github.com/ihmeuw/cascade/pull/5#discussion_r205635115"},"pull_request":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/5"}}},"pull_request":{"url":"https://api.github.com/repos/ihmeuw/cascade/pulls/5","id":204270147,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0MjcwMTQ3","html_url":"https://github.com/ihmeuw/cascade/pull/5","diff_url":"https://github.com/ihmeuw/cascade/pull/5.diff","patch_url":"https://github.com/ihmeuw/cascade/pull/5.patch","issue_url":"https://api.github.com/repos/ihmeuw/cascade/issues/5","number":5,"state":"open","locked":false,"title":"Alec/feature/integrate drews dismod db wrapper","user":{"login":"alec-deason","id":419770,"node_id":"MDQ6VXNlcjQxOTc3MA==","avatar_url":"https://avatars3.githubusercontent.com/u/419770?v=4","gravatar_id":"","url":"https://api.github.com/users/alec-deason","html_url":"https://github.com/alec-deason","followers_url":"https://api.github.com/users/alec-deason/followers","following_url":"https://api.github.com/users/alec-deason/following{/other_user}","gists_url":"https://api.github.com/users/alec-deason/gists{/gist_id}","starred_url":"https://api.github.com/users/alec-deason/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alec-deason/subscriptions","organizations_url":"https://api.github.com/users/alec-deason/orgs","repos_url":"https://api.github.com/users/alec-deason/repos","events_url":"https://api.github.com/users/alec-deason/events{/privacy}","received_events_url":"https://api.github.com/users/alec-deason/received_events","type":"User","site_admin":false},"body":"The main difference between this and Drew's initial version (https://stash.ihme.washington.edu/projects/DIS/repos/cascade_at/pull-requests/69/overview) is that it stores data in memory until it is explicitly flushed and it updates the names of the tables to what I think is currently the correct names.","created_at":"2018-07-26T21:19:35Z","updated_at":"2018-07-26T23:54:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93d10440b770f0bb9ea994369940bda01175c3ae","assignee":null,"assignees":[],"requested_reviewers":[{"login":"adolgert","id":760985,"node_id":"MDQ6VXNlcjc2MDk4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/760985?v=4","gravatar_id":"","url":"https://api.github.com/users/adolgert","html_url":"https://github.com/adolgert","followers_url":"https://api.github.com/users/adolgert/followers","following_url":"https://api.github.com/users/adolgert/following{/other_user}","gists_url":"https://api.github.com/users/adolgert/gists{/gist_id}","starred_url":"https://api.github.com/users/adolgert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adolgert/subscriptions","organizations_url":"https://api.github.com/users/adolgert/orgs","repos_url":"https://api.github.com/users/adolgert/repos","events_url":"https://api.github.com/users/adolgert/events{/privacy}","received_events_url":"https://api.github.com/users/adolgert/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ihmeuw/cascade/pulls/5/commits","review_comments_url":"https://api.github.com/repos/ihmeuw/cascade/pulls/5/comments","review_comment_url":"https://api.github.com/repos/ihmeuw/cascade/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ihmeuw/cascade/issues/5/comments","statuses_url":"https://api.github.com/repos/ihmeuw/cascade/statuses/aab087610852d6c51aafcf96e83ac5a183fdebf9","head":{"label":"ihmeuw:alec/feature/integrate-drews-dismod-db-wrapper","ref":"alec/feature/integrate-drews-dismod-db-wrapper","sha":"aab087610852d6c51aafcf96e83ac5a183fdebf9","user":{"login":"ihmeuw","id":4683173,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODMxNzM=","avatar_url":"https://avatars1.githubusercontent.com/u/4683173?v=4","gravatar_id":"","url":"https://api.github.com/users/ihmeuw","html_url":"https://github.com/ihmeuw","followers_url":"https://api.github.com/users/ihmeuw/followers","following_url":"https://api.github.com/users/ihmeuw/following{/other_user}","gists_url":"https://api.github.com/users/ihmeuw/gists{/gist_id}","starred_url":"https://api.github.com/users/ihmeuw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihmeuw/subscriptions","organizations_url":"https://api.github.com/users/ihmeuw/orgs","repos_url":"https://api.github.com/users/ihmeuw/repos","events_url":"https://api.github.com/users/ihmeuw/events{/privacy}","received_events_url":"https://api.github.com/users/ihmeuw/received_events","type":"Organization","site_admin":false},"repo":{"id":140491515,"node_id":"MDEwOlJlcG9zaXRvcnkxNDA0OTE1MTU=","name":"cascade","full_name":"ihmeuw/cascade","owner":{"login":"ihmeuw","id":4683173,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODMxNzM=","avatar_url":"https://avatars1.githubusercontent.com/u/4683173?v=4","gravatar_id":"","url":"https://api.github.com/users/ihmeuw","html_url":"https://github.com/ihmeuw","followers_url":"https://api.github.com/users/ihmeuw/followers","following_url":"https://api.github.com/users/ihmeuw/following{/other_user}","gists_url":"https://api.github.com/users/ihmeuw/gists{/gist_id}","starred_url":"https://api.github.com/users/ihmeuw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihmeuw/subscriptions","organizations_url":"https://api.github.com/users/ihmeuw/orgs","repos_url":"https://api.github.com/users/ihmeuw/repos","events_url":"https://api.github.com/users/ihmeuw/events{/privacy}","received_events_url":"https://api.github.com/users/ihmeuw/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ihmeuw/cascade","description":"Multi-stage hierarchical estimation of disease processes on demographic observations","fork":false,"url":"https://api.github.com/repos/ihmeuw/cascade","forks_url":"https://api.github.com/repos/ihmeuw/cascade/forks","keys_url":"https://api.github.com/repos/ihmeuw/cascade/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ihmeuw/cascade/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ihmeuw/cascade/teams","hooks_url":"https://api.github.com/repos/ihmeuw/cascade/hooks","issue_events_url":"https://api.github.com/repos/ihmeuw/cascade/issues/events{/number}","events_url":"https://api.github.com/repos/ihmeuw/cascade/events","assignees_url":"https://api.github.com/repos/ihmeuw/cascade/assignees{/user}","branches_url":"https://api.github.com/repos/ihmeuw/cascade/branches{/branch}","tags_url":"https://api.github.com/repos/ihmeuw/cascade/tags","blobs_url":"https://api.github.com/repos/ihmeuw/cascade/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ihmeuw/cascade/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ihmeuw/cascade/git/refs{/sha}","trees_url":"https://api.github.com/repos/ihmeuw/cascade/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ihmeuw/cascade/statuses/{sha}","languages_url":"https://api.github.com/repos/ihmeuw/cascade/languages","stargazers_url":"https://api.github.com/repos/ihmeuw/cascade/stargazers","contributors_url":"https://api.github.com/repos/ihmeuw/cascade/contributors","subscribers_url":"https://api.github.com/repos/ihmeuw/cascade/subscribers","subscription_url":"https://api.github.com/repos/ihmeuw/cascade/subscription","commits_url":"https://api.github.com/repos/ihmeuw/cascade/commits{/sha}","git_commits_url":"https://api.github.com/repos/ihmeuw/cascade/git/commits{/sha}","comments_url":"https://api.github.com/repos/ihmeuw/cascade/comments{/number}","issue_comment_url":"https://api.github.com/repos/ihmeuw/cascade/issues/comments{/number}","contents_url":"https://api.github.com/repos/ihmeuw/cascade/contents/{+path}","compare_url":"https://api.github.com/repos/ihmeuw/cascade/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ihmeuw/cascade/merges","archive_url":"https://api.github.com/repos/ihmeuw/cascade/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ihmeuw/cascade/downloads","issues_url":"https://api.github.com/repos/ihmeuw/cascade/issues{/number}","pulls_url":"https://api.github.com/repos/ihmeuw/cascade/pulls{/number}","milestones_url":"https://api.github.com/repos/ihmeuw/cascade/milestones{/number}","notifications_url":"https://api.github.com/repos/ihmeuw/cascade/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ihmeuw/cascade/labels{/name}","releases_url":"https://api.github.com/repos/ihmeuw/cascade/releases{/id}","deployments_url":"https://api.github.com/repos/ihmeuw/cascade/deployments","created_at":"2018-07-10T22:01:19Z","updated_at":"2018-07-26T22:46:34Z","pushed_at":"2018-07-26T22:46:33Z","git_url":"git://github.com/ihmeuw/cascade.git","ssh_url":"git@github.com:ihmeuw/cascade.git","clone_url":"https://github.com/ihmeuw/cascade.git","svn_url":"https://github.com/ihmeuw/cascade","homepage":null,"size":58,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":4,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"ihmeuw:develop","ref":"develop","sha":"44f6209e018708c3c3d13d312b234c7524d3b749","user":{"login":"ihmeuw","id":4683173,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODMxNzM=","avatar_url":"https://avatars1.githubusercontent.com/u/4683173?v=4","gravatar_id":"","url":"https://api.github.com/users/ihmeuw","html_url":"https://github.com/ihmeuw","followers_url":"https://api.github.com/users/ihmeuw/followers","following_url":"https://api.github.com/users/ihmeuw/following{/other_user}","gists_url":"https://api.github.com/users/ihmeuw/gists{/gist_id}","starred_url":"https://api.github.com/users/ihmeuw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihmeuw/subscriptions","organizations_url":"https://api.github.com/users/ihmeuw/orgs","repos_url":"https://api.github.com/users/ihmeuw/repos","events_url":"https://api.github.com/users/ihmeuw/events{/privacy}","received_events_url":"https://api.github.com/users/ihmeuw/received_events","type":"Organization","site_admin":false},"repo":{"id":140491515,"node_id":"MDEwOlJlcG9zaXRvcnkxNDA0OTE1MTU=","name":"cascade","full_name":"ihmeuw/cascade","owner":{"login":"ihmeuw","id":4683173,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ2ODMxNzM=","avatar_url":"https://avatars1.githubusercontent.com/u/4683173?v=4","gravatar_id":"","url":"https://api.github.com/users/ihmeuw","html_url":"https://github.com/ihmeuw","followers_url":"https://api.github.com/users/ihmeuw/followers","following_url":"https://api.github.com/users/ihmeuw/following{/other_user}","gists_url":"https://api.github.com/users/ihmeuw/gists{/gist_id}","starred_url":"https://api.github.com/users/ihmeuw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihmeuw/subscriptions","organizations_url":"https://api.github.com/users/ihmeuw/orgs","repos_url":"https://api.github.com/users/ihmeuw/repos","events_url":"https://api.github.com/users/ihmeuw/events{/privacy}","received_events_url":"https://api.github.com/users/ihmeuw/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ihmeuw/cascade","description":"Multi-stage hierarchical estimation of disease processes on demographic observations","fork":false,"url":"https://api.github.com/repos/ihmeuw/cascade","forks_url":"https://api.github.com/repos/ihmeuw/cascade/forks","keys_url":"https://api.github.com/repos/ihmeuw/cascade/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ihmeuw/cascade/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ihmeuw/cascade/teams","hooks_url":"https://api.github.com/repos/ihmeuw/cascade/hooks","issue_events_url":"https://api.github.com/repos/ihmeuw/cascade/issues/events{/number}","events_url":"https://api.github.com/repos/ihmeuw/cascade/events","assignees_url":"https://api.github.com/repos/ihmeuw/cascade/assignees{/user}","branches_url":"https://api.github.com/repos/ihmeuw/cascade/branches{/branch}","tags_url":"https://api.github.com/repos/ihmeuw/cascade/tags","blobs_url":"https://api.github.com/repos/ihmeuw/cascade/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ihmeuw/cascade/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ihmeuw/cascade/git/refs{/sha}","trees_url":"https://api.github.com/repos/ihmeuw/cascade/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ihmeuw/cascade/statuses/{sha}","languages_url":"https://api.github.com/repos/ihmeuw/cascade/languages","stargazers_url":"https://api.github.com/repos/ihmeuw/cascade/stargazers","contributors_url":"https://api.github.com/repos/ihmeuw/cascade/contributors","subscribers_url":"https://api.github.com/repos/ihmeuw/cascade/subscribers","subscription_url":"https://api.github.com/repos/ihmeuw/cascade/subscription","commits_url":"https://api.github.com/repos/ihmeuw/cascade/commits{/sha}","git_commits_url":"https://api.github.com/repos/ihmeuw/cascade/git/commits{/sha}","comments_url":"https://api.github.com/repos/ihmeuw/cascade/comments{/number}","issue_comment_url":"https://api.github.com/repos/ihmeuw/cascade/issues/comments{/number}","contents_url":"https://api.github.com/repos/ihmeuw/cascade/contents/{+path}","compare_url":"https://api.github.com/repos/ihmeuw/cascade/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ihmeuw/cascade/merges","archive_url":"https://api.github.com/repos/ihmeuw/cascade/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ihmeuw/cascade/downloads","issues_url":"https://api.github.com/repos/ihmeuw/cascade/issues{/number}","pulls_url":"https://api.github.com/repos/ihmeuw/cascade/pulls{/number}","milestones_url":"https://api.github.com/repos/ihmeuw/cascade/milestones{/number}","notifications_url":"https://api.github.com/repos/ihmeuw/cascade/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ihmeuw/cascade/labels{/name}","releases_url":"https://api.github.com/repos/ihmeuw/cascade/releases{/id}","deployments_url":"https://api.github.com/repos/ihmeuw/cascade/deployments","created_at":"2018-07-10T22:01:19Z","updated_at":"2018-07-26T22:46:34Z","pushed_at":"2018-07-26T22:46:33Z","git_url":"git://github.com/ihmeuw/cascade.git","ssh_url":"git@github.com:ihmeuw/cascade.git","clone_url":"https://github.com/ihmeuw/cascade.git","svn_url":"https://github.com/ihmeuw/cascade","homepage":null,"size":58,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":4,"open_issues":1,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/5"},"html":{"href":"https://github.com/ihmeuw/cascade/pull/5"},"issue":{"href":"https://api.github.com/repos/ihmeuw/cascade/issues/5"},"comments":{"href":"https://api.github.com/repos/ihmeuw/cascade/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ihmeuw/cascade/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/ihmeuw/cascade/statuses/aab087610852d6c51aafcf96e83ac5a183fdebf9"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"nrhawkins"}}