Skip to content

Instantly share code, notes, and snippets.

View zkan's full-sized avatar
🐻
Stay Hungry. Stay Foolish.

Kan Ouivirach zkan

🐻
Stay Hungry. Stay Foolish.
View GitHub Profile
# ---- Base python ----
FROM python:3.6 AS base
# Create app directory
WORKDIR /app
# ---- Dependencies ----
FROM base AS dependencies
COPY gunicorn_app/requirements.txt ./
# install app dependencies
RUN pip install -r requirements.txt
@zkan
zkan / test_fizzbuzz.py
Created December 16, 2018 01:30
FizzBuzz test using unittest
import unittest
class FizzBuzz:
def say(self, number):
if number % 3 == 0 and number % 5 == 0:
return 'FizzBuzz'
elif number % 3 == 0:
return 'Fizz'
elif number % 5 == 0:
@zkan
zkan / test_fizzbuzz.py
Last active December 16, 2018 01:48
FizzBuzz test using Pytest
class FizzBuzz:
def say(self, number):
  if number % 3 == 0 and number % 5 == 0:
  return 'FizzBuzz'
  elif number % 3 == 0:
  return 'Fizz'
  elif number % 5 == 0:
  return 'Buzz'
  else:
  return number
@zkan
zkan / test_fizzbuzz.py
Last active December 16, 2018 01:49
FizzBuzz test using Pytest with fixtures
import pytest
class FizzBuzz:
def say(self, number):
  if number % 3 == 0 and number % 5 == 0:
  return 'FizzBuzz'
  elif number % 3 == 0:
  return 'Fizz'
  elif number % 5 == 0:
@zkan
zkan / test_fizzbuzz.py
Created December 16, 2018 01:50
FizzBuzz test using Pytest with fixtures and test parametrization
import pytest
class FizzBuzz:
def say(self, number):
if number % 3 == 0 and number % 5 == 0:
  return 'FizzBuzz'
  elif number % 3 == 0:
  return 'Fizz'
  elif number % 5 == 0:
@zkan
zkan / conftest.py
Created December 16, 2018 01:56
FizzBuzz test using Pytest with external plugin loading: conftest.py
import pytest
class FizzBuzz:
def say(self, number):
if number % 3 == 0 and number % 5 == 0:
  return 'FizzBuzz'
  elif number % 3 == 0:
  return 'Fizz'
  elif number % 5 == 0:
@zkan
zkan / test_fizzbuzz.py
Created December 16, 2018 01:58
FizzBuzz test using Pytest with external plugin loading: conftest.py
import pytest
@pytest.mark.parametrize('test_input, expected', [
(3, 'Fizz'),
  (6, 'Fizz'),
  (5, 'Buzz'),
  (10, 'Buzz'),
  (15, 'FizzBuzz'),
  (30, 'FizzBuzz'),
@zkan
zkan / jinja2_file_less.py
Created January 27, 2019 13:16 — forked from wrunk/jinja2_file_less.py
python jinja2 examples
#!/usr/bin/env/python
#
# More of a reference of using jinaj2 without actual template files.
# This is great for a simple output transformation to standard out.
#
# Of course you will need to "sudo pip install jinja2" first!
#
# I like to refer to the following to remember how to use jinja2 :)
# http://jinja.pocoo.org/docs/templates/
#
@zkan
zkan / kmeans.py
Last active February 1, 2019 10:36
K-Means clustering
import pandas as pd
from sklearn import cluster
data = {
'data': [2, 3, 4, 10, 12, 20, 30, 11, 25]
}
df = pd.DataFrame(data)
kmeans = cluster.KMeans(n_clusters=2)
@zkan
zkan / feature_selection_techniques.py
Created February 22, 2019 01:29
Feature Selection Techniques
import pandas as pd
import seaborn as sns
titanic_df = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv')
titanic_df.head()
sns.countplot(x=titanic_df.survived, hue=titanic_df.sex)
sns.countplot(x=titanic_df.survived, hue=titanic_df.embarked)
sns.boxplot(x=titanic_df.survived, y=titanic_df.age)