Skip to content

Instantly share code, notes, and snippets.

View chelseatroy's full-sized avatar

Chelsea Troy chelseatroy

View GitHub Profile
@chelseatroy
chelseatroy / models.py
Created August 28, 2018 18:17
Example of Proxy Model Visualization
from django.db import models
class Visualization(models.Model):
name = models.CharField(primary_key=True, max_length=200)
description = models.TextField()
position = models.IntegerField(default=200)
def __repr__ (self):
return self.name
@chelseatroy
chelseatroy / infection_rate_visualization.py
Created August 28, 2018 18:21
Example of Proxy Model InfectionRateVisualization
from visualizations.models import Visualization
class InfectionRateVisualization(Visualization):
class Meta:
proxy = True
def from_data(csvfile):
department_instances = []
infection_type = []
@chelseatroy
chelseatroy / models.py
Created August 28, 2018 18:30
Example of Proxy Model Visualization
from django.db import models
class Visualization(models.Model):
name = models.CharField(primary_key=True, max_length=200)
description = models.TextField()
position = models.IntegerField(default=200)
class = models.CharField(max_length=200) #We just added this line
...
@chelseatroy
chelseatroy / views.py
Last active March 18, 2021 04:57
Example of Proxy Model Dependency Injection
from __future__ import unicode_literals
from django.shortcuts import render
from models import Visualization
from exceptions import IncompleteDataException
from .forms import VisualizationForm
from django.contrib.auth.decorators import login_required
def _inject_visualization(name):
if name == "infection_rate_visualization":
@chelseatroy
chelseatroy / views.py
Created August 28, 2018 18:43
Example of Proxy Model Dependency Injection
from __future__ import unicode_literals
from django.shortcuts import render
from models import Visualization
from exceptions import IncompleteDataException
from .forms import VisualizationForm
from django.contrib.auth.decorators import login_required
VISUALIZATIONS = {
"infection_rate_visualization": InfectionRateVisualization.objects.get(pk="infection_rate_visualization"),
@chelseatroy
chelseatroy / views.py
Created August 28, 2018 18:50
Example of Proxy Model Metaprogramming Antipattern
from __future__ import unicode_literals
from django.shortcuts import render
from models import Visualization
from exceptions import IncompleteDataException, ConstantizeException
from .forms import VisualizationForm
from django.contrib.auth.decorators import login_required
import inspect, re
@chelseatroy
chelseatroy / prepare_data.py
Last active July 3, 2021 17:20
Example Class with Singleton State and Fluent API
import numpy as np
import pandas as pd
import sklearn
import nltk
from sklearn.feature_extraction.text import TfidfVectorizer
class Content():
_cached_data = None
@chelseatroy
chelseatroy / import.rb
Last active September 20, 2018 15:59
Example: Transactional Data Import
class Import
def import_workouts(rows)
errors = []
CSV.foreach(@import_file_path, {headers: true}) do |row|
begin
attributes = row.to_hash
row.create(attributes)
errors += row.failures
@chelseatroy
chelseatroy / import.rb
Last active September 19, 2018 18:57
Example: Process-Oriented Data Import
class Import
def import_workouts(rows)
CSV.foreach(@import_file_path, {headers: true}) do |row|
attributes = row.to_hash
workout = Workout.new(attributes)
unless workout.save
workout.save(validate: false)
workout.update_column(:status, :needs_revision)
@chelseatroy
chelseatroy / workout.rb
Last active September 20, 2018 02:30
Example: Data Import as a Process
class Workout
property :description, type: String
property :date, type: DateTime
enum status: [:needs_revision, :complete]
property :status, default: :complete
scope :complete, -> { where(status: :complete) }
scope :needs_revision, -> { where(status: :needs_revision) }