src.data_interface package

Submodules

src.data_interface.cache module

class src.data_interface.cache.Cache[source]

Bases: object

append(key, value)[source]

Append to a redis list

Parameters:
  • key (str) – cache key
  • value (str) – object to store in cache
get(key, start=None, end=None)[source]

Get an object from cache by its key

Parameters:
  • key (str) – cache key
  • start (int) – when querying a redis list, starting range of the list.
  • end (int) – when querying a redis list, ending range of the list.
Returns:

cached object

Return type:

str

set(key, value)[source]

Set an object in cache by its key

Parameters:
  • key (str) – cache key
  • value (str) – object to store in cache

src.data_interface.downloader module

This module contains wrappers to download various movies datasets. So far we are only using Movielens but we can add more if we want.

Every dataset should have its wrapper class that inherits from Downloader.

class src.data_interface.downloader.Downloader[source]

Bases: abc.ABC

download_to_file()[source]
insert_in_db()[source]
item_from_api(id)[source]
read_api_key(key_filepath)[source]
class src.data_interface.downloader.MovielensDownloader[source]

Bases: src.data_interface.downloader.Downloader

download_to_file()[source]
insert_in_db()[source]

src.data_interface.model module

class src.data_interface.model.BaseTable(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Model

created_at = Column(None, DateTime(), table=None, nullable=False, default=ColumnDefault(<function datetime.utcnow>))
id = Column(None, Integer(), table=None, primary_key=True, nullable=False)
updated_at = Column(None, DateTime(), table=None, onupdate=ColumnDefault(<function datetime.utcnow>), default=ColumnDefault(<function datetime.utcnow>))
class src.data_interface.model.Engine(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

created_at
display_name
id
priority
type
updated_at
class src.data_interface.model.Genre(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

created_at
id
name
updated_at
class src.data_interface.model.Movie(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

actors
as_dict()[source]
awards
country
created_at
description
director
duration
genres
id
image
language
name
rating
updated_at
year
class src.data_interface.model.Page(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

created_at
engines
id
name
updated_at
class src.data_interface.model.Recommendation(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

created_at
engine_name
id
recommended_item_id
score
source_item_id
source_item_id_kind
updated_at
class src.data_interface.model.User(**kwargs)[source]

Bases: src.data_interface.model.BaseTable

created_at
email
favorite_genres
id
password
updated_at
username
src.data_interface.model.init()[source]
src.data_interface.model.insert(to_insert)[source]
src.data_interface.model.truncate_table(table)[source]