示例#1
0
class BaseAttr(db.Model):
    __abstract__ = True
    __table_args__ = {"schema": "attrs"}
    id = db.Column(db.String(10), primary_key=True)
    name = db.Column(db.String())
    HEADERS = ["id", "name"]

    @classmethod
    def parents(cls, attr_id):
        raise Exception("Not implemented!")

    @classmethod
    def children(cls, attr_id):
        raise Exception("Not implemented!")

    def serialize(self):
        return {
            key: val
            for key, val in self.__dict__.items() if not key.startswith("_")
        }

    def data_serialize(self):
        return [self.id, self.name]

    def __repr__(self):
        return '<{}, id: {}, name: {}>'.format(self.__class__, self.id,
                                               self.name)
示例#2
0
class PumsNaics(BaseAttr, ImageAttr):
    __tablename__ = 'pums_naics'
    __table_args__ = {"schema": "pums_attrs"}
    id = db.Column(db.String(10), primary_key=True)
    level = db.Column(db.Integer, primary_key=True)
    parent = db.Column(db.String, db.ForeignKey(id))
    grandparent = db.Column(db.String, db.ForeignKey(id))

    @classmethod
    def children(cls, naics_id, **kwargs):
        objs = PumsNaics.query.filter(PumsNaics.parent == naics_id)
        data = [[obj.id, obj.name] for obj in objs if obj.id != naics_id]
        return data, PumsNaics.HEADERS

    @classmethod
    def parents(cls, naics_id, **kwargs):
        naics_obj = PumsNaics.query.filter_by(id=naics_id).first()
        tmp = []
        if naics_obj and naics_obj.grandparent:
            tmp.append(
                PumsNaics.query.filter_by(id=naics_obj.grandparent).first())
        if naics_obj and naics_obj.parent:
            tmp.append(PumsNaics.query.filter_by(id=naics_obj.parent).first())
        tmp = [[x.id, x.name] for x in tmp if x]
        return tmp, PumsNaics.HEADERS
示例#3
0
class YgcPostDischarge(AutomapBase, DartmouthBase):
    __tablename__ = 'ygc_post_discharge'
    median_moe = 2

    cohort = db.Column(db.String(), primary_key=True)

    @classmethod
    def get_supported_levels(cls):
        return {"geo": [ALL, NATION, STATE, COUNTY], "cohort": [ALL]}
示例#4
0
class SkillBySoc(BaseOnet, SkillId):
    __tablename__ = "skills_by_soc"
    median_moe = 1

    soc = db.Column(db.String(), primary_key=True)
    value = db.Column(db.Float)
    value_rca = db.Column(db.Float)

    @classmethod
    def get_supported_levels(cls):
        return {"soc": ["all"], "skill": ["all"]}
示例#5
0
class NonMedUsePainMeds(BaseOpiods):
    __tablename__ = "non_medical_use_of_pain_releivers"
    median_moe = 1
    source_title = 'National Survey on Drug Use and Health'
    source_org = 'SAMHSA, Center for Behavioral Health Statistics and Quality'
    source_link = 'https://nsduhweb.rti.org/respweb/homepage.cfm'
    start_year = db.Column(db.Integer(), primary_key=True)
    year = db.Column(db.Integer(), primary_key=True)

    non_medical_use_of_pain_relievers = db.Column(db.String())
    non_medical_use_of_pain_relievers_lci = db.Column(db.String())
    non_medical_use_of_pain_relievers_uci = db.Column(db.String())

    @classmethod
    def get_supported_levels(cls):
        return {
            "year": [ALL],
            "start_year": [ALL],
            "geo": [ALL, NATION, STATE]
        }
示例#6
0
class HealthYg(AutomapBase, db.Model, BaseModel):
    __table_args__ = {"schema": "chr"}
    source_title = 'County Health Rankings'
    source_link = 'http://www.countyhealthrankings.org/'
    source_org = 'University of Wisconsin'
    __tablename__ = 'yg'
    median_moe = 1

    year = db.Column(db.String(), primary_key=True)
    geo = db.Column(db.String(), primary_key=True)

    @classmethod
    def get_supported_levels(cls):
        return {"geo": [ALL, STATE, COUNTY]}

    @classmethod
    def geo_filter(cls, level):
        if level == ALL:
            return True
        level_map = {STATE: "040", COUNTY: "050"}
        level_code = level_map[level]
        return cls.geo.startswith(level_code)
示例#7
0
class FAFYodm(BaseFreight, OriginGeo, DestGeo):
    __tablename__ = "yodm_faf"
    median_moe = 3
    year = db.Column(db.Integer(), primary_key=True)
    transportation_mode = db.Column(db.String(), primary_key=True)

    @classmethod
    def get_supported_levels(cls):
        return {
            "origin_geo": [STATE, COUNTY, ALL],
            "destination_geo": [STATE, COUNTY, ALL],
            "transportation_mode": [ALL]
        }
示例#8
0
class DefaultsYg(BaseEd, GeoId):
    __tablename__ = "yg_defaults"
    median_moe = 1.1

    year = db.Column(db.Integer(), primary_key=True)
    rate_type = db.Column(db.String())
    default_rate = db.Column(db.Float)
    num_defaults = db.Column(db.Integer)
    num_borrowers = db.Column(db.Integer)

    @classmethod
    def get_supported_levels(cls):
        return {"year": [ALL], "geo": GeoId.LEVELS}
示例#9
0
class BaseCbp(db.Model, BaseModel):
    __abstract__ = True
    __table_args__ = {"schema": "cbp"}
    source_title = 'County Business Patterns'
    source_link = 'http://www.census.gov/econ/cbp/'
    source_org = 'Census Bureau'

    est = db.Column(db.Integer())

    emp = db.Column(db.Integer())
    emp_nf = db.Column(db.String())
    empflag = db.Column(db.String())

    ap = db.Column(db.Float())
    ap_nf = db.Column(db.String())

    n1_4 = db.Column(db.Integer())
    n5_9 = db.Column(db.Integer())
    n20_49 = db.Column(db.Integer())
    n50_99 = db.Column(db.Integer())
    n100_249 = db.Column(db.Integer())
    n250_499 = db.Column(db.Integer())
    n500_999 = db.Column(db.Integer())
    n1000 = db.Column(db.Integer())
    n1000_1 = db.Column(db.Integer())
    n1000_2 = db.Column(db.Integer())
    n1000_3 = db.Column(db.Integer())
    n1000_4 = db.Column(db.Integer())

    @classmethod
    def geo_filter(cls, level):
        if level == ALL:
            return True
        level_map = {NATION: "010", STATE: "040", MSA: "310", COUNTY: "050"}
        level_code = level_map[level]
        return cls.geo.startswith(level_code)
示例#10
0
class DefaultsYu(BaseEd, UniversityCols):
    __tablename__ = "yu_defaults"
    median_moe = 1

    year = db.Column(db.Integer(), primary_key=True)
    rate_type = db.Column(db.String())
    default_rate = db.Column(db.Float)
    num_defaults = db.Column(db.Integer)
    num_borrowers = db.Column(db.Integer)

    @classmethod
    def get_supported_levels(cls):
        return {
            "year": [ALL],
            "university": [ALL],
            "opeid": [ALL],
        }
示例#11
0
class DefaultsYure(BaseEd, UniversityCols):
    __tablename__ = "yure_defaults"
    median_moe = 3

    year = db.Column(db.Integer(), primary_key=True)
    rate_type = db.Column(db.String(), primary_key=True)
    ethnic_code = db.Column(db.Integer(), primary_key=True)

    @classmethod
    def get_supported_levels(cls):
        return {
            "year": [ALL],
            "university": [ALL],
            "opeid": [ALL],
            "rate_type": [ALL],
            "ethnic_code": [ALL],
        }
示例#12
0
class GradRateTimeframeYut(BaseIpeds, UniversityId):
    __tablename__ = "gradrate_timeframe_yut"

    year = db.Column(db.Integer(), primary_key=True)
    timeframe = db.Column(db.String(), primary_key=True)
    num_completed_ba = db.Column(db.Float)
    pct_completed_ba = db.Column(db.Float)

    median_moe = 1.5

    @classmethod
    def get_supported_levels(cls):
        return {
            "year": [ALL],
            "timeframe": [ALL],
            "university": UniversityId.LEVELS
        }
示例#13
0
class PumsSoc(BaseAttr, ImageAttr):
    __tablename__ = 'pums_soc'
    __table_args__ = {"schema": "pums_attrs"}
    id = db.Column(db.String(10), primary_key=True)
    level = db.Column(db.Integer, primary_key=True)
    parent = db.Column(db.String)
    grandparent = db.Column(db.String)
    great_grandparent = db.Column(db.String)

    @classmethod
    def parents(cls, soc_id, **kwargs):
        soc_hobj = SocHierarchy.query.filter_by(soc=soc_id).first()
        parents = [soc_hobj.great_grandparent_obj, soc_hobj.grandparent_obj, soc_hobj.parent_obj]
        data = [[p.id, p.name] for p in parents if p]
        return data, PumsNaics.HEADERS

    @classmethod
    def children(cls, soc_id, **kwargs):
        objs = SocHierarchy.query.filter_by(parent=soc_id).all()
        data = [[obj.soc_obj.id, obj.soc_obj.name] for obj in objs]
        return data, PumsSoc.HEADERS
示例#14
0
 def birthplace(cls):
     return db.Column(db.String(),
                      db.ForeignKey(PumsBirthplace.id),
                      primary_key=True)
示例#15
0
 def sex(cls):
     return db.Column(db.String(),
                      db.ForeignKey(PumsSex.id),
                      primary_key=True)
示例#16
0
 def wage_bin(cls):
     return db.Column(db.String(),
                      db.ForeignKey(PumsWage.id),
                      primary_key=True)
示例#17
0
 def naics(cls):
     return db.Column(db.String(),
                      db.ForeignKey(PumsNaics.id),
                      primary_key=True)
示例#18
0
 def degree(cls):
     return db.Column(db.String(),
                      db.ForeignKey(PumsDegree.id),
                      primary_key=True)
示例#19
0
 def cip(cls):
     return db.Column(db.String(), db.ForeignKey(Cip.id), primary_key=True)
示例#20
0
 def acs_occ(cls):
     return db.Column(db.String(),
                      db.ForeignKey(AcsOcc.id),
                      primary_key=True)
示例#21
0
 def ipeds_expense(cls):
     return db.Column(db.String(), db.ForeignKey(IPedsExpense.id), primary_key=True)
示例#22
0
class OpiodOverdoseDeathRate(BaseOpiods):
    __tablename__ = "opioid_overdose_deathrate"
    median_moe = 1
    source_link = 'https://www.kff.org/other/state-indicator/opioid-overdose-death-rates/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D'
    year = db.Column(db.Integer(), primary_key=True)
    opioid_overdose_deathrate_ageadjusted = db.Column(db.String())
示例#23
0
 def opeid(cls):
     return db.Column(db.String(), primary_key=True)
示例#24
0
 def academic_rank(cls):
     return db.Column(db.String(), db.ForeignKey(AcademicRank.id), primary_key=True)
示例#25
0
 def sctg(cls):
     return db.Column(db.String(), db.ForeignKey(Sctg.id), primary_key=True)
示例#26
0
 def ipeds_occ(cls):
     return db.Column(db.String(), db.ForeignKey(IPedsOcc.id), primary_key=True)
示例#27
0
 def geo(cls):
     return db.Column(db.String(), db.ForeignKey(Geo.id), primary_key=True)
示例#28
0
 def language(cls):
     return db.Column(db.String(),
                      db.ForeignKey(AcsLanguage.id),
                      primary_key=True)
示例#29
0
 def acs_ind(cls):
     return db.Column(db.String(),
                      db.ForeignKey(AcsInd.id),
                      primary_key=True)
示例#30
0
 def skill(cls):
     return db.Column(db.String(),
                      db.ForeignKey(Skill.id),
                      primary_key=True)