Created
January 10, 2019 02:40
-
-
Save rdelfin/f5742f936e2c4f9606d356795d4e8174 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from sqlalchemy import Table, Column, Integer, String, Float, ForeignKey | |
| from sqlalchemy.ext.declarative import declarative_base | |
| from sqlalchemy.orm import relationship | |
| Base = declarative_base() | |
| carrier_brand_table = Table('carrier_brand', Base.metadata, | |
| Column('carrier_id', Integer, ForeignKey('carrier.id')), | |
| Column('brand_id', Integer, ForeignKey('brand.id')) | |
| ) | |
| carrier_model_table = Table('carrier_model', Base.metadata, | |
| Column('carrier_id', Integer, ForeignKey('carrier.id')), | |
| Column('model_id', Integer, ForeignKey('model.id')) | |
| ) | |
| class PhysicalAttribute(Base): | |
| __tablename__ = 'physical_attribute' | |
| id = Column(Integer, primary_key=True) | |
| width = Column(String) | |
| height = Column(String) | |
| depth = Column(String) | |
| dimensions = Column(String) | |
| mass = Column(String) | |
| models = relationship('Model', back_populates='physical_attribute') | |
| def __repr__(self): | |
| return "<PhysicalAttributes(width='%s', height='%s', depth='%s', " \ | |
| "dimensions='%s', mass='%s')>" % \ | |
| (self.width, self.height, self.depth, self.dimensions, | |
| self.mass) | |
| class Cpu(Base): | |
| __tablename__ = 'cpu' | |
| id = Column(Integer, primary_key=True) | |
| model = Column(String) | |
| additional_info = Column(String) | |
| clock_speed = Column(String) | |
| hardwares = relationship('Hardware', back_populates='cpu') | |
| def __repr__(self): | |
| return "<Cpu(model='%s', additional_info='%s', clock_speed='%s')>" \ | |
| % (self.model, self.additional_info, self.clock_speed) | |
| class Gpu(Base): | |
| __tablename__ = 'gpu' | |
| id = Column(Integer, primary_key=True) | |
| model = Column(String) | |
| clock_speed = Column(String) | |
| hardwares = relationship('Hardware', back_populates='gpu') | |
| def __repr__(self): | |
| return "<Gpu(model='%s', clock_speed='%s')>" \ | |
| % (self.model, self.clock_speed) | |
| class Ram(Base): | |
| __tablename__ = 'ram' | |
| id = Column(Integer, primary_key=True) | |
| type_m = Column(String) | |
| capacity = Column(String) | |
| hardwares = relationship('Hardware', back_populates='ram') | |
| def __repr__(self): | |
| return "<Ram(type_m='%s', capacity='%s')>" \ | |
| % (self.type_m, self.capacity) | |
| class NonvolatileMemory(Base): | |
| __tablename__ = 'nonvolatile_memory' | |
| id = Column(Integer, primary_key=True) | |
| type_m = Column(String) | |
| capacity = Column(String) | |
| hardwares = relationship('Hardware', back_populates='nonvolatile_memory') | |
| def __repr__(self): | |
| return "<NonvolatileMemory(type_m='%s', capacity='%s')>" \ | |
| % (self.type_m, self.capacity) | |
| class Hardware(Base): | |
| __tablename__ = 'hardware' | |
| id = Column(Integer, primary_key=True) | |
| cpu_id = Column(Integer, ForeignKey('cpu.id')) | |
| gpu_id = Column(Integer, ForeignKey('gpu.id')) | |
| ram_id = Column(Integer, ForeignKey('ram.id')) | |
| nonvolatile_memory_id = Column(Integer, ForeignKey('nonvolatile_memory.id')) | |
| cpu = relationship('Cpu', back_populates='hardwares') | |
| gpu = relationship('Gpu', back_populates='hardwares') | |
| ram = relationship('Ram', back_populates='hardwares') | |
| nonvolatile_memory = relationship('NonvolatileMemory', back_populates='hardwares') | |
| models = relationship('Model', back_populates='hardware') | |
| def __repr__(self): | |
| return "<Hardware()>" | |
| class Display(Base): | |
| __tablename__ = 'display' | |
| id = Column(Integer, primary_key=True) | |
| resolution = Column(String) | |
| diagonal = Column(String) | |
| width = Column(String) | |
| height = Column(String) | |
| bezel_width = Column(String) | |
| area_utilization = Column(String) | |
| pixel_density = Column(String) | |
| type_m = Column(String) | |
| color_depth = Column(String) | |
| screen = Column(String) | |
| models = relationship('Model', back_populates='display') | |
| def __repr__(self): | |
| return "<Display(resolution='%s', diagonal='%s', width='%s', " \ | |
| "height='%s', bezel_width='%s', area_utilization='%s', " \ | |
| "pixel_density='%s', type_m='%s', color_depth='%s', " \ | |
| "screen='%s')>" % (self.resolution, self.diagonal, | |
| self.width, self.height, self.bezel_width, | |
| self.area_utilization, self.pixel_density, self.type_m, | |
| self.color_depth, self.screen) | |
| class Camcorder(Base): | |
| __tablename__ = 'camcorder' | |
| id = Column(Integer, primary_key=True) | |
| resolution = Column(String) | |
| formats = Column(String) | |
| camera = relationship('Camera', back_populates='camcorder') | |
| def __repr__(self): | |
| return "<Camcorder(resolution='%s', formats='%s')" % \ | |
| (self.resolution, self.formats) | |
| class Camera(Base): | |
| __tablename__ = 'camera' | |
| id = Column(Integer, primary_key=True) | |
| placement = Column(String) | |
| module = Column(String) | |
| sensor = Column(String) | |
| sensor_format = Column(String) | |
| resolution = Column(String) | |
| num_pixels = Column(String) | |
| aperture = Column(String) | |
| optical_zoom = Column(String) | |
| digital_zoom = Column(String) | |
| focus = Column(String) | |
| flash = Column(String) | |
| model_id = Column(Integer, ForeignKey('model.id')) | |
| camcorder_id = Column(Integer, ForeignKey('camcorder.id')) | |
| camcorder = relationship("Camcorder", back_populates="camera") | |
| model = relationship('Model', back_populates='cameras') | |
| class Model(Base): | |
| __tablename__ = 'model' | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String) | |
| brand_id = Column(Integer, ForeignKey('brand.id')) | |
| os_id = Column(Integer, ForeignKey('os.id')) | |
| model = Column(String) | |
| release_date = Column(String) | |
| hardware_designer = Column(String) | |
| manufacturers = Column(String) | |
| codename = Column(String) | |
| market_countries = Column(String) | |
| market_regions = Column(String) | |
| physical_attribute_id = Column(Integer, ForeignKey('physical_attribute.id')) | |
| hardware_id = Column(Integer, ForeignKey('hardware.id')) | |
| display_id = Column(Integer, ForeignKey('display.id')) | |
| cameras = Column(String) | |
| image = Column(String) | |
| brand = relationship('Brand', back_populates='models') | |
| os = relationship('OS', back_populates='models') | |
| physical_attribute = relationship('PhysicalAttribute', back_populates='models') | |
| hardware = relationship('Hardware', back_populates='models') | |
| display = relationship('Display', back_populates='models') | |
| cameras = relationship('Camera', back_populates='model') | |
| carriers = relationship( | |
| "Carrier", | |
| secondary=carrier_model_table, | |
| back_populates="models") | |
| def __repr__(self): | |
| return "<Model(name='%s', brand_id='%d', model='%s', " \ | |
| "release_date='%s', hardware_designer='%s', manufacturers='%s', " \ | |
| "codename='%s', market_countries='%s', " \ | |
| "physical_attribute='%s', os='%s', hardware='%s', " \ | |
| "display='%s', cameras='%s', image='%s')>" % \ | |
| (self.name, self.brand_id, self.model, self.release_date, | |
| self.hardware_designer, self.manufacturers, self.codename, | |
| self.market_countries, self.physical_attribute, | |
| self.os, self.hardware, self.display, self.cameras, | |
| self.image) | |
| class Brand(Base): | |
| __tablename__ = 'brand' | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String) | |
| type_m = Column(String) | |
| industries = Column(String) | |
| found_date = Column(String) | |
| location = Column(String) | |
| area_served = Column(String) | |
| founders = Column(String) | |
| parent = Column(String) | |
| image = Column(String) | |
| models = relationship('Model', back_populates='brand') | |
| carriers = relationship( | |
| "Carrier", | |
| secondary=carrier_brand_table, | |
| back_populates="brands") | |
| def __repr__(self): | |
| return "<Brand(name='%s', type_m='%s', industries='%s', " \ | |
| "found_date='%s', location='%s', area_served='%s', " \ | |
| "models='%s', founders='%s', parent='%s', image='%s')>" % \ | |
| (self.name, self.type_m, self.industries, | |
| self.found_date, self.location, self.area_served, | |
| self.models, self.founders, self.parent, self.image) | |
| class OS(Base): | |
| __tablename__ = 'os' | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String) | |
| developer = Column(String) | |
| release_date = Column(String) | |
| version = Column(String) | |
| os_kernel = Column(String) | |
| os_family = Column(String) | |
| supported_cpu_instruction_sets = Column(String) | |
| predecessor = Column(String) | |
| codename = Column(String) | |
| successor = Column(String) | |
| image = Column(String) | |
| models = relationship('Model', back_populates='os') | |
| def __repr__(self): | |
| return "<OS(name='%s', developer='%s', release_date='%s', version='%s', " \ | |
| "os_kernel='%s', os_family='%s', supported_cpu_instruction_sets='%s', " \ | |
| "predecessor='%s', codename='%s', successor='%s', image='%s')>" % \ | |
| (self.name, self.developer, self.release_date, self.version, | |
| self.os_kernel, self.os_family, | |
| self.supported_cpu_instruction_sets, self.predecessor, | |
| self.codename, self.successor, self.image) | |
| class Carrier(Base): | |
| __tablename__ = 'carrier' | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String) | |
| short_name = Column(String) | |
| cellular_networks = Column(String) | |
| covered_countries = Column(String) | |
| image = Column(String) | |
| brands = relationship( | |
| "Brand", | |
| secondary=carrier_brand_table, | |
| back_populates="carriers") | |
| models = relationship( | |
| "Model", | |
| secondary=carrier_model_table, | |
| back_populates="carriers") | |
| def __repr__(self): | |
| return "<Carrier(name='%s', short_name='%s', cellular_networks='%s', " \ | |
| "covered_networks='%s', brands='%s', models='%s', image='%s')>" % \ | |
| (self.name, self.short_name, self.cellular_networks, | |
| self.covered_countries, self.brands, self.models, self.image) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment